From: Adam Israel Date: Wed, 27 Mar 2019 23:07:43 +0000 (-0400) Subject: Merge upstream libjuju X-Git-Tag: v6.0.0~14 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=caf6efba68120623038efc361cf46e1f60de452b;hp=29ad6453fb8cdece73b8c2f623cf81d5d730982d;p=osm%2FN2VC.git Merge upstream libjuju Merge upstream libjuju (bug fixes) Change-Id: Ia28b8a0ea2168a4df74823e8493c650491afb695 Signed-off-by: Adam Israel --- diff --git a/modules/libjuju/.gitignore b/modules/libjuju/.gitignore index 7614b47..6d00fec 100644 --- a/modules/libjuju/.gitignore +++ b/modules/libjuju/.gitignore @@ -12,3 +12,4 @@ dist/ dev/ .pytest_cache pytestdebug.log +.vscode/ diff --git a/modules/libjuju/.travis.yml b/modules/libjuju/.travis.yml index 4389c8e..5edfef5 100644 --- a/modules/libjuju/.travis.yml +++ b/modules/libjuju/.travis.yml @@ -18,7 +18,6 @@ install: env: global: > TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}' - LXD_PASSWORD="password" PATH="/snap/bin:$PATH" matrix: @@ -32,19 +31,18 @@ matrix: - python: 3.7-dev env: JUJU_CHANNEL=edge before_script: - - sudo lxd waitready --timeout 30 - - sudo lxc storage create default dir - - sudo lxd init --auto --trust-password="${LXD_PASSWORD}" --network-address='[::]' --network-port=8443 + # Run lint before performing more expensive operations (fail fast/early) + - tox -e lint - # I suspect these could be integrated into the lxd init call - - sudo sudo mkdir /var/snap/lxd/common/lxd/storage-pools/juju-zfs - - sudo lxc storage create juju-zfs dir source=/var/snap/lxd/common/lxd/storage-pools/juju-zfs # Horrible workaround to LP Bug #1738614 + # 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 - - sudo addgroup lxd || true - - sudo usermod -a -G lxd $USER || true - # Trigger generation of the client certificates - - sg lxd -c "echo y|lxc remote add "$USER" https://0.0.0.0:8443 --accept-certificate --password='${LXD_PASSWORD}'" + # 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: - - sudo -E sudo -u $USER -E juju bootstrap localhost test --config 'identity-url=https://api.staging.jujucharms.com/identity' --config 'allow-model-access=true' + - 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/Makefile b/modules/libjuju/Makefile index bd59a97..38dcc11 100644 --- a/modules/libjuju/Makefile +++ b/modules/libjuju/Makefile @@ -13,7 +13,7 @@ clean: .tox: tox -r --notest -client: +client: .tox ifndef SCHEMAGEN $(error "schemagen is not available, please install from https://github.com/juju/schemagen") endif @@ -22,6 +22,10 @@ endif test: tox +.PHONY: lint +lint: + tox -e lint --notest + docs: .tox $(PIP) install -r docs/requirements.txt rm -rf docs/_build/ @@ -30,7 +34,9 @@ docs: .tox release: git fetch --tags - $(PY) setup.py sdist upload + 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 diff --git a/modules/libjuju/VERSION b/modules/libjuju/VERSION index 2cc4a7a..1a96df1 100644 --- a/modules/libjuju/VERSION +++ b/modules/libjuju/VERSION @@ -1,5 +1 @@ -<<<<<<< HEAD -0.7.3 -======= -0.9.1 ->>>>>>> 8a2d5bc35a302a970244b3c307a4f47deac0af63 +0.11.3 diff --git a/modules/libjuju/docs/changelog.rst b/modules/libjuju/docs/changelog.rst index a4a4222..d5e13ba 100644 --- a/modules/libjuju/docs/changelog.rst +++ b/modules/libjuju/docs/changelog.rst @@ -1,8 +1,66 @@ Changelog --------- -<<<<<<< HEAD -======= +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 @@ -54,7 +112,6 @@ Tuesday Apr 24 2018 * Add doc req to force newer pymacaroons to fix RTD builds * Fix dependency conflict for building docs ->>>>>>> 8a2d5bc35a302a970244b3c307a4f47deac0af63 0.7.3 ^^^^^ Tuesday Feb 20 2018 @@ -103,20 +160,6 @@ Fri Sept 29 2017 * 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/) -<<<<<<< HEAD - -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/) -======= ->>>>>>> 8a2d5bc35a302a970244b3c307a4f47deac0af63 0.6.0 ^^^^^ diff --git a/modules/libjuju/juju/application.py b/modules/libjuju/juju/application.py index 84afebe..3f7f02e 100644 --- a/modules/libjuju/juju/application.py +++ b/modules/libjuju/juju/application.py @@ -131,6 +131,31 @@ class Application(model.ModelEntity): 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. @@ -247,14 +272,24 @@ class Application(model.ModelEntity): actions = {k: v['description'] for k, v in actions.items()} return actions - def get_resources(self, details=False): + async def get_resources(self): """Return resources for this application. - :param bool details: Include detailed info about resources used by each - unit - + Returns a dict mapping resource name to + :class:`~juju._definitions.CharmResource` instances. """ - raise NotImplementedError() + 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. @@ -311,7 +346,8 @@ class Application(model.ModelEntity): """ Restore application config to default values. - :param list to_default: A list of config options to be reset to their default value. + :param list to_default: A list of config options to be reset to their + default value. """ app_facade = client.ApplicationFacade.from_connection(self.connection) diff --git a/modules/libjuju/juju/client/_client.py b/modules/libjuju/juju/client/_client.py index d959a56..bfa9e6f 100644 --- a/modules/libjuju/juju/client/_client.py +++ b/modules/libjuju/juju/client/_client.py @@ -1,33 +1,38 @@ # 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 import _client1, _client2, _client3, _client4, _client5 -from juju.client._definitions import * # noqa +from juju.client._definitions import * + +from juju.client import _client2, _client1, _client3, _client4, _client5, _client8, _client7, _client9 + CLIENTS = { - "1": _client1, "2": _client2, + "1": _client1, "3": _client3, "4": _client4, - "5": _client5 + "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)) + """ + 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: @@ -47,7 +52,8 @@ class TypeFactory: 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)) + raise Exception('No facade {} in facades {}'.format(facade_name, + connection.facades)) c = lookup_facade(cls.__name__, version) c = c() @@ -60,6 +66,10 @@ class ActionFacade(TypeFactory): pass +class ActionPrunerFacade(TypeFactory): + pass + + class AgentFacade(TypeFactory): pass @@ -84,6 +94,10 @@ class ApplicationFacade(TypeFactory): pass +class ApplicationOffersFacade(TypeFactory): + pass + + class ApplicationRelationsWatcherFacade(TypeFactory): pass @@ -104,6 +118,26 @@ 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 @@ -128,6 +162,22 @@ class ControllerFacade(TypeFactory): pass +class CredentialManagerFacade(TypeFactory): + pass + + +class CredentialValidatorFacade(TypeFactory): + pass + + +class CrossControllerFacade(TypeFactory): + pass + + +class CrossModelRelationsFacade(TypeFactory): + pass + + class DeployerFacade(TypeFactory): pass @@ -144,10 +194,22 @@ class EntityWatcherFacade(TypeFactory): pass +class ExternalControllerUpdaterFacade(TypeFactory): + pass + + +class FanConfigurerFacade(TypeFactory): + pass + + class FilesystemAttachmentsWatcherFacade(TypeFactory): pass +class FirewallRulesFacade(TypeFactory): + pass + + class FirewallerFacade(TypeFactory): pass @@ -256,10 +318,18 @@ class ModelManagerFacade(TypeFactory): pass +class ModelUpgraderFacade(TypeFactory): + pass + + class NotifyWatcherFacade(TypeFactory): pass +class OfferStatusWatcherFacade(TypeFactory): + pass + + class PayloadsFacade(TypeFactory): pass @@ -284,6 +354,10 @@ class RebootFacade(TypeFactory): pass +class RelationStatusWatcherFacade(TypeFactory): + pass + + class RelationUnitsWatcherFacade(TypeFactory): pass @@ -292,6 +366,10 @@ class RemoteApplicationWatcherFacade(TypeFactory): pass +class RemoteRelationsFacade(TypeFactory): + pass + + class RemoteRelationsWatcherFacade(TypeFactory): pass @@ -356,6 +434,10 @@ class UniterFacade(TypeFactory): pass +class UpgradeSeriesFacade(TypeFactory): + pass + + class UpgraderFacade(TypeFactory): pass @@ -364,5 +446,9 @@ 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 index e161973..83437bc 100644 --- a/modules/libjuju/juju/client/_client1.py +++ b/modules/libjuju/juju/client/_client1.py @@ -5,11 +5,107 @@ 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): @@ -19,7 +115,10 @@ class AgentToolsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='AgentTools', request='UpdateToolsAvailable', version=1, params=_params) + msg = dict(type='AgentTools', + request='UpdateToolsAvailable', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -44,17 +143,20 @@ class AllWatcherFacade(Type): 'type': 'object'}, 'Stop': {'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(AllWatcherNextResults) async def Next(self): ''' - Returns -> typing.Sequence<+T_co>[~Delta]<~Delta> + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg _params = dict() - msg = dict(type='AllWatcher', request='Next', version=1, params=_params) + msg = dict(type='AllWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -69,7 +171,10 @@ class AllWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='AllWatcher', request='Stop', version=1, params=_params) + msg = dict(type='AllWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -120,7 +225,7 @@ class ApplicationRelationsWatcherFacade(Type): 'type': 'object'}, 'Stop': {'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(ApplicationRelationsWatchResult) async def Next(self): @@ -130,7 +235,10 @@ class ApplicationRelationsWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='ApplicationRelationsWatcher', request='Next', version=1, params=_params) + msg = dict(type='ApplicationRelationsWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -145,7 +253,10 @@ class ApplicationRelationsWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='ApplicationRelationsWatcher', request='Stop', version=1, params=_params) + msg = dict(type='ApplicationRelationsWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -196,17 +307,20 @@ class ApplicationScalerFacade(Type): 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(ErrorResults) async def Rescale(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ApplicationScaler', + request='Rescale', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -217,11 +331,14 @@ class ApplicationScalerFacade(Type): async def Watch(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + 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) + msg = dict(type='ApplicationScaler', + request='Watch', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -317,7 +434,7 @@ class BackupsFacade(Type): 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}}, 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(BackupsMetadataResult) async def Create(self, notes): @@ -327,7 +444,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='Create', version=1, params=_params) + msg = dict(type='Backups', + request='Create', + version=1, + params=_params) _params['notes'] = notes reply = await self.rpc(msg) return reply @@ -342,7 +462,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='FinishRestore', version=1, params=_params) + msg = dict(type='Backups', + request='FinishRestore', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -357,7 +480,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='Info', version=1, params=_params) + msg = dict(type='Backups', + request='Info', + version=1, + params=_params) _params['id'] = id_ reply = await self.rpc(msg) return reply @@ -368,11 +494,14 @@ class BackupsFacade(Type): async def List(self): ''' - Returns -> typing.Sequence<+T_co>[~BackupsMetadataResult]<~BackupsMetadataResult> + Returns -> typing.Sequence[~BackupsMetadataResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='List', version=1, params=_params) + msg = dict(type='Backups', + request='List', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -387,7 +516,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='PrepareRestore', version=1, params=_params) + msg = dict(type='Backups', + request='PrepareRestore', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -402,7 +534,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='Remove', version=1, params=_params) + msg = dict(type='Backups', + request='Remove', + version=1, + params=_params) _params['id'] = id_ reply = await self.rpc(msg) return reply @@ -417,7 +552,10 @@ class BackupsFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Backups', request='Restore', version=1, params=_params) + msg = dict(type='Backups', + request='Restore', + version=1, + params=_params) _params['backup-id'] = backup_id reply = await self.rpc(msg) return reply @@ -454,214 +592,199 @@ class BundleFacade(Type): 'Result': {'$ref': '#/definitions/BundleChangesResults'}}, 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(BundleChangesResults) async def GetChanges(self, yaml): ''' yaml : str - Returns -> typing.Sequence<+T_co>[~BundleChange]<~BundleChange> + 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) + msg = dict(type='Bundle', + request='GetChanges', + version=1, + params=_params) _params['yaml'] = yaml reply = await self.rpc(msg) return reply -class ClientFacade(Type): - name = 'Client' +class CAASAgentFacade(Type): + name = 'CAASAgent' 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, + schema = {'definitions': {'CloudCredential': {'additionalProperties': False, + 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, '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'], + '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'}, - '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'], + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/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'}, - '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'], + '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'}, - '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, + 'ConfigResult': {'additionalProperties': False, + 'properties': {'config': {'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'}, + 'error': {'$ref': '#/definitions/Error'}}, + 'required': ['config'], + 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, @@ -671,16 +794,6 @@ class ClientFacade(Type): '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'}, @@ -691,245 +804,268 @@ class ClientFacade(Type): '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'], + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], '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'], + 'LifeResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, + 'type': 'array'}}, + 'required': ['results'], 'type': 'object'}, - 'ModelConfigResults': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, - 'type': 'object'}}, - 'required': ['config'], + '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'}, - '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'], + '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'}, - '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'], + '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'}, - 'ModelSLAInfo': {'additionalProperties': False, - 'properties': {'level': {'type': 'string'}, - 'owner': {'type': 'string'}}, - 'required': ['level', 'owner'], + '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'}, - 'ModelSet': {'additionalProperties': False, - 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['config'], + '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'}, - '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'], + 'LifeResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'life': {'type': 'string'}}, + 'required': ['life'], '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'}, + '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'}, @@ -942,187 +1078,2577 @@ class ClientFacade(Type): 'Patch', 'Build'], 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'directive': {'type': 'string'}, - 'scope': {'type': 'string'}}, - 'required': ['scope', 'directive'], + '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'}, - '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'], + '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'}, - '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'}}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'error': {'$ref': '#/definitions/Error'}, + 'watcher-id': {'type': 'string'}}, + 'required': ['watcher-id'], 'type': 'object'}, - 'ResolveCharmResults': {'additionalProperties': False, - 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'}, - 'type': 'array'}}, - 'required': ['urls'], + 'StringsWatchResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, + 'type': 'array'}}, + 'required': ['results'], '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'], + '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'}, - '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'], + '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'}, - 'StatusHistoryResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'history': {'$ref': '#/definitions/History'}}, - 'required': ['history'], + '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'}, - 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, + 'InstanceTypesResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, - 'StatusParams': {'additionalProperties': False, - 'properties': {'patterns': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['patterns'], - 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, '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'], + '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'}, @@ -1138,646 +3664,1307 @@ class ClientFacade(Type): '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'}}, + 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudResults'}}, + 'type': 'object'}, + 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, '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'}}, + 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, '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'}, + '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'}, - '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'}}, + '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(APIHostPortsResult) - async def APIHostPorts(self): + + @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.Sequence<+T_co>[~HostPort]<~HostPort> + Returns -> typing.Mapping[str, ~Cloud] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='APIHostPorts', version=1, params=_params) + msg = dict(type='Cloud', + request='Clouds', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def AbortCurrentUpgrade(self): + @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 -> None + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='AbortCurrentUpgrade', version=1, params=_params) + msg = dict(type='Cloud', + request='DefaultCloud', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def AddCharm(self, channel, url): + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): ''' - channel : str - url : str - Returns -> None + constraints : typing.Sequence[~CloudInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='AddCharm', version=1, params=_params) - _params['channel'] = channel - _params['url'] = url + msg = dict(type='Cloud', + request='InstanceTypes', + version=1, + params=_params) + _params['constraints'] = constraints reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def AddCharmWithAuthorization(self, channel, macaroon, url): + @ReturnMapping(ErrorResults) + async def RevokeCredentials(self, entities): ''' - channel : str - macaroon : Macaroon - url : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # 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 + msg = dict(type='Cloud', + request='RevokeCredentials', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(AddMachinesResults) - async def AddMachines(self, params): + @ReturnMapping(ErrorResults) + async def UpdateCredentials(self, credentials): ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> - Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult> + credentials : typing.Sequence[~UpdateCloudCredential] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='AddMachines', version=1, params=_params) - _params['params'] = params + 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 - @ReturnMapping(AddMachinesResults) - async def AddMachinesV2(self, params): +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): ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> - Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult> + changes : typing.Sequence[~IngressNetworksChangeEvent] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='AddMachinesV2', version=1, params=_params) - _params['params'] = params + msg = dict(type='CrossModelRelations', + request='PublishIngressNetworkChanges', + version=1, + params=_params) + _params['changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(AgentVersionResult) - async def AgentVersion(self): + @ReturnMapping(ErrorResults) + async def PublishRelationChanges(self, changes): ''' - - Returns -> Number + changes : typing.Sequence[~RemoteRelationChangeEvent] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='AgentVersion', version=1, params=_params) - + msg = dict(type='CrossModelRelations', + request='PublishRelationChanges', + version=1, + params=_params) + _params['changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(BytesResult) - async def CACert(self): + @ReturnMapping(RegisterRemoteRelationResults) + async def RegisterRemoteRelations(self, relations): ''' - - Returns -> typing.Sequence<+T_co>[int] + relations : typing.Sequence[~RegisterRemoteRelationArg] + Returns -> typing.Sequence[~RegisterRemoteRelationResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='CACert', version=1, params=_params) - + msg = dict(type='CrossModelRelations', + request='RegisterRemoteRelations', + version=1, + params=_params) + _params['relations'] = relations reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def DestroyMachines(self, force, machine_names): + @ReturnMapping(SettingsResults) + async def RelationUnitSettings(self, relation_units): ''' - force : bool - machine_names : typing.Sequence<+T_co>[str] - Returns -> None + relation_units : typing.Sequence[~RemoteRelationUnit] + Returns -> typing.Sequence[~SettingsResult] ''' # 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 + msg = dict(type='CrossModelRelations', + request='RelationUnitSettings', + version=1, + params=_params) + _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, major, minor, number, series): + @ReturnMapping(StringsWatchResults) + async def WatchEgressAddressesForRelations(self, args): ''' - arch : str - major : int - minor : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[~Tools]<~Tools>] + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~StringsWatchResult] ''' # 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 + msg = dict(type='CrossModelRelations', + request='WatchEgressAddressesForRelations', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(FullStatus) - async def FullStatus(self, patterns): + @ReturnMapping(OfferStatusWatchResults) + async def WatchOfferStatus(self, args): ''' - patterns : typing.Sequence<+T_co>[str] - Returns -> typing.Union[_ForwardRef('ModelStatusInfo'), typing.Sequence<+T_co>[~RelationStatus]<~RelationStatus>, typing.Mapping<~KT, +VT_co>[str, ~RemoteApplicationStatus]<~RemoteApplicationStatus>] + args : typing.Sequence[~OfferArg] + Returns -> typing.Sequence[~OfferStatusWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='FullStatus', version=1, params=_params) - _params['patterns'] = patterns + msg = dict(type='CrossModelRelations', + request='WatchOfferStatus', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(BundleChangesResults) - async def GetBundleChanges(self, yaml): + @ReturnMapping(RelationUnitsWatchResults) + async def WatchRelationUnits(self, args): ''' - yaml : str - Returns -> typing.Sequence<+T_co>[~BundleChange]<~BundleChange> + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~RelationUnitsWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='GetBundleChanges', version=1, params=_params) - _params['yaml'] = yaml + msg = dict(type='CrossModelRelations', + request='WatchRelationUnits', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(GetConstraintsResults) - async def GetModelConstraints(self): + @ReturnMapping(RelationStatusWatchResults) + async def WatchRelationsSuspendedStatus(self, args): ''' - - Returns -> Value + args : typing.Sequence[~RemoteEntityArg] + Returns -> typing.Sequence[~RelationLifeSuspendedStatusWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='GetModelConstraints', version=1, params=_params) - + msg = dict(type='CrossModelRelations', + request='WatchRelationsSuspendedStatus', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(AddMachinesResults) - async def InjectMachines(self, params): - ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> - Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~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 - +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(ModelConfigResults) - async def ModelGet(self): + @ReturnMapping(StringsResult) + async def APIAddresses(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue> + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='ModelGet', version=1, params=_params) + msg = dict(type='Deployer', + request='APIAddresses', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(ModelInfo) - async def ModelInfo(self): - ''' - - Returns -> typing.Union[_ForwardRef('Number'), _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo>] + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): ''' - # 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<~KT, +VT_co>[str, typing.Any] - Returns -> None + Returns -> typing.Sequence[~HostPort] ''' # 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 - + msg = dict(type='Deployer', + request='APIHostPorts', + version=1, + params=_params) - - @ReturnMapping(None) - async def ModelUnset(self, keys): - ''' - keys : typing.Sequence<+T_co>[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): + @ReturnMapping(DeployerConnectionValues) + async def ConnectionInfo(self): ''' - Returns -> typing.Sequence<+T_co>[~ModelUserInfoResult]<~ModelUserInfoResult> + Returns -> typing.Sequence[str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='ModelUserInfo', version=1, params=_params) + msg = dict(type='Deployer', + request='ConnectionInfo', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(PrivateAddressResults) - async def PrivateAddress(self, target): + @ReturnMapping(LifeResults) + async def Life(self, entities): ''' - target : str - Returns -> str + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~LifeResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='PrivateAddress', version=1, params=_params) - _params['target'] = target + msg = dict(type='Deployer', + request='Life', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ProvisioningScriptResult) - async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce): + @ReturnMapping(StringResult) + async def ModelUUID(self): ''' - data_dir : str - disable_package_commands : bool - machine_id : str - nonce : str - Returns -> str + + Returns -> typing.Union[_ForwardRef('Error'), 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 + msg = dict(type='Deployer', + request='ModelUUID', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(PublicAddressResults) - async def PublicAddress(self, target): + @ReturnMapping(ErrorResults) + async def Remove(self, entities): ''' - target : str - Returns -> str + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='PublicAddress', version=1, params=_params) - _params['target'] = target + msg = dict(type='Deployer', + request='Remove', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ResolveCharmResults) - async def ResolveCharms(self, references): + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): ''' - references : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~ResolveCharmResult]<~ResolveCharmResult> + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='ResolveCharms', version=1, params=_params) - _params['references'] = references + msg = dict(type='Deployer', + request='SetPasswords', + version=1, + params=_params) + _params['changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Resolved(self, retry, unit_name): + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): ''' - retry : bool - unit_name : str - Returns -> None + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # 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 + msg = dict(type='Deployer', + request='SetStatus', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def RetryProvisioning(self, entities): + async def UpdateStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='RetryProvisioning', version=1, params=_params) + msg = dict(type='Deployer', + request='UpdateStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def SLALevel(self): + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), str] + Returns -> typing.Union[str, _ForwardRef('Error')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='SLALevel', version=1, params=_params) + msg = dict(type='Deployer', + request='WatchAPIHostPorts', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def SetModelAgentVersion(self, version): + @ReturnMapping(StringsWatchResults) + async def WatchUnits(self, entities): ''' - version : Number - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='SetModelAgentVersion', version=1, params=_params) - _params['version'] = version + msg = dict(type='Deployer', + request='WatchUnits', + version=1, + params=_params) + _params['entities'] = entities 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 - +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(None) - async def SetSLALevel(self, creds, level): + @ReturnMapping(ExternalControllerInfoResults) + async def ExternalControllerInfo(self, entities): ''' - creds : typing.Sequence<+T_co>[int] - level : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ExternalControllerInfoResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='SetSLALevel', version=1, params=_params) - _params['creds'] = creds - _params['level'] = level + msg = dict(type='ExternalControllerUpdater', + request='ExternalControllerInfo', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, requests): + @ReturnMapping(ErrorResults) + async def SetExternalControllerInfo(self, controllers): ''' - requests : typing.Sequence<+T_co>[~StatusHistoryRequest]<~StatusHistoryRequest> - Returns -> typing.Sequence<+T_co>[~StatusHistoryResult]<~StatusHistoryResult> + controllers : typing.Sequence[~SetExternalControllerInfoParams] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='StatusHistory', version=1, params=_params) - _params['requests'] = requests + msg = dict(type='ExternalControllerUpdater', + request='SetExternalControllerInfo', + version=1, + params=_params) + _params['controllers'] = controllers reply = await self.rpc(msg) return reply - @ReturnMapping(AllWatcherId) - async def WatchAll(self): + @ReturnMapping(StringsWatchResults) + async def WatchExternalControllers(self): ''' - Returns -> str + Returns -> typing.Sequence[~StringsWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Client', request='WatchAll', version=1, params=_params) + msg = dict(type='ExternalControllerUpdater', + request='WatchExternalControllers', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class CloudFacade(Type): - name = 'Cloud' +class FanConfigurerFacade(Type): + name = 'FanConfigurer' 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'], + 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'}, - 'Entity': {'additionalProperties': False, - 'properties': {'tag': {'type': 'string'}}, - 'required': ['tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, + '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'}}, @@ -1795,254 +4982,275 @@ class CloudFacade(Type): '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'}, + 'FirewallRule': {'additionalProperties': False, + 'properties': {'known-service': {'type': 'string'}, + 'whitelist-cidrs': {'items': {'type': 'string'}, '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'}}, + 'required': ['known-service'], 'type': 'object'}, - 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'FirewallRuleArgs': {'additionalProperties': False, + 'properties': {'args': {'items': {'$ref': '#/definitions/FirewallRule'}, + 'type': 'array'}}, + 'required': ['args'], 'type': 'object'}, - 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + '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'}, - 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, - 'Result': {'$ref': '#/definitions/StringsResults'}}, - 'type': 'object'}}, + 'SetFirewallRules': {'properties': {'Params': {'$ref': '#/definitions/FirewallRuleArgs'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(CloudResults) - async def Cloud(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~CloudResult]<~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): + @ReturnMapping(ListFirewallRulesResults) + async def ListFirewallRules(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~Cloud]<~Cloud> + Returns -> typing.Sequence[~FirewallRule] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Cloud', request='Clouds', version=1, params=_params) + msg = dict(type='FirewallRules', + request='ListFirewallRules', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(CloudCredentialResults) - async def Credential(self, entities): + @ReturnMapping(ErrorResults) + async def SetFirewallRules(self, args): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~CloudCredentialResult]<~CloudCredentialResult> + args : typing.Sequence[~FirewallRule] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Cloud', request='Credential', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='FirewallRules', + request='SetFirewallRules', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def DefaultCloud(self): - ''' +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'} - Returns -> typing.Union[_ForwardRef('Error'), str] + + @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='Cloud', request='DefaultCloud', version=1, params=_params) - + msg = dict(type='HostKeyReporter', + request='ReportKeys', + version=1, + params=_params) + _params['entity-keys'] = entity_keys reply = await self.rpc(msg) return reply - @ReturnMapping(InstanceTypesResults) - async def InstanceTypes(self, constraints): +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): ''' - constraints : typing.Sequence<+T_co>[~CloudInstanceTypesConstraint]<~CloudInstanceTypesConstraint> - Returns -> typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult> + ssh_keys : typing.Sequence[str] + user : str + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Cloud', request='InstanceTypes', version=1, params=_params) - _params['constraints'] = constraints + 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 RevokeCredentials(self, entities): + async def DeleteKeys(self, ssh_keys, user): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + ssh_keys : typing.Sequence[str] + user : str + 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 + 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 UpdateCredentials(self, credentials): + async def ImportKeys(self, ssh_keys, user): ''' - credentials : typing.Sequence<+T_co>[~UpdateCloudCredential]<~UpdateCloudCredential> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + ssh_keys : typing.Sequence[str] + user : str + 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 + 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 UserCredentials(self, user_clouds): + async def ListKeys(self, entities, mode): ''' - user_clouds : typing.Sequence<+T_co>[~UserCloud]<~UserCloud> - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + entities : Entities + mode : bool + 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 + msg = dict(type='KeyManager', + request='ListKeys', + version=1, + params=_params) + _params['entities'] = entities + _params['mode'] = mode reply = await self.rpc(msg) return reply -class DeployerFacade(Type): - name = 'Deployer' +class KeyUpdaterFacade(Type): + name = 'KeyUpdater' 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'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - 'type': 'object'}, - 'DeployerConnectionValues': {'additionalProperties': False, - 'properties': {'api-addresses': {'items': {'type': 'string'}, - 'type': 'array'}, - 'state-addresses': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['state-addresses', - 'api-addresses'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, + schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], @@ -2051,28 +5259,6 @@ class DeployerFacade(Type): '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'}, @@ -2083,350 +5269,406 @@ class DeployerFacade(Type): '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'}, + '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'}, - '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'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, - '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'}, - 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, + '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'}, - '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'}}, + 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + 'type': 'object'}}, 'type': 'object'} - - - @ReturnMapping(StringsResult) - async def APIAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[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): + @ReturnMapping(StringsResults) + async def AuthorisedKeys(self, entities): ''' - - Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='APIHostPorts', version=1, params=_params) - + msg = dict(type='KeyUpdater', + request='AuthorisedKeys', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(BytesResult) - async def CACert(self): + @ReturnMapping(NotifyWatchResults) + async def WatchAuthorisedKeys(self, entities): ''' - - Returns -> typing.Sequence<+T_co>[int] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='CACert', version=1, params=_params) - + msg = dict(type='KeyUpdater', + request='WatchAuthorisedKeys', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(DeployerConnectionValues) - async def ConnectionInfo(self): - ''' - - Returns -> typing.Sequence<+T_co>[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 - +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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='LifeFlag', + request='Life', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def ModelUUID(self): + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='ModelUUID', version=1, params=_params) - + msg = dict(type='LifeFlag', + request='Watch', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def Remove(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~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 - +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(ErrorResults) - async def SetPasswords(self, changes): + @ReturnMapping(LogForwardingGetLastSentResults) + async def GetLastSent(self, ids): ''' - changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + ids : typing.Sequence[~LogForwardingID] + Returns -> typing.Sequence[~LogForwardingGetLastSentResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='SetPasswords', version=1, params=_params) - _params['changes'] = changes + msg = dict(type='LogForwarding', + request='GetLastSent', + version=1, + params=_params) + _params['ids'] = ids reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): + async def SetLastSent(self, params): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + params : typing.Sequence[~LogForwardingSetLastSentParam] + 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 + msg = dict(type='LogForwarding', + request='SetLastSent', + version=1, + 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<+T_co>[str]] - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='Deployer', request='StateAddresses', version=1, 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(ErrorResults) - async def UpdateStatus(self, entities): + @ReturnMapping(StringResults) + async def LoggingConfig(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='UpdateStatus', version=1, params=_params) + msg = dict(type='Logger', + request='LoggingConfig', + 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): + @ReturnMapping(NotifyWatchResults) + async def WatchLoggingConfig(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Deployer', request='WatchUnits', version=1, params=_params) + msg = dict(type='Logger', + request='WatchLoggingConfig', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class HostKeyReporterFacade(Type): - name = 'HostKeyReporter' +class MachineActionsFacade(Type): + name = 'MachineActions' 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'], + 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'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}, - 'SSHHostKeySet': {'additionalProperties': False, - 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'}, - 'type': 'array'}}, - 'required': ['entity-keys'], + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, '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<+T_co>[~SSHHostKeys]<~SSHHostKeys> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~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, + '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'], @@ -2453,119 +5695,146 @@ class KeyManagerFacade(Type): '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'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'changes': {'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'}}, + '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'}, - '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'}}, + '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(ErrorResults) - async def AddKeys(self, ssh_keys, user): + + @ReturnMapping(ActionResults) + async def Actions(self, entities): ''' - ssh_keys : typing.Sequence<+T_co>[str] - user : str - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] ''' # 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 + msg = dict(type='MachineActions', + request='Actions', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def DeleteKeys(self, ssh_keys, user): + async def BeginActions(self, entities): ''' - ssh_keys : typing.Sequence<+T_co>[str] - user : str - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + 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 + msg = dict(type='MachineActions', + request='BeginActions', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def ImportKeys(self, ssh_keys, user): + async def FinishActions(self, results): ''' - ssh_keys : typing.Sequence<+T_co>[str] - user : str - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + results : typing.Sequence[~ActionExecutionResult] + 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 + msg = dict(type='MachineActions', + request='FinishActions', + version=1, + params=_params) + _params['results'] = results reply = await self.rpc(msg) return reply - @ReturnMapping(StringsResults) - async def ListKeys(self, entities, mode): + @ReturnMapping(ActionsByReceivers) + async def RunningActions(self, entities): ''' - entities : Entities - mode : bool - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] ''' # map input types to rpc msg _params = dict() - msg = dict(type='KeyManager', request='ListKeys', version=1, params=_params) + msg = dict(type='MachineActions', + request='RunningActions', + version=1, + params=_params) _params['entities'] = entities - _params['mode'] = mode reply = await self.rpc(msg) return reply -class KeyUpdaterFacade(Type): - name = 'KeyUpdater' + @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'], @@ -2591,34 +5860,89 @@ class KeyUpdaterFacade(Type): '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'}}, + '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(StringsResults) - async def AuthorisedKeys(self, entities): + + @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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProviderInterfaceInfoResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='KeyUpdater', request='AuthorisedKeys', version=1, params=_params) + msg = dict(type='MachineUndertaker', + request='GetMachineProviderInterfaceInfo', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2626,24 +5950,40 @@ class KeyUpdaterFacade(Type): @ReturnMapping(NotifyWatchResults) - async def WatchAuthorisedKeys(self, entities): + async def WatchMachineRemovals(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='MachineUndertaker', + request='WatchMachineRemovals', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class LifeFlagFacade(Type): - name = 'LifeFlag' +class MachinerFacade(Type): + name = 'Machiner' version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, + 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'], @@ -2652,6 +5992,18 @@ class LifeFlagFacade(Type): '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'}, @@ -2662,6 +6014,30 @@ class LifeFlagFacade(Type): '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'}}, @@ -2673,6 +6049,61 @@ class LifeFlagFacade(Type): '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'}}, @@ -2682,431 +6113,403 @@ class LifeFlagFacade(Type): 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, 'type': 'array'}}, 'required': ['results'], - 'type': 'object'}}, - 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + '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'}}, + 'type': 'object'}, + 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - - @ReturnMapping(LifeResults) - async def Life(self, entities): + + @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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='LifeFlag', request='Life', version=1, params=_params) + msg = dict(type='Machiner', + request='EnsureDead', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): + @ReturnMapping(JobsResults) + async def Jobs(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~JobsResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='LifeFlag', request='Watch', version=1, params=_params) + msg = dict(type='Machiner', + request='Jobs', + 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(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(LogForwardingGetLastSentResults) - async def GetLastSent(self, ids): + @ReturnMapping(StringResult) + async def ModelUUID(self): ''' - ids : typing.Sequence<+T_co>[~LogForwardingID]<~LogForwardingID> - Returns -> typing.Sequence<+T_co>[~LogForwardingGetLastSentResult]<~LogForwardingGetLastSentResult> + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='LogForwarding', request='GetLastSent', version=1, params=_params) - _params['ids'] = ids + msg = dict(type='Machiner', + request='ModelUUID', + version=1, + params=_params) + reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def SetLastSent(self, params): + async def SetMachineAddresses(self, machine_addresses): ''' - params : typing.Sequence<+T_co>[~LogForwardingSetLastSentParam]<~LogForwardingSetLastSentParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + machine_addresses : typing.Sequence[~MachineAddresses] + 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 + msg = dict(type='Machiner', + request='SetMachineAddresses', + version=1, + params=_params) + _params['machine-addresses'] = machine_addresses 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(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(StringResults) - async def LoggingConfig(self, entities): + + + @ReturnMapping(ErrorResults) + async def SetProviderNetworkConfig(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Logger', request='LoggingConfig', version=1, params=_params) + msg = dict(type='Machiner', + request='SetProviderNetworkConfig', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchLoggingConfig(self, entities): + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Logger', request='WatchLoggingConfig', version=1, params=_params) + msg = dict(type='Machiner', + request='SetStatus', + 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): + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineActions', request='Actions', version=1, params=_params) + msg = dict(type='Machiner', + request='UpdateStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def BeginActions(self, entities): + @ReturnMapping(NotifyWatchResults) + async def Watch(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineActions', request='BeginActions', version=1, params=_params) + msg = dict(type='Machiner', + request='Watch', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def FinishActions(self, results): + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): ''' - results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + + Returns -> typing.Union[str, _ForwardRef('Error')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineActions', request='FinishActions', version=1, params=_params) - _params['results'] = results + msg = dict(type='Machiner', + request='WatchAPIHostPorts', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ActionsByReceivers) - async def RunningActions(self, entities): +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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MeterStatusResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineActions', request='RunningActions', version=1, params=_params) + msg = dict(type='MeterStatus', + request='GetMeterStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResults) - async def WatchActionNotifications(self, entities): + @ReturnMapping(NotifyWatchResults) + async def WatchMeterStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineActions', request='WatchActionNotifications', version=1, params=_params) + msg = dict(type='MeterStatus', + request='WatchMeterStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class MachineUndertakerFacade(Type): - name = 'MachineUndertaker' +class MetricsManagerFacade(Type): + name = 'MetricsManager' 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'], @@ -3121,253 +6524,102 @@ class MachineUndertakerFacade(Type): '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'}}, + '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(EntitiesResults) - async def AllMachineRemovals(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~EntitiesResult]<~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): + async def AddJujuMachineMetrics(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineUndertaker', request='CompleteMachineRemovals', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='MetricsManager', + request='AddJujuMachineMetrics', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ProviderInterfaceInfoResults) - async def GetMachineProviderInterfaceInfo(self, entities): + @ReturnMapping(ErrorResults) + async def CleanupOldMetrics(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ProviderInterfaceInfoResult]<~ProviderInterfaceInfoResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineUndertaker', request='GetMachineProviderInterfaceInfo', version=1, params=_params) + msg = dict(type='MetricsManager', + request='CleanupOldMetrics', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchMachineRemovals(self, entities): + @ReturnMapping(ErrorResults) + async def SendMetrics(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MachineUndertaker', request='WatchMachineRemovals', version=1, params=_params) + msg = dict(type='MetricsManager', + request='SendMetrics', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class MachinerFacade(Type): - name = 'Machiner' +class MigrationFlagFacade(Type): + name = 'MigrationFlag' 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'}, - 'BytesResult': {'additionalProperties': False, - 'properties': {'result': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['result'], - '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'}, - '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'}, + 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'}}, @@ -3378,296 +6630,413 @@ class MachinerFacade(Type): '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'}}, + 'PhaseResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'phase': {'type': 'string'}}, 'type': 'object'}, - 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, + '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'}, - 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, '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'}}, + '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'}, - 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}}, - 'type': 'object'}, - 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + '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'}, - 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + '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'}, - 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, + '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'}, - 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, + 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - - @ReturnMapping(StringsResult) - async def APIAddresses(self): + + @ReturnMapping(SerializedModel) + async def Export(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]] + Returns -> typing.Union[typing.Sequence[int], typing.Sequence[str], typing.Sequence[~SerializedModelTools]] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='APIAddresses', version=1, params=_params) + msg = dict(type='MigrationMaster', + request='Export', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(APIHostPortsResult) - async def APIHostPorts(self): + @ReturnMapping(MasterMigrationStatus) + async def MigrationStatus(self): ''' - Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort> + Returns -> typing.Union[str, _ForwardRef('MigrationSpec')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='APIHostPorts', version=1, params=_params) + msg = dict(type='MigrationMaster', + request='MigrationStatus', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(BytesResult) - async def CACert(self): + @ReturnMapping(MinionReports) + async def MinionReports(self): ''' - Returns -> typing.Sequence<+T_co>[int] + Returns -> typing.Union[typing.Sequence[str], str, int] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='CACert', version=1, params=_params) + msg = dict(type='MigrationMaster', + request='MinionReports', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def EnsureDead(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + @ReturnMapping(MigrationModelInfo) + async def ModelInfo(self): ''' - # 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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~JobsResult]<~JobsResult> + Returns -> typing.Union[_ForwardRef('Number'), str] ''' # 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 - + msg = dict(type='MigrationMaster', + request='ModelInfo', + version=1, + params=_params) - - @ReturnMapping(LifeResults) - async def Life(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~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): + @ReturnMapping(None) + async def Prechecks(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), str] + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='ModelUUID', version=1, params=_params) + msg = dict(type='MigrationMaster', + request='Prechecks', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetMachineAddresses(self, machine_addresses): + @ReturnMapping(None) + async def Reap(self): ''' - machine_addresses : typing.Sequence<+T_co>[~MachineAddresses]<~MachineAddresses> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='SetMachineAddresses', version=1, params=_params) - _params['machine-addresses'] = machine_addresses + msg = dict(type='MigrationMaster', + request='Reap', + version=1, + params=_params) + reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def SetObservedNetworkConfig(self, config, tag): + async def SetPhase(self, phase): ''' - config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> - tag : str + phase : 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 + msg = dict(type='MigrationMaster', + request='SetPhase', + version=1, + params=_params) + _params['phase'] = phase reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetProviderNetworkConfig(self, entities): + @ReturnMapping(None) + async def SetStatusMessage(self, message): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + message : str + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Machiner', request='SetProviderNetworkConfig', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='MigrationMaster', + request='SetStatusMessage', + version=1, + params=_params) + _params['message'] = message reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): - ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + @ReturnMapping(NotifyWatchResult) + async def Watch(self): ''' - # 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<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + Returns -> typing.Union[str, _ForwardRef('Error')] ''' # 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 - - + msg = dict(type='MigrationMaster', + request='Watch', + version=1, + params=_params) - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~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): + async def WatchMinionReports(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) + msg = dict(type='MigrationMaster', + request='WatchMinionReports', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class MeterStatusFacade(Type): - name = 'MeterStatus' +class MigrationMinionFacade(Type): + name = 'MigrationMinion' 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, + schema = {'definitions': {'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'$ref': '#/definitions/ErrorInfo'}, 'message': {'type': 'string'}}, @@ -3678,237 +7047,144 @@ class MeterStatusFacade(Type): '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'}, + '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'}, - '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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MeterStatusResult]<~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<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~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'}}, + 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}}, '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'}}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(None) - async def AddJujuMachineMetrics(self): + 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='MetricsManager', request='AddJujuMachineMetrics', version=1, params=_params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def CleanupOldMetrics(self, entities): - ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> - ''' - # map input types to rpc msg - _params = dict() - msg = dict(type='MetricsManager', request='CleanupOldMetrics', version=1, params=_params) - _params['entities'] = entities + 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(ErrorResults) - async def SendMetrics(self, entities): + @ReturnMapping(NotifyWatchResult) + async def Watch(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + + Returns -> typing.Union[str, _ForwardRef('Error')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MetricsManager', request='SendMetrics', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='MigrationMinion', + request='Watch', + version=1, + params=_params) + reply = await self.rpc(msg) return reply -class MigrationFlagFacade(Type): - name = 'MigrationFlag' +class MigrationStatusWatcherFacade(Type): + name = 'MigrationStatusWatcher' 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'}}, + 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(PhaseResults) - async def Phase(self, entities): + + @ReturnMapping(MigrationStatus) + async def Next(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~PhaseResult]<~PhaseResult> + + Returns -> typing.Union[int, str, typing.Sequence[str]] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationFlag', request='Phase', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='MigrationStatusWatcher', + request='Next', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def Watch(self, entities): + @ReturnMapping(None) + async def Stop(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationFlag', request='Watch', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='MigrationStatusWatcher', + request='Stop', + version=1, + params=_params) + reply = await self.rpc(msg) return reply -class MigrationMasterFacade(Type): - name = 'MigrationMaster' +class MigrationTargetFacade(Type): + name = 'MigrationTarget' version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, + 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'}}, @@ -3918,18 +7194,15 @@ class MigrationMasterFacade(Type): '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'}, - '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'}, @@ -3942,45 +7215,10 @@ class MigrationMasterFacade(Type): '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'}, + 'ModelArgs': {'additionalProperties': False, + 'properties': {'model-tag': {'type': 'string'}}, + 'required': ['model-tag'], + 'type': 'object'}, 'Number': {'additionalProperties': False, 'properties': {'Build': {'type': 'integer'}, 'Major': {'type': 'integer'}, @@ -4044,190 +7282,585 @@ class MigrationMasterFacade(Type): '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'}}, + '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'}, - 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}}, - 'type': 'object'}, - 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}}, + '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'}, - 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}}, + 'ModelSet': {'additionalProperties': False, + 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['config'], 'type': 'object'}, - 'Prechecks': {'type': 'object'}, - 'Reap': {'type': 'object'}, - 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}}, + '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'}, - 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}, - 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - '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(SerializedModel) - async def Export(self): + + @ReturnMapping(ModelConfigResults) + async def ModelGet(self): ''' - Returns -> typing.Sequence<+T_co>[~SerializedModelTools]<~SerializedModelTools> + Returns -> typing.Mapping[str, ~ConfigValue] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='Export', version=1, params=_params) + msg = dict(type='ModelConfig', + request='ModelGet', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(MasterMigrationStatus) - async def MigrationStatus(self): + @ReturnMapping(None) + async def ModelSet(self, config): ''' - - Returns -> typing.Union[str, _ForwardRef('MigrationSpec')] + config : typing.Mapping[str, typing.Any] + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='MigrationStatus', version=1, params=_params) + 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(MinionReports) - async def MinionReports(self): + @ReturnMapping(StringResult) + async def SLALevel(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], int] + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='MinionReports', version=1, params=_params) + msg = dict(type='ModelConfig', + request='SLALevel', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(MigrationModelInfo) - async def ModelInfo(self): + @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 - Returns -> typing.Union[_ForwardRef('Number'), str] + + +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='MigrationMaster', request='ModelInfo', version=1, params=_params) - + msg = dict(type='ModelUpgrader', + request='ModelEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Prechecks(self): + @ReturnMapping(IntResults) + async def ModelTargetEnvironVersion(self, entities): ''' - - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~IntResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='Prechecks', version=1, params=_params) - + msg = dict(type='ModelUpgrader', + request='ModelTargetEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Reap(self): + @ReturnMapping(ErrorResults) + async def SetModelEnvironVersion(self, models): ''' - - Returns -> None + models : typing.Sequence[~SetModelEnvironVersion] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='Reap', version=1, params=_params) - + msg = dict(type='ModelUpgrader', + request='SetModelEnvironVersion', + version=1, + params=_params) + _params['models'] = models reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def SetPhase(self, phase): + @ReturnMapping(ErrorResults) + async def SetModelStatus(self, entities): ''' - phase : str - Returns -> None + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='SetPhase', version=1, params=_params) - _params['phase'] = phase + msg = dict(type='ModelUpgrader', + request='SetModelStatus', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def SetStatusMessage(self, message): + @ReturnMapping(NotifyWatchResults) + async def WatchModelEnvironVersion(self, entities): ''' - message : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='SetStatusMessage', version=1, params=_params) - _params['message'] = message + msg = dict(type='ModelUpgrader', + request='WatchModelEnvironVersion', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def Watch(self): +class NotifyWatcherFacade(Type): + name = 'NotifyWatcher' + version = 1 + schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(None) + async def Next(self): ''' - Returns -> typing.Union[str, _ForwardRef('Error')] + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='Watch', version=1, params=_params) + msg = dict(type='NotifyWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchMinionReports(self): + @ReturnMapping(None) + async def Stop(self): ''' - Returns -> typing.Union[str, _ForwardRef('Error')] + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationMaster', request='WatchMinionReports', version=1, params=_params) + msg = dict(type='NotifyWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class MigrationMinionFacade(Type): - name = 'MigrationMinion' +class OfferStatusWatcherFacade(Type): + name = 'OfferStatusWatcher' version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, + 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'}}, @@ -4238,96 +7871,37 @@ class MigrationMinionFacade(Type): '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'}}, + '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(MigrationStatus) + + @ReturnMapping(OfferStatusWatchResult) async def Next(self): ''' - Returns -> typing.Union[int, typing.Sequence<+T_co>[str]] + Returns -> typing.Union[typing.Sequence[~OfferStatusChange], _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationStatusWatcher', request='Next', version=1, params=_params) + msg = dict(type='OfferStatusWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -4342,362 +7916,450 @@ class MigrationStatusWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationStatusWatcher', request='Stop', version=1, params=_params) + msg = dict(type='OfferStatusWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class MigrationTargetFacade(Type): - name = 'MigrationTarget' +class PayloadsFacade(Type): + name = 'Payloads' 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'}, - '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'}, - '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'}}, + 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(None) - async def Abort(self, model_tag): + + @ReturnMapping(PayloadListResults) + async def List(self, patterns): ''' - model_tag : str - Returns -> None + patterns : typing.Sequence[str] + Returns -> typing.Sequence[~Payload] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationTarget', request='Abort', version=1, params=_params) - _params['model-tag'] = model_tag + msg = dict(type='Payloads', + request='List', + version=1, + params=_params) + _params['patterns'] = patterns reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Activate(self, model_tag): +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): ''' - model_tag : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~PayloadResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationTarget', request='Activate', version=1, params=_params) - _params['model-tag'] = model_tag + msg = dict(type='PayloadsHookContext', + request='List', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def AdoptResources(self, model_tag, source_controller_version): + @ReturnMapping(PayloadResults) + async def LookUp(self, args): ''' - model_tag : str - source_controller_version : Number - Returns -> None + args : typing.Sequence[~LookUpPayloadArg] + Returns -> typing.Sequence[~PayloadResult] ''' # 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 + msg = dict(type='PayloadsHookContext', + request='LookUp', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(BytesResult) - async def CACert(self): + @ReturnMapping(PayloadResults) + async def SetStatus(self, args): ''' - - Returns -> typing.Sequence<+T_co>[int] + args : typing.Sequence[~SetPayloadStatusArg] + Returns -> typing.Sequence[~PayloadResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationTarget', request='CACert', version=1, params=_params) - + msg = dict(type='PayloadsHookContext', + request='SetStatus', + version=1, + params=_params) + _params['args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Import(self, bytes_, charms, tools): + @ReturnMapping(PayloadResults) + async def Track(self, payloads): ''' - bytes_ : typing.Sequence<+T_co>[int] - charms : typing.Sequence<+T_co>[str] - tools : typing.Sequence<+T_co>[~SerializedModelTools]<~SerializedModelTools> - Returns -> None + payloads : typing.Sequence[~Payload] + Returns -> typing.Sequence[~PayloadResult] ''' # 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 + msg = dict(type='PayloadsHookContext', + request='Track', + version=1, + params=_params) + _params['payloads'] = payloads reply = await self.rpc(msg) return reply - @ReturnMapping(str) - async def LatestLogTime(self, model_tag): + @ReturnMapping(PayloadResults) + async def Untrack(self, entities): ''' - model_tag : str - Returns -> str + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~PayloadResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='MigrationTarget', request='LatestLogTime', version=1, params=_params) - _params['model-tag'] = model_tag + 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 Prechecks(self, agent_version, name, owner_tag, uuid): + async def Ping(self): ''' - 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 - + msg = dict(type='Pinger', + request='Ping', + version=1, + params=_params) + 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): + + + @ReturnMapping(None) + async def Stop(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue> + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelConfig', request='ModelGet', version=1, params=_params) + msg = dict(type='Pinger', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def ModelSet(self, config): +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): ''' - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProxyConfigResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelConfig', request='ModelSet', version=1, params=_params) - _params['config'] = config + msg = dict(type='ProxyUpdater', + request='ProxyConfig', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def ModelUnset(self, keys): + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): ''' - keys : typing.Sequence<+T_co>[str] - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelConfig', request='ModelUnset', version=1, params=_params) - _params['keys'] = keys + msg = dict(type='ProxyUpdater', + request='WatchForProxyConfigAndAPIHostPortChanges', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def SLALevel(self): +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[_ForwardRef('Error'), str] + Returns -> typing.Union[typing.Sequence[~RelationLifeSuspendedStatusChange], _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelConfig', request='SLALevel', version=1, params=_params) + msg = dict(type='RelationStatusWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -4705,38 +8367,73 @@ class ModelConfigFacade(Type): @ReturnMapping(None) - async def SetSLALevel(self, creds, level): + async def Stop(self): ''' - creds : typing.Sequence<+T_co>[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 + msg = dict(type='RelationStatusWatcher', + request='Stop', + version=1, + params=_params) + reply = await self.rpc(msg) return reply -class NotifyWatcherFacade(Type): - name = 'NotifyWatcher' +class RelationUnitsWatcherFacade(Type): + name = 'RelationUnitsWatcher' version = 1 - schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, + 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(None) + + @ReturnMapping(RelationUnitsWatchResult) async def Next(self): ''' - Returns -> None + Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='NotifyWatcher', request='Next', version=1, params=_params) + msg = dict(type='RelationUnitsWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -4751,68 +8448,138 @@ class NotifyWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='NotifyWatcher', request='Stop', version=1, params=_params) + msg = dict(type='RelationUnitsWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class PayloadsFacade(Type): - name = 'Payloads' +class RemoteApplicationWatcherFacade(Type): + name = 'RemoteApplicationWatcher' 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'}}, + 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(PayloadListResults) - async def List(self, patterns): + + @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): ''' - patterns : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~Payload]<~Payload> + + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Payloads', request='List', version=1, params=_params) - _params['patterns'] = patterns + msg = dict(type='RemoteApplicationWatcher', + request='Stop', + version=1, + params=_params) + reply = await self.rpc(msg) return reply -class PayloadsHookContextFacade(Type): - name = 'PayloadsHookContext' +class RemoteRelationsFacade(Type): + name = 'RemoteRelations' version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, + 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'], @@ -4821,6 +8588,28 @@ class PayloadsHookContextFacade(Type): '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'}, @@ -4831,172 +8620,583 @@ class PayloadsHookContextFacade(Type): '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'}, + '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'}, - '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'], + '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'}, - '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'], + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['changed'], 'type': 'object'}, - 'SetPayloadStatusArgs': {'additionalProperties': False, - 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'}, - 'type': 'array'}}, - 'required': ['args'], + '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'}, - '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'}}, + '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'}, - 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - 'type': 'object'}, - 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/PayloadResults'}}, - '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(PayloadResults) - async def List(self, entities): + + @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] ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + # 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='PayloadsHookContext', request='List', version=1, params=_params) + msg = dict(type='RemoteRelations', + request='Relations', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(PayloadResults) - async def LookUp(self, args): + @ReturnMapping(RemoteApplicationResults) + async def RemoteApplications(self, entities): ''' - args : typing.Sequence<+T_co>[~LookUpPayloadArg]<~LookUpPayloadArg> - Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RemoteApplicationResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='PayloadsHookContext', request='LookUp', version=1, params=_params) - _params['args'] = args + msg = dict(type='RemoteRelations', + request='RemoteApplications', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(PayloadResults) - async def SetStatus(self, args): + @ReturnMapping(ErrorResults) + async def SaveMacaroons(self, args): ''' - args : typing.Sequence<+T_co>[~SetPayloadStatusArg]<~SetPayloadStatusArg> - Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + args : typing.Sequence[~EntityMacaroonArg] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='PayloadsHookContext', request='SetStatus', version=1, params=_params) - _params['args'] = args + msg = dict(type='RemoteRelations', + request='SaveMacaroons', + version=1, + params=_params) + _params['Args'] = args reply = await self.rpc(msg) return reply - @ReturnMapping(PayloadResults) - async def Track(self, payloads): + @ReturnMapping(ErrorResults) + async def SetRemoteApplicationsStatus(self, entities): ''' - payloads : typing.Sequence<+T_co>[~Payload]<~Payload> - Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='PayloadsHookContext', request='Track', version=1, params=_params) - _params['payloads'] = payloads + msg = dict(type='RemoteRelations', + request='SetRemoteApplicationsStatus', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(PayloadResults) - async def Untrack(self, entities): + @ReturnMapping(RelationUnitsWatchResults) + async def WatchLocalRelationUnits(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RelationUnitsWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='PayloadsHookContext', request='Untrack', version=1, params=_params) + msg = dict(type='RemoteRelations', + request='WatchLocalRelationUnits', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class PingerFacade(Type): - name = 'Pinger' + @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 = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}}, + 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(None) - async def Ping(self): + + @ReturnMapping(RemoteRelationsWatchResult) + async def Next(self): ''' - Returns -> None + Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Pinger', request='Ping', version=1, params=_params) + msg = dict(type='RemoteRelationsWatcher', + request='Next', + version=1, + params=_params) reply = await self.rpc(msg) return reply @@ -5011,21 +9211,63 @@ class PingerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Pinger', request='Stop', version=1, params=_params) + msg = dict(type='RemoteRelationsWatcher', + request='Stop', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class ProxyUpdaterFacade(Type): - name = 'ProxyUpdater' +class ResourcesFacade(Type): + name = 'Resources' version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['entities'], - 'type': 'object'}, + 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'], @@ -5040,82 +9282,129 @@ class ProxyUpdaterFacade(Type): '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'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}}, + 'type': 'object'}, + 'ListResourcesArgs': {'additionalProperties': False, + 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, - 'required': ['results'], + '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'}, - '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'}}, + 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'}, + 'Result': {'$ref': '#/definitions/ResourcesResults'}}, + 'type': 'object'}}, 'type': 'object'} - - @ReturnMapping(ProxyConfigResults) - async def ProxyConfig(self, entities): + + @ReturnMapping(AddPendingResourcesResult) + async def AddPendingResources(self, addcharmwithauthorization, entity, resources): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ProxyConfigResult]<~ProxyConfigResult> + 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='ProxyUpdater', request='ProxyConfig', version=1, params=_params) - _params['entities'] = entities + 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(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): + @ReturnMapping(ResourcesResults) + async def ListResources(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ResourcesResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ProxyUpdater', request='WatchForProxyConfigAndAPIHostPortChanges', version=1, params=_params) + msg = dict(type='Resources', + request='ListResources', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class RelationUnitsWatcherFacade(Type): - name = 'RelationUnitsWatcher' +class ResourcesHookContextFacade(Type): + name = 'ResourcesHookContext' version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, + 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'}}, @@ -5125,65 +9414,79 @@ class RelationUnitsWatcherFacade(Type): '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'}, - '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'}}, + '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(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): + @ReturnMapping(UnitResourcesResult) + async def GetResourceInfo(self, resource_names): ''' - - Returns -> None + resource_names : typing.Sequence[str] + Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[~UnitResourceResult]] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RelationUnitsWatcher', request='Stop', version=1, params=_params) - + msg = dict(type='ResourcesHookContext', + request='GetResourceInfo', + version=1, + params=_params) + _params['resource-names'] = resource_names reply = await self.rpc(msg) return reply -class RemoteApplicationWatcherFacade(Type): - name = 'RemoteApplicationWatcher' +class RetryStrategyFacade(Type): + name = 'RetryStrategy' version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, + 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'}}, @@ -5194,89 +9497,95 @@ class RemoteApplicationWatcherFacade(Type): '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'}}, + '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(RemoteApplicationWatchResult) - async def Next(self): + + @ReturnMapping(RetryStrategyResults) + async def RetryStrategy(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RetryStrategyResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RemoteApplicationWatcher', request='Next', version=1, params=_params) - + msg = dict(type='RetryStrategy', + request='RetryStrategy', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Stop(self): + @ReturnMapping(NotifyWatchResults) + async def WatchRetryStrategy(self, entities): ''' - - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RemoteApplicationWatcher', request='Stop', version=1, params=_params) - + msg = dict(type='RetryStrategy', + request='WatchRetryStrategy', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply -class RemoteRelationsWatcherFacade(Type): - name = 'RemoteRelationsWatcher' +class SSHClientFacade(Type): + name = 'SSHClient' version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, + 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'}}, @@ -5287,253 +9596,208 @@ class RemoteRelationsWatcherFacade(Type): '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'], + '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'}, - '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'}}, + '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(RemoteRelationsWatchResult) - async def Next(self): + + @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 -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')] + Returns -> bool ''' # map input types to rpc msg _params = dict() - msg = dict(type='RemoteRelationsWatcher', request='Next', version=1, params=_params) + msg = dict(type='SSHClient', + request='Proxy', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Stop(self): + @ReturnMapping(SSHAddressResults) + async def PublicAddress(self, entities): ''' - - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RemoteRelationsWatcher', request='Stop', version=1, params=_params) + 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 ResourcesFacade(Type): - name = 'Resources' - version = 1 - schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False, - 'properties': {'channel': {'type': 'string'}, - 'macaroon': {'$ref': '#/definitions/Macaroon'}, - 'url': {'type': 'string'}}, - 'required': ['url', - 'channel', - 'macaroon'], - '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'}}, +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(AddPendingResourcesResult) - async def AddPendingResources(self, addcharmwithauthorization, entity, resources): + + @ReturnMapping(ErrorResults) + async def Claim(self, claims): ''' - addcharmwithauthorization : AddCharmWithAuthorization - entity : Entity - resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence<+T_co>[str]] + claims : typing.Sequence[~SingularClaim] + Returns -> typing.Sequence[~ErrorResult] ''' # 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 + msg = dict(type='Singular', + request='Claim', + version=1, + params=_params) + _params['claims'] = claims reply = await self.rpc(msg) return reply - @ReturnMapping(ResourcesResults) - async def ListResources(self, entities): + @ReturnMapping(ErrorResults) + async def Wait(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ResourcesResult]<~ResourcesResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Resources', request='ListResources', version=1, params=_params) + msg = dict(type='Singular', + request='Wait', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class ResourcesHookContextFacade(Type): - name = 'ResourcesHookContext' +class StringsWatcherFacade(Type): + name = 'StringsWatcher' 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, + schema = {'definitions': {'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'$ref': '#/definitions/ErrorInfo'}, 'message': {'type': 'string'}}, @@ -5543,75 +9807,71 @@ class ResourcesHookContextFacade(Type): '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'}}, + '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(UnitResourcesResult) - async def GetResourceInfo(self, resource_names): + + @ReturnMapping(StringsWatchResult) + async def Next(self): ''' - resource_names : typing.Sequence<+T_co>[str] - Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence<+T_co>[~UnitResourceResult]<~UnitResourceResult>] + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ResourcesHookContext', request='GetResourceInfo', version=1, params=_params) - _params['resource-names'] = resource_names + msg = dict(type='StringsWatcher', + request='Next', + version=1, + params=_params) + reply = await self.rpc(msg) return reply -class RetryStrategyFacade(Type): - name = 'RetryStrategy' + @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': {'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'}, + 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'}, @@ -5622,7 +9882,21 @@ class RetryStrategyFacade(Type): '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'}}, @@ -5633,188 +9907,173 @@ class RetryStrategyFacade(Type): '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'}}, + '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'}, - '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'}}, + '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(RetryStrategyResults) - async def RetryStrategy(self, entities): + + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~RetryStrategyResult]<~RetryStrategyResult> + + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RetryStrategy', request='RetryStrategy', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='Undertaker', + request='ModelConfig', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchRetryStrategy(self, entities): + @ReturnMapping(UndertakerModelInfoResult) + async def ModelInfo(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + + Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='RetryStrategy', request='WatchRetryStrategy', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='Undertaker', + request='ModelInfo', + version=1, + params=_params) + 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): + @ReturnMapping(None) + async def ProcessDyingModel(self): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult> + + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='SSHClient', request='PrivateAddress', version=1, params=_params) - _params['entities'] = entities + msg = dict(type='Undertaker', + request='ProcessDyingModel', + version=1, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(SSHProxyResult) - async def Proxy(self): + @ReturnMapping(None) + async def RemoveModel(self): ''' - Returns -> bool + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='SSHClient', request='Proxy', version=1, params=_params) + msg = dict(type='Undertaker', + request='RemoveModel', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(SSHAddressResults) - async def PublicAddress(self, entities): + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='SSHClient', request='PublicAddress', version=1, params=_params) + msg = dict(type='Undertaker', + request='SetStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHPublicKeysResult]<~SSHPublicKeysResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='SSHClient', request='PublicKeys', version=1, params=_params) + msg = dict(type='Undertaker', + request='UpdateStatus', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply -class SingularFacade(Type): - name = 'Singular' + @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'}, @@ -5825,6 +10084,18 @@ class SingularFacade(Type): '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'}, @@ -5844,130 +10115,106 @@ class SingularFacade(Type): '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'], + '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'}, - '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'}}, + 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(ErrorResults) - async def Claim(self, claims): + async def AssignUnits(self, entities): ''' - claims : typing.Sequence<+T_co>[~SingularClaim]<~SingularClaim> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + 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 + msg = dict(type='UnitAssigner', + request='AssignUnits', + version=1, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def Wait(self, entities): + async def SetAgentStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Singular', request='Wait', version=1, params=_params) + msg = dict(type='UnitAssigner', + request='SetAgentStatus', + 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<+T_co>[str], _ForwardRef('Error')] - ''' - # 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): + async def WatchUnitAssignments(self): ''' - Returns -> None + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='StringsWatcher', request='Stop', version=1, params=_params) + msg = dict(type='UnitAssigner', + request='WatchUnitAssignments', + version=1, + params=_params) reply = await self.rpc(msg) return reply -class UndertakerFacade(Type): - name = 'Undertaker' +class UpgradeSeriesFacade(Type): + name = 'UpgradeSeries' 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'}, + 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'}, @@ -5985,14 +10232,8 @@ class UndertakerFacade(Type): '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'}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'NotifyWatchResult': {'additionalProperties': False, 'properties': {'NotifyWatcherId': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}}, @@ -6003,256 +10244,340 @@ class UndertakerFacade(Type): '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, + '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'}, - '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'}}, + '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'}, - 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - '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(ModelConfigResult) - async def ModelConfig(self): - ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + @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='Undertaker', request='ModelConfig', version=1, params=_params) + 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(UndertakerModelInfoResult) - async def ModelInfo(self): + @ReturnMapping(PinApplicationsResults) + async def PinMachineApplications(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')] + Returns -> typing.Sequence[~PinApplicationResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Undertaker', request='ModelInfo', version=1, params=_params) + msg = dict(type='UpgradeSeries', + request='PinMachineApplications', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def ProcessDyingModel(self): + @ReturnMapping(PinnedLeadershipResult) + async def PinnedLeadership(self): ''' - Returns -> None + Returns -> typing.Sequence[str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Undertaker', request='ProcessDyingModel', version=1, params=_params) + msg = dict(type='UpgradeSeries', + request='PinnedLeadership', + version=1, + params=_params) reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def RemoveModel(self): + @ReturnMapping(ErrorResults) + async def SetMachineStatus(self, params): ''' - - Returns -> None + params : typing.Sequence[~UpgradeSeriesStatusParam] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Undertaker', request='RemoveModel', version=1, params=_params) - + msg = dict(type='UpgradeSeries', + request='SetMachineStatus', + version=1, + params=_params) + _params['params'] = params reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): + async def SetUpgradeSeriesUnitStatus(self, params): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + params : typing.Sequence[~UpgradeSeriesStatusParam] + 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 + msg = dict(type='UpgradeSeries', + request='SetUpgradeSeriesUnitStatus', + version=1, + params=_params) + _params['params'] = params reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): + async def StartUnitCompletion(self, entities, message): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + message : str + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Undertaker', request='UpdateStatus', version=1, params=_params) + msg = dict(type='UpgradeSeries', + request='StartUnitCompletion', + version=1, + params=_params) _params['entities'] = entities + _params['message'] = message reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchModelResources(self): + @ReturnMapping(StringResults) + async def TargetSeries(self, entities): ''' - - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Undertaker', request='WatchModelResources', version=1, params=_params) - + msg = dict(type='UpgradeSeries', + request='TargetSeries', + version=1, + params=_params) + _params['entities'] = entities 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): + @ReturnMapping(EntitiesResults) + async def UnitsCompleted(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntitiesResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='UnitAssigner', request='AssignUnits', version=1, params=_params) + msg = dict(type='UpgradeSeries', + request='UnitsCompleted', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetAgentStatus(self, entities): + @ReturnMapping(EntitiesResults) + async def UnitsPrepared(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~EntitiesResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='UnitAssigner', request='SetAgentStatus', version=1, params=_params) + msg = dict(type='UpgradeSeries', + request='UnitsPrepared', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResult) - async def WatchUnitAssignments(self): + @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 + - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + + @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='UnitAssigner', request='WatchUnitAssignments', version=1, params=_params) + 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 @@ -6373,17 +10698,20 @@ class UpgraderFacade(Type): 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(VersionResults) async def DesiredVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~VersionResult]<~VersionResult> + 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) + msg = dict(type='Upgrader', + request='DesiredVersion', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6393,12 +10721,15 @@ class UpgraderFacade(Type): @ReturnMapping(ErrorResults) async def SetTools(self, agent_tools): ''' - agent_tools : typing.Sequence<+T_co>[~EntityVersion]<~EntityVersion> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Upgrader', + request='SetTools', + version=1, + params=_params) _params['agent-tools'] = agent_tools reply = await self.rpc(msg) return reply @@ -6408,12 +10739,15 @@ class UpgraderFacade(Type): @ReturnMapping(ToolsResults) async def Tools(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ToolsResult]<~ToolsResult> + 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) + msg = dict(type='Upgrader', + request='Tools', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6423,12 +10757,15 @@ class UpgraderFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchAPIVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Upgrader', + request='WatchAPIVersion', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6550,17 +10887,20 @@ class UserManagerFacade(Type): 'Result': {'$ref': '#/definitions/UserInfoResults'}}, 'type': 'object'}}, 'type': 'object'} - + @ReturnMapping(AddUserResults) async def AddUser(self, users): ''' - users : typing.Sequence<+T_co>[~AddUser]<~AddUser> - Returns -> typing.Sequence<+T_co>[~AddUserResult]<~AddUserResult> + 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) + msg = dict(type='UserManager', + request='AddUser', + version=1, + params=_params) _params['users'] = users reply = await self.rpc(msg) return reply @@ -6570,12 +10910,15 @@ class UserManagerFacade(Type): @ReturnMapping(ErrorResults) async def DisableUser(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='UserManager', + request='DisableUser', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6585,12 +10928,15 @@ class UserManagerFacade(Type): @ReturnMapping(ErrorResults) async def EnableUser(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='UserManager', + request='EnableUser', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6600,12 +10946,15 @@ class UserManagerFacade(Type): @ReturnMapping(ErrorResults) async def RemoveUser(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='UserManager', + request='RemoveUser', + version=1, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -6615,12 +10964,15 @@ class UserManagerFacade(Type): @ReturnMapping(ErrorResults) async def SetPassword(self, changes): ''' - changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='UserManager', + request='SetPassword', + version=1, + params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply @@ -6630,14 +10982,87 @@ class UserManagerFacade(Type): @ReturnMapping(UserInfoResults) async def UserInfo(self, entities, include_disabled): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] include_disabled : bool - Returns -> typing.Sequence<+T_co>[~UserInfoResult]<~UserInfoResult> + Returns -> typing.Sequence[~UserInfoResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='UserManager', request='UserInfo', version=1, params=_params) + 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 index 6f92a86..416faab 100644 --- a/modules/libjuju/juju/client/_client2.py +++ b/modules/libjuju/juju/client/_client2.py @@ -165,12 +165,15 @@ class ActionFacade(Type): @ReturnMapping(ActionResults) async def Actions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Action', + request='Actions', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -180,12 +183,15 @@ class ActionFacade(Type): @ReturnMapping(ApplicationsCharmActionsResults) async def ApplicationsCharmsActions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ApplicationCharmActionsResult]<~ApplicationCharmActionsResult> + 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) + msg = dict(type='Action', + request='ApplicationsCharmsActions', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -195,12 +201,15 @@ class ActionFacade(Type): @ReturnMapping(ActionResults) async def Cancel(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Action', + request='Cancel', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -210,12 +219,15 @@ class ActionFacade(Type): @ReturnMapping(ActionResults) async def Enqueue(self, actions): ''' - actions : typing.Sequence<+T_co>[~Action]<~Action> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Action', + request='Enqueue', + version=2, + params=_params) _params['actions'] = actions reply = await self.rpc(msg) return reply @@ -225,12 +237,15 @@ class ActionFacade(Type): @ReturnMapping(FindTagsResults) async def FindActionTagsByPrefix(self, prefixes): ''' - prefixes : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~Entity]<~Entity> + 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) + msg = dict(type='Action', + request='FindActionTagsByPrefix', + version=2, + params=_params) _params['prefixes'] = prefixes reply = await self.rpc(msg) return reply @@ -240,12 +255,15 @@ class ActionFacade(Type): @ReturnMapping(ActionsByNames) async def FindActionsByNames(self, names): ''' - names : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~ActionsByName]<~ActionsByName> + 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) + msg = dict(type='Action', + request='FindActionsByNames', + version=2, + params=_params) _params['names'] = names reply = await self.rpc(msg) return reply @@ -255,12 +273,15 @@ class ActionFacade(Type): @ReturnMapping(ActionsByReceivers) async def ListAll(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + 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) + msg = dict(type='Action', + request='ListAll', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -270,12 +291,15 @@ class ActionFacade(Type): @ReturnMapping(ActionsByReceivers) async def ListCompleted(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + 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) + msg = dict(type='Action', + request='ListCompleted', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -285,12 +309,15 @@ class ActionFacade(Type): @ReturnMapping(ActionsByReceivers) async def ListPending(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + 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) + msg = dict(type='Action', + request='ListPending', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -300,12 +327,15 @@ class ActionFacade(Type): @ReturnMapping(ActionsByReceivers) async def ListRunning(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + 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) + msg = dict(type='Action', + request='ListRunning', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -315,16 +345,19 @@ class ActionFacade(Type): @ReturnMapping(ActionResults) async def Run(self, applications, commands, machines, timeout, units): ''' - applications : typing.Sequence<+T_co>[str] + applications : typing.Sequence[str] commands : str - machines : typing.Sequence<+T_co>[str] + machines : typing.Sequence[str] timeout : int - units : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Action', + request='Run', + version=2, + params=_params) _params['applications'] = applications _params['commands'] = commands _params['machines'] = machines @@ -338,16 +371,19 @@ class ActionFacade(Type): @ReturnMapping(ActionResults) async def RunOnAllMachines(self, applications, commands, machines, timeout, units): ''' - applications : typing.Sequence<+T_co>[str] + applications : typing.Sequence[str] commands : str - machines : typing.Sequence<+T_co>[str] + machines : typing.Sequence[str] timeout : int - units : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Action', + request='RunOnAllMachines', + version=2, + params=_params) _params['applications'] = applications _params['commands'] = commands _params['machines'] = machines @@ -385,7 +421,9 @@ class AgentFacade(Type): 'required': ['auth-type'], 'type': 'object'}, 'CloudSpec': {'additionalProperties': False, - 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, + 'properties': {'cacertificates': {'items': {'type': 'string'}, + 'type': 'array'}, + 'credential': {'$ref': '#/definitions/CloudCredential'}, 'endpoint': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'name': {'type': 'string'}, @@ -402,6 +440,19 @@ class AgentFacade(Type): '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'}}, @@ -471,6 +522,7 @@ class AgentFacade(Type): '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'}, @@ -489,6 +541,9 @@ class AgentFacade(Type): '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'}, @@ -517,12 +572,15 @@ class AgentFacade(Type): @ReturnMapping(ErrorResults) async def ClearReboot(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Agent', + request='ClearReboot', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -532,12 +590,33 @@ class AgentFacade(Type): @ReturnMapping(CloudSpecResults) async def CloudSpec(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~CloudSpecResult]<~CloudSpecResult> + 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='CloudSpec', version=2, params=_params) + msg = dict(type='Agent', + request='ControllerAPIInfoForModels', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -548,11 +627,14 @@ class AgentFacade(Type): async def ControllerConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='ControllerConfig', version=2, params=_params) + msg = dict(type='Agent', + request='ControllerConfig', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -567,7 +649,10 @@ class AgentFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='GetCloudSpec', version=2, params=_params) + msg = dict(type='Agent', + request='GetCloudSpec', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -577,12 +662,15 @@ class AgentFacade(Type): @ReturnMapping(AgentGetEntitiesResults) async def GetEntities(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~AgentGetEntitiesResult]<~AgentGetEntitiesResult> + 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) + msg = dict(type='Agent', + request='GetEntities', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -597,7 +685,10 @@ class AgentFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='IsMaster', version=2, params=_params) + msg = dict(type='Agent', + request='IsMaster', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -608,11 +699,14 @@ class AgentFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='ModelConfig', version=2, params=_params) + msg = dict(type='Agent', + request='ModelConfig', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -622,12 +716,15 @@ class AgentFacade(Type): @ReturnMapping(ErrorResults) async def SetPasswords(self, changes): ''' - changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Agent', + request='SetPasswords', + version=2, + params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply @@ -642,7 +739,10 @@ class AgentFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='StateServingInfo', version=2, params=_params) + msg = dict(type='Agent', + request='StateServingInfo', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -652,12 +752,15 @@ class AgentFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchCredentials(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Agent', + request='WatchCredentials', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -672,7 +775,10 @@ class AgentFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Agent', request='WatchForModelConfigChanges', version=2, params=_params) + msg = dict(type='Agent', + request='WatchForModelConfigChanges', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -703,11 +809,14 @@ class AllModelWatcherFacade(Type): async def Next(self): ''' - Returns -> typing.Sequence<+T_co>[~Delta]<~Delta> + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg _params = dict() - msg = dict(type='AllModelWatcher', request='Next', version=2, params=_params) + msg = dict(type='AllModelWatcher', + request='Next', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -722,7 +831,10 @@ class AllModelWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='AllModelWatcher', request='Stop', version=2, params=_params) + msg = dict(type='AllModelWatcher', + request='Stop', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -795,12 +907,15 @@ class AnnotationsFacade(Type): @ReturnMapping(AnnotationsGetResults) async def Get(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~AnnotationsGetResult]<~AnnotationsGetResult> + 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) + msg = dict(type='Annotations', + request='Get', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -810,12 +925,15 @@ class AnnotationsFacade(Type): @ReturnMapping(ErrorResults) async def Set(self, annotations): ''' - annotations : typing.Sequence<+T_co>[~EntityAnnotations]<~EntityAnnotations> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Annotations', + request='Set', + version=2, + params=_params) _params['annotations'] = annotations reply = await self.rpc(msg) return reply @@ -1119,12 +1237,15 @@ class ApplicationFacade(Type): @ReturnMapping(AddRelationResults) async def AddRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] - Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> + 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) + msg = dict(type='Application', + request='AddRelation', + version=2, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -1136,12 +1257,15 @@ class ApplicationFacade(Type): ''' application : str num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> - Returns -> typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='AddUnits', + version=2, + params=_params) _params['application'] = application _params['num-units'] = num_units _params['placement'] = placement @@ -1154,11 +1278,14 @@ class ApplicationFacade(Type): async def CharmRelations(self, application): ''' application : str - Returns -> typing.Sequence<+T_co>[str] + Returns -> typing.Sequence[str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='CharmRelations', version=2, params=_params) + msg = dict(type='Application', + request='CharmRelations', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1168,12 +1295,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def Deploy(self, applications): ''' - applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='Deploy', + version=2, + params=_params) _params['applications'] = applications reply = await self.rpc(msg) return reply @@ -1188,7 +1318,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Destroy', version=2, params=_params) + msg = dict(type='Application', + request='Destroy', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1198,12 +1331,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] + endpoints : typing.Sequence[str] Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='DestroyRelation', version=2, params=_params) + msg = dict(type='Application', + request='DestroyRelation', + version=2, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -1213,12 +1349,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyUnits(self, unit_names): ''' - unit_names : typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='DestroyUnits', + version=2, + params=_params) _params['unit-names'] = unit_names reply = await self.rpc(msg) return reply @@ -1233,7 +1372,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Expose', version=2, params=_params) + msg = dict(type='Application', + request='Expose', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1244,11 +1386,14 @@ class ApplicationFacade(Type): async def Get(self, application): ''' application : str - Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')] + 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) + msg = dict(type='Application', + request='Get', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1263,7 +1408,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetCharmURL', version=2, params=_params) + msg = dict(type='Application', + request='GetCharmURL', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1278,7 +1426,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetConstraints', version=2, params=_params) + msg = dict(type='Application', + request='GetConstraints', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1289,12 +1440,15 @@ class ApplicationFacade(Type): async def Set(self, application, options): ''' application : str - options : typing.Mapping<~KT, +VT_co>[str, 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) + msg = dict(type='Application', + request='Set', + version=2, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -1308,17 +1462,20 @@ class ApplicationFacade(Type): application : str channel : str charm_url : str - config_settings : typing.Mapping<~KT, +VT_co>[str, str] + config_settings : typing.Mapping[str, str] config_settings_yaml : str force_series : bool force_units : bool - resource_ids : typing.Mapping<~KT, +VT_co>[str, str] - storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints> + 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) + msg = dict(type='Application', + request='SetCharm', + version=2, + params=_params) _params['application'] = application _params['channel'] = channel _params['charm-url'] = charm_url @@ -1342,7 +1499,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='SetConstraints', version=2, params=_params) + msg = dict(type='Application', + request='SetConstraints', + version=2, + params=_params) _params['application'] = application _params['constraints'] = constraints reply = await self.rpc(msg) @@ -1353,12 +1513,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def SetMetricCredentials(self, creds): ''' - creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='SetMetricCredentials', + version=2, + params=_params) _params['creds'] = creds reply = await self.rpc(msg) return reply @@ -1373,7 +1536,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Unexpose', version=2, params=_params) + msg = dict(type='Application', + request='Unexpose', + version=2, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -1384,12 +1550,15 @@ class ApplicationFacade(Type): async def Unset(self, application, options): ''' application : str - options : typing.Sequence<+T_co>[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) + msg = dict(type='Application', + request='Unset', + version=2, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -1406,13 +1575,16 @@ class ApplicationFacade(Type): force_charm_url : bool force_series : bool min_units : int - settings : typing.Mapping<~KT, +VT_co>[str, str] + 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) + msg = dict(type='Application', + request='Update', + version=2, + params=_params) _params['application'] = application _params['charm-url'] = charm_url _params['constraints'] = constraints @@ -1426,30 +1598,103 @@ class ApplicationFacade(Type): -class BlockFacade(Type): - name = 'Block' +class ApplicationOffersFacade(Type): + name = 'ApplicationOffers' 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'}}, + 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'}, - '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'}, @@ -1463,71 +1708,403 @@ class BlockFacade(Type): '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'}}, + '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(BlockResults) - async def List(self): + @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 + + - Returns -> typing.Sequence<+T_co>[~BlockResult]<~BlockResult> + @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='Block', request='List', version=2, params=_params) + 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(ErrorResult) - async def SwitchBlockOff(self, message, type_): + @ReturnMapping(ConsumeOfferDetailsResults) + async def GetConsumeDetails(self, offer_urls): ''' - message : str - type_ : str - Returns -> Error + offer_urls : typing.Sequence[str] + Returns -> typing.Sequence[~ConsumeOfferDetailsResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Block', request='SwitchBlockOff', version=2, params=_params) - _params['message'] = message - _params['type'] = type_ + msg = dict(type='ApplicationOffers', + request='GetConsumeDetails', + version=2, + params=_params) + _params['offer-urls'] = offer_urls reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResult) - async def SwitchBlockOn(self, message, type_): + @ReturnMapping(QueryApplicationOffersResults) + async def ListApplicationOffers(self, filters): ''' - message : str - type_ : str - Returns -> Error + filters : typing.Sequence[~OfferFilter] + Returns -> typing.Sequence[~ApplicationOfferAdminDetails] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Block', request='SwitchBlockOn', version=2, params=_params) - _params['message'] = message - _params['type'] = type_ + msg = dict(type='ApplicationOffers', + request='ListApplicationOffers', + version=2, + params=_params) + _params['Filters'] = filters reply = await self.rpc(msg) return reply -class CharmRevisionUpdaterFacade(Type): - name = 'CharmRevisionUpdater' + @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': {'Error': {'additionalProperties': False, + 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'}}, @@ -1540,235 +2117,2106 @@ class CharmRevisionUpdaterFacade(Type): 'ErrorResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, 'type': 'object'}}, - 'properties': {'UpdateLatestRevisions': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, - '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(ErrorResult) - async def UpdateLatestRevisions(self): + @ReturnMapping(BackupsMetadataResult) + async def Create(self, notes): ''' - - Returns -> Error + notes : str + Returns -> typing.Union[str, int, _ForwardRef('Number')] ''' # map input types to rpc msg _params = dict() - msg = dict(type='CharmRevisionUpdater', request='UpdateLatestRevisions', version=2, params=_params) - + msg = dict(type='Backups', + request='Create', + version=2, + params=_params) + _params['notes'] = notes 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'}, - 'CharmInfo': {'additionalProperties': False, - 'properties': {'actions': {'$ref': '#/definitions/CharmActions'}, - 'config': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmOption'}}, - 'type': 'object'}, - 'meta': {'$ref': '#/definitions/CharmMeta'}, - 'metrics': {'$ref': '#/definitions/CharmMetrics'}, - 'revision': {'type': 'integer'}, - 'url': {'type': 'string'}}, - 'required': ['revision', 'url', 'config'], - 'type': 'object'}, - 'CharmMeta': {'additionalProperties': False, - 'properties': {'categories': {'items': {'type': 'string'}, - 'type': 'array'}, - 'description': {'type': 'string'}, - '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'], + @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'}, - 'CharmMetrics': {'additionalProperties': False, - 'properties': {'metrics': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmMetric'}}, - 'type': 'object'}, - 'plan': {'$ref': '#/definitions/CharmPlan'}}, - 'required': ['metrics', 'plan'], + 'BlockResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/BlockResult'}, + 'type': 'array'}}, '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'}, + 'BlockSwitchParams': {'additionalProperties': False, + 'properties': {'message': {'type': 'string'}, 'type': {'type': 'string'}}, - 'required': ['name', 'type'], + 'required': ['type'], 'type': 'object'}, - 'CharmPlan': {'additionalProperties': False, - 'properties': {'required': {'type': 'boolean'}}, - 'required': ['required'], + 'Error': {'additionalProperties': False, + 'properties': {'code': {'type': 'string'}, + 'info': {'$ref': '#/definitions/ErrorInfo'}, + 'message': {'type': 'string'}}, + 'required': ['message', 'code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, + 'macaroon-path': {'type': 'string'}}, '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'], + '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'}, - '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'}}, + 'SwitchBlockOn': {'properties': {'Params': {'$ref': '#/definitions/BlockSwitchParams'}, + 'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(CharmInfo) - async def CharmInfo(self, url): + @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): ''' - url : str - Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping<~KT, +VT_co>[str, ~CharmOption]<~CharmOption>, _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Charms', request='CharmInfo', version=2, params=_params) - _params['url'] = url + msg = dict(type='Client', + request='RetryProvisioning', + version=2, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(IsMeteredResult) - async def IsMetered(self, url): + @ReturnMapping(StringResult) + async def SLALevel(self): ''' - url : str - Returns -> bool + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Charms', request='IsMetered', version=2, params=_params) - _params['url'] = url + msg = dict(type='Client', + request='SLALevel', + version=2, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(CharmsListResult) - async def List(self, names): + @ReturnMapping(None) + async def SetModelAgentVersion(self, version): ''' - names : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[str] + version : Number + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Charms', request='List', version=2, params=_params) - _params['names'] = names + msg = dict(type='Client', + request='SetModelAgentVersion', + version=2, + params=_params) + _params['version'] = version reply = await self.rpc(msg) return reply -class CleanerFacade(Type): - name = 'Cleaner' + @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': {'Error': {'additionalProperties': False, + 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'}}, @@ -1778,27 +4226,69 @@ class CleanerFacade(Type): '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': {'Cleanup': {'type': 'object'}, - 'WatchCleanups': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - '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(None) - async def Cleanup(self): + @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 -> None + Returns -> typing.Union[str, bool] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Cleaner', request='Cleanup', version=2, params=_params) + msg = dict(type='CredentialValidator', + request='ModelCredential', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -1806,14 +4296,35 @@ class CleanerFacade(Type): @ReturnMapping(NotifyWatchResult) - async def WatchCleanups(self): + 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='Cleaner', request='WatchCleanups', version=2, params=_params) + msg = dict(type='CredentialValidator', + request='WatchModelCredential', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -1938,12 +4449,15 @@ class DiscoverSpacesFacade(Type): @ReturnMapping(ErrorResults) async def AddSubnets(self, subnets): ''' - subnets : typing.Sequence<+T_co>[~AddSubnetParams]<~AddSubnetParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='DiscoverSpaces', + request='AddSubnets', + version=2, + params=_params) _params['subnets'] = subnets reply = await self.rpc(msg) return reply @@ -1953,12 +4467,15 @@ class DiscoverSpacesFacade(Type): @ReturnMapping(ErrorResults) async def CreateSpaces(self, spaces): ''' - spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='DiscoverSpaces', + request='CreateSpaces', + version=2, + params=_params) _params['spaces'] = spaces reply = await self.rpc(msg) return reply @@ -1969,11 +4486,14 @@ class DiscoverSpacesFacade(Type): async def ListSpaces(self): ''' - Returns -> typing.Sequence<+T_co>[~ProviderSpace]<~ProviderSpace> + Returns -> typing.Sequence[~ProviderSpace] ''' # map input types to rpc msg _params = dict() - msg = dict(type='DiscoverSpaces', request='ListSpaces', version=2, params=_params) + msg = dict(type='DiscoverSpaces', + request='ListSpaces', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -1985,11 +4505,14 @@ class DiscoverSpacesFacade(Type): ''' space_tag : str zone : str - Returns -> typing.Sequence<+T_co>[~Subnet]<~Subnet> + Returns -> typing.Sequence[~Subnet] ''' # map input types to rpc msg _params = dict() - msg = dict(type='DiscoverSpaces', request='ListSubnets', version=2, params=_params) + msg = dict(type='DiscoverSpaces', + request='ListSubnets', + version=2, + params=_params) _params['space-tag'] = space_tag _params['zone'] = zone reply = await self.rpc(msg) @@ -2001,11 +4524,14 @@ class DiscoverSpacesFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='DiscoverSpaces', request='ModelConfig', version=2, params=_params) + msg = dict(type='DiscoverSpaces', + request='ModelConfig', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2079,12 +4605,15 @@ class DiskManagerFacade(Type): @ReturnMapping(ErrorResults) async def SetMachineBlockDevices(self, machine_block_devices): ''' - machine_block_devices : typing.Sequence<+T_co>[~MachineBlockDevices]<~MachineBlockDevices> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='DiskManager', + request='SetMachineBlockDevices', + version=2, + params=_params) _params['machine-block-devices'] = machine_block_devices reply = await self.rpc(msg) return reply @@ -2122,11 +4651,14 @@ class EntityWatcherFacade(Type): async def Next(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + 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) + msg = dict(type='EntityWatcher', + request='Next', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2141,7 +4673,10 @@ class EntityWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='EntityWatcher', request='Stop', version=2, params=_params) + msg = dict(type='EntityWatcher', + request='Stop', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2186,11 +4721,14 @@ class FilesystemAttachmentsWatcherFacade(Type): async def Next(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId>, _ForwardRef('Error')] + 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) + msg = dict(type='FilesystemAttachmentsWatcher', + request='Next', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2205,7 +4743,10 @@ class FilesystemAttachmentsWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='FilesystemAttachmentsWatcher', request='Stop', version=2, params=_params) + msg = dict(type='FilesystemAttachmentsWatcher', + request='Stop', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2283,23 +4824,15 @@ class HighAvailabilityFacade(Type): 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'Member': {'additionalProperties': False, 'properties': {'Address': {'type': 'string'}, - 'Arbiter': {'type': 'boolean'}, - 'BuildIndexes': {'type': 'boolean'}, - 'Hidden': {'type': 'boolean'}, 'Id': {'type': 'integer'}, 'Priority': {'type': 'number'}, - 'SlaveDelay': {'type': 'integer'}, 'Tags': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'Votes': {'type': 'integer'}}, 'required': ['Id', 'Address', - 'Arbiter', - 'BuildIndexes', - 'Hidden', 'Priority', 'Tags', - 'SlaveDelay', 'Votes'], 'type': 'object'}, 'MongoUpgradeResults': {'additionalProperties': False, @@ -2343,7 +4876,9 @@ class HighAvailabilityFacade(Type): 'type': 'array'}, 'tags': {'items': {'type': 'string'}, 'type': 'array'}, - 'virt-type': {'type': 'string'}}, + 'virt-type': {'type': 'string'}, + 'zones': {'items': {'type': 'string'}, + 'type': 'array'}}, 'type': 'object'}}, 'properties': {'EnableHA': {'properties': {'Params': {'$ref': '#/definitions/ControllersSpecs'}, 'Result': {'$ref': '#/definitions/ControllersChangeResults'}}, @@ -2359,12 +4894,15 @@ class HighAvailabilityFacade(Type): @ReturnMapping(ControllersChangeResults) async def EnableHA(self, specs): ''' - specs : typing.Sequence<+T_co>[~ControllersSpec]<~ControllersSpec> - Returns -> typing.Sequence<+T_co>[~ControllersChangeResult]<~ControllersChangeResult> + 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) + msg = dict(type='HighAvailability', + request='EnableHA', + version=2, + params=_params) _params['specs'] = specs reply = await self.rpc(msg) return reply @@ -2374,12 +4912,15 @@ class HighAvailabilityFacade(Type): @ReturnMapping(None) async def ResumeHAReplicationAfterUpgrade(self, members): ''' - members : typing.Sequence<+T_co>[~Member]<~Member> + members : typing.Sequence[~Member] Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='HighAvailability', request='ResumeHAReplicationAfterUpgrade', version=2, params=_params) + msg = dict(type='HighAvailability', + request='ResumeHAReplicationAfterUpgrade', + version=2, + params=_params) _params['members'] = members reply = await self.rpc(msg) return reply @@ -2390,11 +4931,14 @@ class HighAvailabilityFacade(Type): async def StopHAReplicationForUpgrade(self, target): ''' target : MongoVersion - Returns -> typing.Union[_ForwardRef('HAMember'), typing.Sequence<+T_co>[~Member]<~Member>] + 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) + msg = dict(type='HighAvailability', + request='StopHAReplicationForUpgrade', + version=2, + params=_params) _params['target'] = target reply = await self.rpc(msg) return reply @@ -2464,12 +5008,15 @@ class ImageManagerFacade(Type): @ReturnMapping(ErrorResults) async def DeleteImages(self, images): ''' - images : typing.Sequence<+T_co>[~ImageSpec]<~ImageSpec> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ImageManager', + request='DeleteImages', + version=2, + params=_params) _params['images'] = images reply = await self.rpc(msg) return reply @@ -2479,12 +5026,15 @@ class ImageManagerFacade(Type): @ReturnMapping(ListImageResult) async def ListImages(self, images): ''' - images : typing.Sequence<+T_co>[~ImageSpec]<~ImageSpec> - Returns -> typing.Sequence<+T_co>[~ImageMetadata]<~ImageMetadata> + 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) + msg = dict(type='ImageManager', + request='ListImages', + version=2, + params=_params) _params['images'] = images reply = await self.rpc(msg) return reply @@ -2577,12 +5127,15 @@ class ImageMetadataFacade(Type): @ReturnMapping(ErrorResults) async def Delete(self, image_ids): ''' - image_ids : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ImageMetadata', + request='Delete', + version=2, + params=_params) _params['image-ids'] = image_ids reply = await self.rpc(msg) return reply @@ -2592,17 +5145,20 @@ class ImageMetadataFacade(Type): @ReturnMapping(ListCloudImageMetadataResult) async def List(self, arches, region, root_storage_type, series, stream, virt_type): ''' - arches : typing.Sequence<+T_co>[str] + arches : typing.Sequence[str] region : str root_storage_type : str - series : typing.Sequence<+T_co>[str] + series : typing.Sequence[str] stream : str virt_type : str - Returns -> typing.Sequence<+T_co>[~CloudImageMetadata]<~CloudImageMetadata> + Returns -> typing.Sequence[~CloudImageMetadata] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ImageMetadata', request='List', version=2, params=_params) + msg = dict(type='ImageMetadata', + request='List', + version=2, + params=_params) _params['arches'] = arches _params['region'] = region _params['root-storage-type'] = root_storage_type @@ -2617,12 +5173,15 @@ class ImageMetadataFacade(Type): @ReturnMapping(ErrorResults) async def Save(self, metadata): ''' - metadata : typing.Sequence<+T_co>[~CloudImageMetadataList]<~CloudImageMetadataList> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ImageMetadata', + request='Save', + version=2, + params=_params) _params['metadata'] = metadata reply = await self.rpc(msg) return reply @@ -2637,7 +5196,10 @@ class ImageMetadataFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='ImageMetadata', request='UpdateFromPublishedImages', version=2, params=_params) + msg = dict(type='ImageMetadata', + request='UpdateFromPublishedImages', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -2700,7 +5262,10 @@ class LeadershipServiceFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='LeadershipService', request='BlockUntilLeadershipReleased', version=2, params=_params) + msg = dict(type='LeadershipService', + request='BlockUntilLeadershipReleased', + version=2, + params=_params) _params['Name'] = name reply = await self.rpc(msg) return reply @@ -2710,12 +5275,15 @@ class LeadershipServiceFacade(Type): @ReturnMapping(ClaimLeadershipBulkResults) async def ClaimLeadership(self, params): ''' - params : typing.Sequence<+T_co>[~ClaimLeadershipParams]<~ClaimLeadershipParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='LeadershipService', + request='ClaimLeadership', + version=2, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -2863,12 +5431,15 @@ class MachineManagerFacade(Type): @ReturnMapping(AddMachinesResults) async def AddMachines(self, params): ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> - Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult> + 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) + msg = dict(type='MachineManager', + request='AddMachines', + version=2, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -2878,12 +5449,15 @@ class MachineManagerFacade(Type): @ReturnMapping(InstanceTypesResults) async def InstanceTypes(self, constraints): ''' - constraints : typing.Sequence<+T_co>[~ModelInstanceTypesConstraint]<~ModelInstanceTypesConstraint> - Returns -> typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult> + 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) + msg = dict(type='MachineManager', + request='InstanceTypes', + version=2, + params=_params) _params['constraints'] = constraints reply = await self.rpc(msg) return reply @@ -2914,6 +5488,8 @@ class MetricsAdderFacade(Type): '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'}}, @@ -2950,12 +5526,15 @@ class MetricsAdderFacade(Type): @ReturnMapping(ErrorResults) async def AddMetricBatches(self, batches): ''' - batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='MetricsAdder', + request='AddMetricBatches', + version=2, + params=_params) _params['batches'] = batches reply = await self.rpc(msg) return reply @@ -3002,7 +5581,7 @@ class MetricsDebugFacade(Type): 'properties': {'code': {'type': 'string'}, 'info': {'type': 'string'}, 'tag': {'type': 'string'}}, - 'required': ['tag', 'code', 'info'], + 'required': ['tag', 'code'], 'type': 'object'}, 'MeterStatusParams': {'additionalProperties': False, 'properties': {'statues': {'items': {'$ref': '#/definitions/MeterStatusParam'}, @@ -3011,11 +5590,17 @@ class MetricsDebugFacade(Type): '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'], + 'required': ['time', + 'key', + 'value', + 'unit', + 'labels'], 'type': 'object'}, 'MetricResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/EntityMetrics'}, @@ -3034,12 +5619,15 @@ class MetricsDebugFacade(Type): @ReturnMapping(MetricResults) async def GetMetrics(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~EntityMetrics]<~EntityMetrics> + 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) + msg = dict(type='MetricsDebug', + request='GetMetrics', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3049,18 +5637,203 @@ class MetricsDebugFacade(Type): @ReturnMapping(ErrorResults) async def SetMeterStatus(self, statues): ''' - statues : typing.Sequence<+T_co>[~MeterStatusParam]<~MeterStatusParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + 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 @@ -3353,16 +6126,19 @@ class ModelManagerFacade(Type): async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): ''' cloud_tag : str - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] credential : str name : str owner_tag : str region : str - Returns -> typing.Union[_ForwardRef('Number'), _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo>] + 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) + msg = dict(type='ModelManager', + request='CreateModel', + version=2, + params=_params) _params['cloud-tag'] = cloud_tag _params['config'] = config _params['credential'] = credential @@ -3377,12 +6153,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ErrorResults) async def DestroyModels(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ModelManager', + request='DestroyModels', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3392,12 +6171,15 @@ class ModelManagerFacade(Type): @ReturnMapping(MapResults) async def DumpModels(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MapResult]<~MapResult> + 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) + msg = dict(type='ModelManager', + request='DumpModels', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3407,12 +6189,15 @@ class ModelManagerFacade(Type): @ReturnMapping(MapResults) async def DumpModelsDB(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MapResult]<~MapResult> + 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) + msg = dict(type='ModelManager', + request='DumpModelsDB', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3423,11 +6208,14 @@ class ModelManagerFacade(Type): async def ListModels(self, tag): ''' tag : str - Returns -> typing.Sequence<+T_co>[~UserModel]<~UserModel> + Returns -> typing.Sequence[~UserModel] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='ListModels', version=2, params=_params) + msg = dict(type='ModelManager', + request='ListModels', + version=2, + params=_params) _params['tag'] = tag reply = await self.rpc(msg) return reply @@ -3438,11 +6226,14 @@ class ModelManagerFacade(Type): async def ModelDefaults(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~ModelDefaults]<~ModelDefaults> + Returns -> typing.Mapping[str, ~ModelDefaults] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='ModelDefaults', version=2, params=_params) + msg = dict(type='ModelManager', + request='ModelDefaults', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3452,12 +6243,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ModelInfoResults) async def ModelInfo(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ModelInfoResult]<~ModelInfoResult> + 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) + msg = dict(type='ModelManager', + request='ModelInfo', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3467,58 +6261,174 @@ class ModelManagerFacade(Type): @ReturnMapping(ModelStatusResults) async def ModelStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ModelStatus]<~ModelStatus> + 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='ModelStatus', version=2, params=_params) - _params['entities'] = entities + msg = dict(type='ModelManager', + request='SetModelDefaults', + version=2, + params=_params) + _params['config'] = config reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def ModifyModelAccess(self, changes): + async def UnsetModelDefaults(self, keys): ''' - changes : typing.Sequence<+T_co>[~ModifyModelAccess]<~ModifyModelAccess> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + keys : typing.Sequence[~ModelUnsetKeys] + 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 + msg = dict(type='ModelManager', + request='UnsetModelDefaults', + version=2, + params=_params) + _params['keys'] = keys reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetModelDefaults(self, config): +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): ''' - config : typing.Sequence<+T_co>[~ModelDefaultValues]<~ModelDefaultValues> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProxyConfigResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='SetModelDefaults', version=2, params=_params) - _params['config'] = config + msg = dict(type='ProxyUpdater', + request='ProxyConfig', + version=2, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def UnsetModelDefaults(self, keys): + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): ''' - keys : typing.Sequence<+T_co>[~ModelUnsetKeys]<~ModelUnsetKeys> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='UnsetModelDefaults', version=2, params=_params) - _params['keys'] = keys + msg = dict(type='ProxyUpdater', + request='WatchForProxyConfigAndAPIHostPortChanges', + version=2, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3585,12 +6495,15 @@ class RebootFacade(Type): @ReturnMapping(ErrorResults) async def ClearReboot(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Reboot', + request='ClearReboot', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3600,12 +6513,15 @@ class RebootFacade(Type): @ReturnMapping(RebootActionResults) async def GetRebootAction(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~RebootActionResult]<~RebootActionResult> + 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) + msg = dict(type='Reboot', + request='GetRebootAction', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3615,12 +6531,15 @@ class RebootFacade(Type): @ReturnMapping(ErrorResults) async def RequestReboot(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Reboot', + request='RequestReboot', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3635,7 +6554,10 @@ class RebootFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Reboot', request='WatchForRebootEvent', version=2, params=_params) + msg = dict(type='Reboot', + request='WatchForRebootEvent', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3656,7 +6578,10 @@ class ResumerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Resumer', request='ResumeTransactions', version=2, params=_params) + msg = dict(type='Resumer', + request='ResumeTransactions', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3740,12 +6665,15 @@ class SSHClientFacade(Type): @ReturnMapping(SSHAddressesResults) async def AllAddresses(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHAddressesResult]<~SSHAddressesResult> + 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) + msg = dict(type='SSHClient', + request='AllAddresses', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3755,12 +6683,15 @@ class SSHClientFacade(Type): @ReturnMapping(SSHAddressResults) async def PrivateAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult> + 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) + msg = dict(type='SSHClient', + request='PrivateAddress', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3775,7 +6706,10 @@ class SSHClientFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='SSHClient', request='Proxy', version=2, params=_params) + msg = dict(type='SSHClient', + request='Proxy', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3785,12 +6719,15 @@ class SSHClientFacade(Type): @ReturnMapping(SSHAddressResults) async def PublicAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult> + 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) + msg = dict(type='SSHClient', + request='PublicAddress', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3800,12 +6737,104 @@ class SSHClientFacade(Type): @ReturnMapping(SSHPublicKeysResults) async def PublicKeys(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~SSHPublicKeysResult]<~SSHPublicKeysResult> + 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='SSHClient', request='PublicKeys', version=2, params=_params) + msg = dict(type='Singular', + request='Wait', + version=2, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3889,12 +6918,15 @@ class SpacesFacade(Type): @ReturnMapping(ErrorResults) async def CreateSpaces(self, spaces): ''' - spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Spaces', + request='CreateSpaces', + version=2, + params=_params) _params['spaces'] = spaces reply = await self.rpc(msg) return reply @@ -3905,11 +6937,14 @@ class SpacesFacade(Type): async def ListSpaces(self): ''' - Returns -> typing.Sequence<+T_co>[~Space]<~Space> + Returns -> typing.Sequence[~Space] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Spaces', request='ListSpaces', version=2, params=_params) + msg = dict(type='Spaces', + request='ListSpaces', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3960,11 +6995,14 @@ class StatusHistoryFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='StatusHistory', request='ModelConfig', version=2, params=_params) + msg = dict(type='StatusHistory', + request='ModelConfig', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -3980,7 +7018,10 @@ class StatusHistoryFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='StatusHistory', request='Prune', version=2, params=_params) + 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) @@ -3996,7 +7037,10 @@ class StatusHistoryFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='StatusHistory', request='WatchForModelConfigChanges', version=2, params=_params) + msg = dict(type='StatusHistory', + request='WatchForModelConfigChanges', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -4103,12 +7147,15 @@ class SubnetsFacade(Type): @ReturnMapping(ErrorResults) async def AddSubnets(self, subnets): ''' - subnets : typing.Sequence<+T_co>[~AddSubnetParams]<~AddSubnetParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Subnets', + request='AddSubnets', + version=2, + params=_params) _params['subnets'] = subnets reply = await self.rpc(msg) return reply @@ -4119,11 +7166,14 @@ class SubnetsFacade(Type): async def AllSpaces(self): ''' - Returns -> typing.Sequence<+T_co>[~SpaceResult]<~SpaceResult> + Returns -> typing.Sequence[~SpaceResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Subnets', request='AllSpaces', version=2, params=_params) + msg = dict(type='Subnets', + request='AllSpaces', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -4134,11 +7184,14 @@ class SubnetsFacade(Type): async def AllZones(self): ''' - Returns -> typing.Sequence<+T_co>[~ZoneResult]<~ZoneResult> + Returns -> typing.Sequence[~ZoneResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Subnets', request='AllZones', version=2, params=_params) + msg = dict(type='Subnets', + request='AllZones', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -4150,11 +7203,14 @@ class SubnetsFacade(Type): ''' space_tag : str zone : str - Returns -> typing.Sequence<+T_co>[~Subnet]<~Subnet> + Returns -> typing.Sequence[~Subnet] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Subnets', request='ListSubnets', version=2, params=_params) + msg = dict(type='Subnets', + request='ListSubnets', + version=2, + params=_params) _params['space-tag'] = space_tag _params['zone'] = zone reply = await self.rpc(msg) @@ -4162,6 +7218,254 @@ class SubnetsFacade(Type): +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 @@ -4200,11 +7504,14 @@ class VolumeAttachmentsWatcherFacade(Type): async def Next(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId>, _ForwardRef('Error')] + 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) + msg = dict(type='VolumeAttachmentsWatcher', + request='Next', + version=2, + params=_params) reply = await self.rpc(msg) return reply @@ -4219,7 +7526,10 @@ class VolumeAttachmentsWatcherFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='VolumeAttachmentsWatcher', request='Stop', version=2, params=_params) + 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 index b5f4b9d..67840db 100644 --- a/modules/libjuju/juju/client/_client3.py +++ b/modules/libjuju/juju/client/_client3.py @@ -5,6 +5,395 @@ 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 @@ -250,360 +639,1069 @@ class ApplicationFacade(Type): 'type': 'array'}, 'tags': {'items': {'type': 'string'}, 'type': 'array'}, - 'virt-type': {'type': 'string'}}, + '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': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, + 'properties': {'AddCloud': {'properties': {'Params': {'$ref': '#/definitions/AddCloudArgs'}}, 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, + 'AddCredentials': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + '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'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, + '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'}, - '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'}}, + '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(AddRelationResults) - async def AddRelation(self, endpoints): + @ReturnMapping(None) + async def AddCloud(self, cloud, name): ''' - endpoints : typing.Sequence<+T_co>[str] - Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> + cloud : Cloud + name : str + Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='AddRelation', version=3, params=_params) - _params['endpoints'] = endpoints + msg = dict(type='Cloud', + request='AddCloud', + version=3, + params=_params) + _params['cloud'] = cloud + _params['name'] = name reply = await self.rpc(msg) return reply - @ReturnMapping(AddApplicationUnitsResults) - async def AddUnits(self, application, num_units, placement): + @ReturnMapping(ErrorResults) + async def AddCredentials(self, credentials): ''' - application : str - num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> - Returns -> typing.Sequence<+T_co>[str] + credentials : typing.Sequence[~TaggedCredential] + Returns -> typing.Sequence[~ErrorResult] ''' # 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 + msg = dict(type='Cloud', + request='AddCredentials', + version=3, + params=_params) + _params['credentials'] = credentials reply = await self.rpc(msg) return reply - @ReturnMapping(ApplicationCharmRelationsResults) - async def CharmRelations(self, application): + @ReturnMapping(UpdateCredentialResults) + async def CheckCredentialsModels(self, credentials): ''' - application : str - Returns -> typing.Sequence<+T_co>[str] + credentials : typing.Sequence[~TaggedCredential] + Returns -> typing.Sequence[~UpdateCredentialResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='CharmRelations', version=3, params=_params) - _params['application'] = application + msg = dict(type='Cloud', + request='CheckCredentialsModels', + version=3, + params=_params) + _params['credentials'] = credentials reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def Deploy(self, applications): + @ReturnMapping(CloudResults) + async def Cloud(self, entities): ''' - applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Deploy', version=3, params=_params) - _params['applications'] = applications + msg = dict(type='Cloud', + request='Cloud', + version=3, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Destroy(self, application): + @ReturnMapping(CloudInfoResults) + async def CloudInfo(self, entities): ''' - application : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudInfoResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Destroy', version=3, params=_params) - _params['application'] = application + msg = dict(type='Cloud', + request='CloudInfo', + version=3, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): - ''' - endpoints : typing.Sequence<+T_co>[str] - Returns -> None + @ReturnMapping(CloudsResult) + async def Clouds(self): ''' - # 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<+T_co>[str] - Returns -> None + Returns -> typing.Mapping[str, ~Cloud] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='DestroyUnits', version=3, params=_params) - _params['unit-names'] = unit_names + msg = dict(type='Cloud', + request='Clouds', + version=3, + params=_params) + reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Expose(self, application): + @ReturnMapping(CloudCredentialResults) + async def Credential(self, entities): ''' - application : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~CloudCredentialResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Expose', version=3, params=_params) - _params['application'] = application + msg = dict(type='Cloud', + request='Credential', + version=3, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ApplicationGetResults) - async def Get(self, application): + @ReturnMapping(CredentialContentResults) + async def CredentialContents(self, credentials, include_secrets): ''' - application : str - Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')] + credentials : typing.Sequence[~CloudCredentialArg] + include_secrets : bool + Returns -> typing.Sequence[~CredentialContentResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Get', version=3, params=_params) - _params['application'] = application + 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 GetCharmURL(self, application): + async def DefaultCloud(self): ''' - 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 + msg = dict(type='Cloud', + request='DefaultCloud', + version=3, + params=_params) - - - @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): + @ReturnMapping(InstanceTypesResults) + async def InstanceTypes(self, constraints): ''' - application : str - options : typing.Mapping<~KT, +VT_co>[str, str] - Returns -> None + constraints : typing.Sequence[~CloudInstanceTypesConstraint] + Returns -> typing.Sequence[~InstanceTypesResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Set', version=3, params=_params) - _params['application'] = application - _params['options'] = options + msg = dict(type='Cloud', + request='InstanceTypes', + version=3, + params=_params) + _params['constraints'] = constraints 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): + @ReturnMapping(ListCloudInfoResults) + async def ListCloudInfo(self, all_, user_tag): ''' - application : str - channel : str - charm_url : str - config_settings : typing.Mapping<~KT, +VT_co>[str, str] - config_settings_yaml : str - force_series : bool - force_units : bool - resource_ids : typing.Mapping<~KT, +VT_co>[str, str] - storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints> - Returns -> None + all_ : bool + user_tag : str + Returns -> typing.Sequence[~ListCloudInfoResult] ''' # 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 + 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(None) - async def SetConstraints(self, application, constraints): + @ReturnMapping(ErrorResults) + async def ModifyCloudAccess(self, changes): ''' - application : str - constraints : Value - Returns -> None + changes : typing.Sequence[~ModifyCloudAccess] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='SetConstraints', version=3, params=_params) - _params['application'] = application - _params['constraints'] = constraints + msg = dict(type='Cloud', + request='ModifyCloudAccess', + version=3, + params=_params) + _params['changes'] = changes reply = await self.rpc(msg) return reply @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): + async def RemoveClouds(self, entities): ''' - creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + entities : typing.Sequence[~Entity] + 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 + msg = dict(type='Cloud', + request='RemoveClouds', + version=3, + params=_params) + _params['entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Unexpose(self, application): + @ReturnMapping(ErrorResults) + async def RevokeCredentialsCheckModels(self, credentials): ''' - application : str - Returns -> None + credentials : typing.Sequence[~RevokeCredentialArg] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Unexpose', version=3, params=_params) - _params['application'] = application + msg = dict(type='Cloud', + request='RevokeCredentialsCheckModels', + version=3, + params=_params) + _params['credentials'] = credentials reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Unset(self, application, options): + @ReturnMapping(UpdateCredentialResults) + async def UpdateCredentialsCheckModels(self, credentials, force): ''' - application : str - options : typing.Sequence<+T_co>[str] - Returns -> None + credentials : typing.Sequence[~TaggedCredential] + force : bool + Returns -> typing.Sequence[~UpdateCredentialResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Unset', version=3, params=_params) - _params['application'] = application - _params['options'] = options + msg = dict(type='Cloud', + request='UpdateCredentialsCheckModels', + version=3, + params=_params) + _params['credentials'] = credentials + _params['force'] = force 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): + @ReturnMapping(StringsResults) + async def UserCredentials(self, user_clouds): ''' - application : str - charm_url : str - constraints : Value - force_charm_url : bool - force_series : bool - min_units : int - settings : typing.Mapping<~KT, +VT_co>[str, str] - settings_yaml : str - Returns -> None + user_clouds : typing.Sequence[~UserCloud] + Returns -> typing.Sequence[~StringsResult] ''' # 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 + msg = dict(type='Cloud', + request='UserCredentials', + version=3, + params=_params) + _params['user-clouds'] = user_clouds reply = await self.rpc(msg) return reply @@ -883,11 +1981,14 @@ class ControllerFacade(Type): async def AllModels(self): ''' - Returns -> typing.Sequence<+T_co>[~UserModel]<~UserModel> + Returns -> typing.Sequence[~UserModel] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='AllModels', version=3, params=_params) + msg = dict(type='Controller', + request='AllModels', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -897,12 +1998,15 @@ class ControllerFacade(Type): @ReturnMapping(CloudSpecResults) async def CloudSpec(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~CloudSpecResult]<~CloudSpecResult> + 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) + msg = dict(type='Controller', + request='CloudSpec', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -913,11 +2017,14 @@ class ControllerFacade(Type): async def ControllerConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='ControllerConfig', version=3, params=_params) + msg = dict(type='Controller', + request='ControllerConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -932,7 +2039,10 @@ class ControllerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='DestroyController', version=3, params=_params) + msg = dict(type='Controller', + request='DestroyController', + version=3, + params=_params) _params['destroy-models'] = destroy_models reply = await self.rpc(msg) return reply @@ -947,7 +2057,10 @@ class ControllerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='GetCloudSpec', version=3, params=_params) + msg = dict(type='Controller', + request='GetCloudSpec', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -957,12 +2070,15 @@ class ControllerFacade(Type): @ReturnMapping(UserAccessResults) async def GetControllerAccess(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~UserAccessResult]<~UserAccessResult> + 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) + msg = dict(type='Controller', + request='GetControllerAccess', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -973,11 +2089,14 @@ class ControllerFacade(Type): async def HostedModelConfigs(self): ''' - Returns -> typing.Sequence<+T_co>[~HostedModelConfig]<~HostedModelConfig> + Returns -> typing.Sequence[~HostedModelConfig] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='HostedModelConfigs', version=3, params=_params) + msg = dict(type='Controller', + request='HostedModelConfigs', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -987,12 +2106,15 @@ class ControllerFacade(Type): @ReturnMapping(InitiateMigrationResults) async def InitiateMigration(self, specs): ''' - specs : typing.Sequence<+T_co>[~MigrationSpec]<~MigrationSpec> - Returns -> typing.Sequence<+T_co>[~InitiateMigrationResult]<~InitiateMigrationResult> + 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) + msg = dict(type='Controller', + request='InitiateMigration', + version=3, + params=_params) _params['specs'] = specs reply = await self.rpc(msg) return reply @@ -1003,11 +2125,14 @@ class ControllerFacade(Type): async def ListBlockedModels(self): ''' - Returns -> typing.Sequence<+T_co>[~ModelBlockInfo]<~ModelBlockInfo> + Returns -> typing.Sequence[~ModelBlockInfo] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='ListBlockedModels', version=3, params=_params) + msg = dict(type='Controller', + request='ListBlockedModels', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1018,11 +2143,14 @@ class ControllerFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue> + Returns -> typing.Mapping[str, ~ConfigValue] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='ModelConfig', version=3, params=_params) + msg = dict(type='Controller', + request='ModelConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1032,12 +2160,15 @@ class ControllerFacade(Type): @ReturnMapping(ModelStatusResults) async def ModelStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ModelStatus]<~ModelStatus> + 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) + msg = dict(type='Controller', + request='ModelStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1047,12 +2178,15 @@ class ControllerFacade(Type): @ReturnMapping(ErrorResults) async def ModifyControllerAccess(self, changes): ''' - changes : typing.Sequence<+T_co>[~ModifyControllerAccess]<~ModifyControllerAccess> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Controller', + request='ModifyControllerAccess', + version=3, + params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply @@ -1067,7 +2201,10 @@ class ControllerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='RemoveBlocks', version=3, params=_params) + msg = dict(type='Controller', + request='RemoveBlocks', + version=3, + params=_params) _params['all'] = all_ reply = await self.rpc(msg) return reply @@ -1082,7 +2219,10 @@ class ControllerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Controller', request='WatchAllModels', version=3, params=_params) + msg = dict(type='Controller', + request='WatchAllModels', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1287,12 +2427,15 @@ class FirewallerFacade(Type): @ReturnMapping(CloudSpecResults) async def CloudSpec(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~CloudSpecResult]<~CloudSpecResult> + 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) + msg = dict(type='Firewaller', + request='CloudSpec', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1302,12 +2445,15 @@ class FirewallerFacade(Type): @ReturnMapping(StringResults) async def GetAssignedMachine(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Firewaller', + request='GetAssignedMachine', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1322,7 +2468,10 @@ class FirewallerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Firewaller', request='GetCloudSpec', version=3, params=_params) + msg = dict(type='Firewaller', + request='GetCloudSpec', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1332,12 +2481,15 @@ class FirewallerFacade(Type): @ReturnMapping(BoolResults) async def GetExposed(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~BoolResult]<~BoolResult> + 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) + msg = dict(type='Firewaller', + request='GetExposed', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1347,12 +2499,15 @@ class FirewallerFacade(Type): @ReturnMapping(StringsResults) async def GetMachineActiveSubnets(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + 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) + msg = dict(type='Firewaller', + request='GetMachineActiveSubnets', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1362,12 +2517,15 @@ class FirewallerFacade(Type): @ReturnMapping(MachinePortsResults) async def GetMachinePorts(self, params): ''' - params : typing.Sequence<+T_co>[~MachinePorts]<~MachinePorts> - Returns -> typing.Sequence<+T_co>[~MachinePortsResult]<~MachinePortsResult> + 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) + msg = dict(type='Firewaller', + request='GetMachinePorts', + version=3, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -1377,12 +2535,15 @@ class FirewallerFacade(Type): @ReturnMapping(StringResults) async def InstanceId(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Firewaller', + request='InstanceId', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1392,12 +2553,15 @@ class FirewallerFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Firewaller', + request='Life', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1408,11 +2572,14 @@ class FirewallerFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Firewaller', request='ModelConfig', version=3, params=_params) + msg = dict(type='Firewaller', + request='ModelConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1422,12 +2589,15 @@ class FirewallerFacade(Type): @ReturnMapping(NotifyWatchResults) async def Watch(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Firewaller', + request='Watch', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1442,7 +2612,10 @@ class FirewallerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Firewaller', request='WatchForModelConfigChanges', version=3, params=_params) + msg = dict(type='Firewaller', + request='WatchForModelConfigChanges', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1453,11 +2626,14 @@ class FirewallerFacade(Type): async def WatchModelMachines(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + 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) + msg = dict(type='Firewaller', + request='WatchModelMachines', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1467,12 +2643,15 @@ class FirewallerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchOpenedPorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Firewaller', + request='WatchOpenedPorts', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1482,18 +2661,46 @@ class FirewallerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchUnits(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + 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 @@ -1678,12 +2885,15 @@ class InstancePollerFacade(Type): @ReturnMapping(BoolResults) async def AreManuallyProvisioned(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~BoolResult]<~BoolResult> + 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) + msg = dict(type='InstancePoller', + request='AreManuallyProvisioned', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1693,12 +2903,15 @@ class InstancePollerFacade(Type): @ReturnMapping(StringResults) async def InstanceId(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='InstancePoller', + request='InstanceId', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1708,12 +2921,15 @@ class InstancePollerFacade(Type): @ReturnMapping(StatusResults) async def InstanceStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='InstancePoller', + request='InstanceStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1723,12 +2939,15 @@ class InstancePollerFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='InstancePoller', + request='Life', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1739,11 +2958,14 @@ class InstancePollerFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='InstancePoller', request='ModelConfig', version=3, params=_params) + msg = dict(type='InstancePoller', + request='ModelConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1753,12 +2975,15 @@ class InstancePollerFacade(Type): @ReturnMapping(MachineAddressesResults) async def ProviderAddresses(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachineAddressesResult]<~MachineAddressesResult> + 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) + msg = dict(type='InstancePoller', + request='ProviderAddresses', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1768,12 +2993,15 @@ class InstancePollerFacade(Type): @ReturnMapping(ErrorResults) async def SetInstanceStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='InstancePoller', + request='SetInstanceStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1783,12 +3011,15 @@ class InstancePollerFacade(Type): @ReturnMapping(ErrorResults) async def SetProviderAddresses(self, machine_addresses): ''' - machine_addresses : typing.Sequence<+T_co>[~MachineAddresses]<~MachineAddresses> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='InstancePoller', + request='SetProviderAddresses', + version=3, + params=_params) _params['machine-addresses'] = machine_addresses reply = await self.rpc(msg) return reply @@ -1798,12 +3029,15 @@ class InstancePollerFacade(Type): @ReturnMapping(StatusResults) async def Status(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='InstancePoller', + request='Status', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1818,7 +3052,10 @@ class InstancePollerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='InstancePoller', request='WatchForModelConfigChanges', version=3, params=_params) + msg = dict(type='InstancePoller', + request='WatchForModelConfigChanges', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -1829,11 +3066,14 @@ class InstancePollerFacade(Type): async def WatchModelMachines(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + 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) + msg = dict(type='InstancePoller', + request='WatchModelMachines', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -2012,12 +3252,15 @@ class MachineManagerFacade(Type): @ReturnMapping(AddMachinesResults) async def AddMachines(self, params): ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> - Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult> + 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) + msg = dict(type='MachineManager', + request='AddMachines', + version=3, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -2027,12 +3270,15 @@ class MachineManagerFacade(Type): @ReturnMapping(DestroyMachineResults) async def DestroyMachine(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyMachineResult]<~DestroyMachineResult> + 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) + msg = dict(type='MachineManager', + request='DestroyMachine', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2042,12 +3288,15 @@ class MachineManagerFacade(Type): @ReturnMapping(DestroyMachineResults) async def ForceDestroyMachine(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyMachineResult]<~DestroyMachineResult> + 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) + msg = dict(type='MachineManager', + request='ForceDestroyMachine', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2057,12 +3306,15 @@ class MachineManagerFacade(Type): @ReturnMapping(InstanceTypesResults) async def InstanceTypes(self, constraints): ''' - constraints : typing.Sequence<+T_co>[~ModelInstanceTypesConstraint]<~ModelInstanceTypesConstraint> - Returns -> typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult> + 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) + msg = dict(type='MachineManager', + request='InstanceTypes', + version=3, + params=_params) _params['constraints'] = constraints reply = await self.rpc(msg) return reply @@ -2377,16 +3629,19 @@ class ModelManagerFacade(Type): async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region): ''' cloud_tag : str - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] credential : str name : str owner_tag : str region : str - Returns -> typing.Union[_ForwardRef('Number'), _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo>] + 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) + msg = dict(type='ModelManager', + request='CreateModel', + version=3, + params=_params) _params['cloud-tag'] = cloud_tag _params['config'] = config _params['credential'] = credential @@ -2401,12 +3656,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ErrorResults) async def DestroyModels(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ModelManager', + request='DestroyModels', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2416,13 +3674,16 @@ class ModelManagerFacade(Type): @ReturnMapping(StringResults) async def DumpModels(self, entities, simplified): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] simplified : bool - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='DumpModels', version=3, params=_params) + msg = dict(type='ModelManager', + request='DumpModels', + version=3, + params=_params) _params['entities'] = entities _params['simplified'] = simplified reply = await self.rpc(msg) @@ -2433,12 +3694,15 @@ class ModelManagerFacade(Type): @ReturnMapping(MapResults) async def DumpModelsDB(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MapResult]<~MapResult> + 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) + msg = dict(type='ModelManager', + request='DumpModelsDB', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2449,11 +3713,14 @@ class ModelManagerFacade(Type): async def ListModels(self, tag): ''' tag : str - Returns -> typing.Sequence<+T_co>[~UserModel]<~UserModel> + Returns -> typing.Sequence[~UserModel] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='ListModels', version=3, params=_params) + msg = dict(type='ModelManager', + request='ListModels', + version=3, + params=_params) _params['tag'] = tag reply = await self.rpc(msg) return reply @@ -2464,11 +3731,14 @@ class ModelManagerFacade(Type): async def ModelDefaults(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, ~ModelDefaults]<~ModelDefaults> + Returns -> typing.Mapping[str, ~ModelDefaults] ''' # map input types to rpc msg _params = dict() - msg = dict(type='ModelManager', request='ModelDefaults', version=3, params=_params) + msg = dict(type='ModelManager', + request='ModelDefaults', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -2478,12 +3748,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ModelInfoResults) async def ModelInfo(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ModelInfoResult]<~ModelInfoResult> + 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) + msg = dict(type='ModelManager', + request='ModelInfo', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2493,12 +3766,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ModelStatusResults) async def ModelStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ModelStatus]<~ModelStatus> + 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) + msg = dict(type='ModelManager', + request='ModelStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2508,12 +3784,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ErrorResults) async def ModifyModelAccess(self, changes): ''' - changes : typing.Sequence<+T_co>[~ModifyModelAccess]<~ModifyModelAccess> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ModelManager', + request='ModifyModelAccess', + version=3, + params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply @@ -2523,12 +3802,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ErrorResults) async def SetModelDefaults(self, config): ''' - config : typing.Sequence<+T_co>[~ModelDefaultValues]<~ModelDefaultValues> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ModelManager', + request='SetModelDefaults', + version=3, + params=_params) _params['config'] = config reply = await self.rpc(msg) return reply @@ -2538,12 +3820,15 @@ class ModelManagerFacade(Type): @ReturnMapping(ErrorResults) async def UnsetModelDefaults(self, keys): ''' - keys : typing.Sequence<+T_co>[~ModelUnsetKeys]<~ModelUnsetKeys> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='ModelManager', + request='UnsetModelDefaults', + version=3, + params=_params) _params['keys'] = keys reply = await self.rpc(msg) return reply @@ -3203,11 +4488,14 @@ class ProvisionerFacade(Type): async def APIAddresses(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]] + 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) + msg = dict(type='Provisioner', + request='APIAddresses', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3218,11 +4506,14 @@ class ProvisionerFacade(Type): async def APIHostPorts(self): ''' - Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort> + Returns -> typing.Sequence[~HostPort] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='APIHostPorts', version=3, params=_params) + msg = dict(type='Provisioner', + request='APIHostPorts', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3233,11 +4524,14 @@ class ProvisionerFacade(Type): async def CACert(self): ''' - Returns -> typing.Sequence<+T_co>[int] + Returns -> typing.Sequence[int] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='CACert', version=3, params=_params) + msg = dict(type='Provisioner', + request='CACert', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3247,12 +4541,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ConstraintsResults) async def Constraints(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ConstraintsResult]<~ConstraintsResult> + 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) + msg = dict(type='Provisioner', + request='Constraints', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3263,11 +4560,14 @@ class ProvisionerFacade(Type): async def ContainerConfig(self): ''' - Returns -> typing.Union[_ForwardRef('UpdateBehavior'), str, _ForwardRef('Settings'), _ForwardRef('Settings'), bool] + 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) + msg = dict(type='Provisioner', + request='ContainerConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3278,11 +4578,14 @@ class ProvisionerFacade(Type): async def ContainerManagerConfig(self, type_): ''' type_ : str - Returns -> typing.Mapping<~KT, +VT_co>[str, str] + Returns -> typing.Mapping[str, str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='ContainerManagerConfig', version=3, params=_params) + msg = dict(type='Provisioner', + request='ContainerManagerConfig', + version=3, + params=_params) _params['type'] = type_ reply = await self.rpc(msg) return reply @@ -3293,11 +4596,14 @@ class ProvisionerFacade(Type): async def ControllerConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='ControllerConfig', version=3, params=_params) + msg = dict(type='Provisioner', + request='ControllerConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3307,12 +4613,15 @@ class ProvisionerFacade(Type): @ReturnMapping(DistributionGroupResults) async def DistributionGroup(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DistributionGroupResult]<~DistributionGroupResult> + 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) + msg = dict(type='Provisioner', + request='DistributionGroup', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3322,12 +4631,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def EnsureDead(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='EnsureDead', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3342,11 +4654,14 @@ class ProvisionerFacade(Type): minor : int number : Number series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[~Tools]<~Tools>] + 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) + msg = dict(type='Provisioner', + request='FindTools', + version=3, + params=_params) _params['arch'] = arch _params['major'] = major _params['minor'] = minor @@ -3360,12 +4675,15 @@ class ProvisionerFacade(Type): @ReturnMapping(MachineNetworkConfigResults) async def GetContainerInterfaceInfo(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachineNetworkConfigResult]<~MachineNetworkConfigResult> + 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) + msg = dict(type='Provisioner', + request='GetContainerInterfaceInfo', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3375,12 +4693,15 @@ class ProvisionerFacade(Type): @ReturnMapping(HostNetworkChangeResults) async def HostChangesForContainers(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~HostNetworkChange]<~HostNetworkChange> + 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) + msg = dict(type='Provisioner', + request='HostChangesForContainers', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3390,12 +4711,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StringResults) async def InstanceId(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Provisioner', + request='InstanceId', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3405,12 +4729,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StatusResults) async def InstanceStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='Provisioner', + request='InstanceStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3420,12 +4747,15 @@ class ProvisionerFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Provisioner', + request='Life', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3436,11 +4766,14 @@ class ProvisionerFacade(Type): async def MachinesWithTransientErrors(self): ''' - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + Returns -> typing.Sequence[~StatusResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='MachinesWithTransientErrors', version=3, params=_params) + msg = dict(type='Provisioner', + request='MachinesWithTransientErrors', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3450,12 +4783,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def MarkMachinesForRemoval(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='MarkMachinesForRemoval', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3466,11 +4802,14 @@ class ProvisionerFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='ModelConfig', version=3, params=_params) + msg = dict(type='Provisioner', + request='ModelConfig', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3485,7 +4824,10 @@ class ProvisionerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='ModelUUID', version=3, params=_params) + msg = dict(type='Provisioner', + request='ModelUUID', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3495,12 +4837,15 @@ class ProvisionerFacade(Type): @ReturnMapping(MachineNetworkConfigResults) async def PrepareContainerInterfaceInfo(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachineNetworkConfigResult]<~MachineNetworkConfigResult> + 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) + msg = dict(type='Provisioner', + request='PrepareContainerInterfaceInfo', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3510,12 +4855,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ProvisioningInfoResults) async def ProvisioningInfo(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ProvisioningInfoResult]<~ProvisioningInfoResult> + 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) + msg = dict(type='Provisioner', + request='ProvisioningInfo', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3525,12 +4873,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def ReleaseContainerAddresses(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='ReleaseContainerAddresses', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3540,12 +4891,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def Remove(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='Remove', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3555,12 +4909,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StringResults) async def Series(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Provisioner', + request='Series', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3570,13 +4927,16 @@ class ProvisionerFacade(Type): @ReturnMapping(None) async def SetHostMachineNetworkConfig(self, config, tag): ''' - config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + 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) + msg = dict(type='Provisioner', + request='SetHostMachineNetworkConfig', + version=3, + params=_params) _params['config'] = config _params['tag'] = tag reply = await self.rpc(msg) @@ -3587,12 +4947,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetInstanceInfo(self, machines): ''' - machines : typing.Sequence<+T_co>[~InstanceInfo]<~InstanceInfo> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetInstanceInfo', + version=3, + params=_params) _params['machines'] = machines reply = await self.rpc(msg) return reply @@ -3602,12 +4965,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetInstanceStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetInstanceStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3617,13 +4983,16 @@ class ProvisionerFacade(Type): @ReturnMapping(None) async def SetObservedNetworkConfig(self, config, tag): ''' - config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + 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) + msg = dict(type='Provisioner', + request='SetObservedNetworkConfig', + version=3, + params=_params) _params['config'] = config _params['tag'] = tag reply = await self.rpc(msg) @@ -3634,12 +5003,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetPasswords(self, changes): ''' - changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetPasswords', + version=3, + params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply @@ -3649,12 +5021,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetProviderNetworkConfig(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetProviderNetworkConfig', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3664,12 +5039,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3679,12 +5057,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetSupportedContainers(self, params): ''' - params : typing.Sequence<+T_co>[~MachineContainers]<~MachineContainers> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='SetSupportedContainers', + version=3, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -3695,11 +5076,14 @@ class ProvisionerFacade(Type): async def StateAddresses(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]] + 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) + msg = dict(type='Provisioner', + request='StateAddresses', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3709,12 +5093,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StatusResults) async def Status(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='Provisioner', + request='Status', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3724,12 +5111,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ToolsResults) async def Tools(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ToolsResult]<~ToolsResult> + 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) + msg = dict(type='Provisioner', + request='Tools', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3739,12 +5129,15 @@ class ProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def UpdateStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Provisioner', + request='UpdateStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -3759,7 +5152,10 @@ class ProvisionerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='WatchAPIHostPorts', version=3, params=_params) + msg = dict(type='Provisioner', + request='WatchAPIHostPorts', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3769,12 +5165,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchAllContainers(self, params): ''' - params : typing.Sequence<+T_co>[~WatchContainer]<~WatchContainer> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Provisioner', + request='WatchAllContainers', + version=3, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -3784,12 +5183,15 @@ class ProvisionerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchContainers(self, params): ''' - params : typing.Sequence<+T_co>[~WatchContainer]<~WatchContainer> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Provisioner', + request='WatchContainers', + version=3, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -3804,7 +5206,10 @@ class ProvisionerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='WatchForModelConfigChanges', version=3, params=_params) + msg = dict(type='Provisioner', + request='WatchForModelConfigChanges', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3819,7 +5224,10 @@ class ProvisionerFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Provisioner', request='WatchMachineErrorRetry', version=3, params=_params) + msg = dict(type='Provisioner', + request='WatchMachineErrorRetry', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3830,11 +5238,14 @@ class ProvisionerFacade(Type): async def WatchModelMachines(self): ''' - Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')] + 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) + msg = dict(type='Provisioner', + request='WatchModelMachines', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3919,12 +5330,15 @@ class SpacesFacade(Type): @ReturnMapping(ErrorResults) async def CreateSpaces(self, spaces): ''' - spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Spaces', + request='CreateSpaces', + version=3, + params=_params) _params['spaces'] = spaces reply = await self.rpc(msg) return reply @@ -3935,11 +5349,14 @@ class SpacesFacade(Type): async def ListSpaces(self): ''' - Returns -> typing.Sequence<+T_co>[~Space]<~Space> + Returns -> typing.Sequence[~Space] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Spaces', request='ListSpaces', version=3, params=_params) + msg = dict(type='Spaces', + request='ListSpaces', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -3954,7 +5371,10 @@ class SpacesFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Spaces', request='ReloadSpaces', version=3, params=_params) + msg = dict(type='Spaces', + request='ReloadSpaces', + version=3, + params=_params) reply = await self.rpc(msg) return reply @@ -4233,12 +5653,15 @@ class StorageFacade(Type): @ReturnMapping(ErrorResults) async def AddToUnit(self, storages): ''' - storages : typing.Sequence<+T_co>[~StorageAddParams]<~StorageAddParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Storage', + request='AddToUnit', + version=3, + params=_params) _params['storages'] = storages reply = await self.rpc(msg) return reply @@ -4248,12 +5671,15 @@ class StorageFacade(Type): @ReturnMapping(ErrorResults) async def Attach(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Storage', + request='Attach', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4263,14 +5689,17 @@ class StorageFacade(Type): @ReturnMapping(None) async def CreatePool(self, attrs, name, provider): ''' - attrs : typing.Mapping<~KT, +VT_co>[str, typing.Any] + 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) + msg = dict(type='Storage', + request='CreatePool', + version=3, + params=_params) _params['attrs'] = attrs _params['name'] = name _params['provider'] = provider @@ -4282,12 +5711,15 @@ class StorageFacade(Type): @ReturnMapping(ErrorResults) async def Destroy(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Storage', + request='Destroy', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4297,12 +5729,15 @@ class StorageFacade(Type): @ReturnMapping(ErrorResults) async def Detach(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Storage', + request='Detach', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4312,12 +5747,15 @@ class StorageFacade(Type): @ReturnMapping(FilesystemDetailsListResults) async def ListFilesystems(self, filters): ''' - filters : typing.Sequence<+T_co>[~FilesystemFilter]<~FilesystemFilter> - Returns -> typing.Sequence<+T_co>[~FilesystemDetailsListResult]<~FilesystemDetailsListResult> + 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) + msg = dict(type='Storage', + request='ListFilesystems', + version=3, + params=_params) _params['filters'] = filters reply = await self.rpc(msg) return reply @@ -4327,12 +5765,15 @@ class StorageFacade(Type): @ReturnMapping(StoragePoolsResults) async def ListPools(self, filters): ''' - filters : typing.Sequence<+T_co>[~StoragePoolFilter]<~StoragePoolFilter> - Returns -> typing.Sequence<+T_co>[~StoragePoolsResult]<~StoragePoolsResult> + 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) + msg = dict(type='Storage', + request='ListPools', + version=3, + params=_params) _params['filters'] = filters reply = await self.rpc(msg) return reply @@ -4342,12 +5783,15 @@ class StorageFacade(Type): @ReturnMapping(StorageDetailsListResults) async def ListStorageDetails(self, filters): ''' - filters : typing.Sequence<+T_co>[~StorageFilter]<~StorageFilter> - Returns -> typing.Sequence<+T_co>[~StorageDetailsListResult]<~StorageDetailsListResult> + 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) + msg = dict(type='Storage', + request='ListStorageDetails', + version=3, + params=_params) _params['filters'] = filters reply = await self.rpc(msg) return reply @@ -4357,12 +5801,15 @@ class StorageFacade(Type): @ReturnMapping(VolumeDetailsListResults) async def ListVolumes(self, filters): ''' - filters : typing.Sequence<+T_co>[~VolumeFilter]<~VolumeFilter> - Returns -> typing.Sequence<+T_co>[~VolumeDetailsListResult]<~VolumeDetailsListResult> + 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) + msg = dict(type='Storage', + request='ListVolumes', + version=3, + params=_params) _params['filters'] = filters reply = await self.rpc(msg) return reply @@ -4372,12 +5819,15 @@ class StorageFacade(Type): @ReturnMapping(StorageDetailsResults) async def StorageDetails(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StorageDetailsResult]<~StorageDetailsResult> + 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) + msg = dict(type='Storage', + request='StorageDetails', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4817,12 +6267,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(LifeResults) async def AttachmentLife(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='StorageProvisioner', + request='AttachmentLife', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4832,12 +6285,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def EnsureDead(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='EnsureDead', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4847,12 +6303,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(FilesystemAttachmentParamsResults) async def FilesystemAttachmentParams(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~FilesystemAttachmentParamsResult]<~FilesystemAttachmentParamsResult> + 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) + msg = dict(type='StorageProvisioner', + request='FilesystemAttachmentParams', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4862,12 +6321,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(FilesystemAttachmentResults) async def FilesystemAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~FilesystemAttachmentResult]<~FilesystemAttachmentResult> + 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) + msg = dict(type='StorageProvisioner', + request='FilesystemAttachments', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4877,12 +6339,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(FilesystemParamsResults) async def FilesystemParams(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~FilesystemParamsResult]<~FilesystemParamsResult> + 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) + msg = dict(type='StorageProvisioner', + request='FilesystemParams', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4892,12 +6357,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(FilesystemResults) async def Filesystems(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~FilesystemResult]<~FilesystemResult> + 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) + msg = dict(type='StorageProvisioner', + request='Filesystems', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4907,12 +6375,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(StringResults) async def InstanceId(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='StorageProvisioner', + request='InstanceId', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4922,12 +6393,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='StorageProvisioner', + request='Life', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4937,12 +6411,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def Remove(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='Remove', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -4952,12 +6429,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def RemoveAttachment(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='RemoveAttachment', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -4967,12 +6447,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetFilesystemAttachmentInfo(self, filesystem_attachments): ''' - filesystem_attachments : typing.Sequence<+T_co>[~FilesystemAttachment]<~FilesystemAttachment> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='SetFilesystemAttachmentInfo', + version=3, + params=_params) _params['filesystem-attachments'] = filesystem_attachments reply = await self.rpc(msg) return reply @@ -4982,12 +6465,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetFilesystemInfo(self, filesystems): ''' - filesystems : typing.Sequence<+T_co>[~Filesystem]<~Filesystem> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='SetFilesystemInfo', + version=3, + params=_params) _params['filesystems'] = filesystems reply = await self.rpc(msg) return reply @@ -4997,12 +6483,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='SetStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5012,12 +6501,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetVolumeAttachmentInfo(self, volume_attachments): ''' - volume_attachments : typing.Sequence<+T_co>[~VolumeAttachment]<~VolumeAttachment> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='SetVolumeAttachmentInfo', + version=3, + params=_params) _params['volume-attachments'] = volume_attachments reply = await self.rpc(msg) return reply @@ -5027,12 +6519,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def SetVolumeInfo(self, volumes): ''' - volumes : typing.Sequence<+T_co>[~Volume]<~Volume> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='SetVolumeInfo', + version=3, + params=_params) _params['volumes'] = volumes reply = await self.rpc(msg) return reply @@ -5042,12 +6537,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(ErrorResults) async def UpdateStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='StorageProvisioner', + request='UpdateStatus', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5057,12 +6555,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(VolumeAttachmentParamsResults) async def VolumeAttachmentParams(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~VolumeAttachmentParamsResult]<~VolumeAttachmentParamsResult> + 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) + msg = dict(type='StorageProvisioner', + request='VolumeAttachmentParams', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -5072,12 +6573,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(VolumeAttachmentResults) async def VolumeAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~VolumeAttachmentResult]<~VolumeAttachmentResult> + 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) + msg = dict(type='StorageProvisioner', + request='VolumeAttachments', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -5087,12 +6591,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(BlockDeviceResults) async def VolumeBlockDevices(self, ids): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> - Returns -> typing.Sequence<+T_co>[~BlockDeviceResult]<~BlockDeviceResult> + 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) + msg = dict(type='StorageProvisioner', + request='VolumeBlockDevices', + version=3, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -5102,12 +6609,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(VolumeParamsResults) async def VolumeParams(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~VolumeParamsResult]<~VolumeParamsResult> + 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) + msg = dict(type='StorageProvisioner', + request='VolumeParams', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5117,12 +6627,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(VolumeResults) async def Volumes(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~VolumeResult]<~VolumeResult> + 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) + msg = dict(type='StorageProvisioner', + request='Volumes', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5132,12 +6645,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchBlockDevices(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='StorageProvisioner', + request='WatchBlockDevices', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5147,12 +6663,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(MachineStorageIdsWatchResults) async def WatchFilesystemAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachineStorageIdsWatchResult]<~MachineStorageIdsWatchResult> + 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) + msg = dict(type='StorageProvisioner', + request='WatchFilesystemAttachments', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5162,12 +6681,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchFilesystems(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='StorageProvisioner', + request='WatchFilesystems', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5177,12 +6699,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchMachines(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='StorageProvisioner', + request='WatchMachines', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5192,12 +6717,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(MachineStorageIdsWatchResults) async def WatchVolumeAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachineStorageIdsWatchResult]<~MachineStorageIdsWatchResult> + 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) + msg = dict(type='StorageProvisioner', + request='WatchVolumeAttachments', + version=3, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -5207,12 +6735,15 @@ class StorageProvisionerFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchVolumes(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + 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 index 9c47561..2336d2c 100644 --- a/modules/libjuju/juju/client/_client4.py +++ b/modules/libjuju/juju/client/_client4.py @@ -412,12 +412,15 @@ class ApplicationFacade(Type): @ReturnMapping(AddRelationResults) async def AddRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] - Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> + 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) + msg = dict(type='Application', + request='AddRelation', + version=4, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -429,12 +432,15 @@ class ApplicationFacade(Type): ''' application : str num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> - Returns -> typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='AddUnits', + version=4, + params=_params) _params['application'] = application _params['num-units'] = num_units _params['placement'] = placement @@ -447,11 +453,14 @@ class ApplicationFacade(Type): async def CharmRelations(self, application): ''' application : str - Returns -> typing.Sequence<+T_co>[str] + Returns -> typing.Sequence[str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='CharmRelations', version=4, params=_params) + msg = dict(type='Application', + request='CharmRelations', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -461,12 +470,15 @@ class ApplicationFacade(Type): @ReturnMapping(ConsumeApplicationResults) async def Consume(self, args): ''' - args : typing.Sequence<+T_co>[~ConsumeApplicationArg]<~ConsumeApplicationArg> - Returns -> typing.Sequence<+T_co>[~ConsumeApplicationResult]<~ConsumeApplicationResult> + 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) + msg = dict(type='Application', + request='Consume', + version=4, + params=_params) _params['args'] = args reply = await self.rpc(msg) return reply @@ -476,12 +488,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def Deploy(self, applications): ''' - applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='Deploy', + version=4, + params=_params) _params['applications'] = applications reply = await self.rpc(msg) return reply @@ -496,7 +511,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Destroy', version=4, params=_params) + msg = dict(type='Application', + request='Destroy', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -506,12 +524,15 @@ class ApplicationFacade(Type): @ReturnMapping(DestroyApplicationResults) async def DestroyApplication(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyApplicationResult]<~DestroyApplicationResult> + 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) + msg = dict(type='Application', + request='DestroyApplication', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -521,12 +542,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] + endpoints : typing.Sequence[str] Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='DestroyRelation', version=4, params=_params) + msg = dict(type='Application', + request='DestroyRelation', + version=4, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -536,12 +560,15 @@ class ApplicationFacade(Type): @ReturnMapping(DestroyUnitResults) async def DestroyUnit(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyUnitResult]<~DestroyUnitResult> + 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) + msg = dict(type='Application', + request='DestroyUnit', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -551,12 +578,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyUnits(self, unit_names): ''' - unit_names : typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='DestroyUnits', + version=4, + params=_params) _params['unit-names'] = unit_names reply = await self.rpc(msg) return reply @@ -571,7 +601,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Expose', version=4, params=_params) + msg = dict(type='Application', + request='Expose', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -582,11 +615,14 @@ class ApplicationFacade(Type): async def Get(self, application): ''' application : str - Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')] + 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) + msg = dict(type='Application', + request='Get', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -601,7 +637,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetCharmURL', version=4, params=_params) + msg = dict(type='Application', + request='GetCharmURL', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -616,7 +655,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetConstraints', version=4, params=_params) + msg = dict(type='Application', + request='GetConstraints', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -626,12 +668,15 @@ class ApplicationFacade(Type): @ReturnMapping(RemoteApplicationInfoResults) async def RemoteApplicationInfo(self, application_urls): ''' - application_urls : typing.Sequence<+T_co>[str] - Returns -> typing.Sequence<+T_co>[~RemoteApplicationInfoResult]<~RemoteApplicationInfoResult> + 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) + msg = dict(type='Application', + request='RemoteApplicationInfo', + version=4, + params=_params) _params['application-urls'] = application_urls reply = await self.rpc(msg) return reply @@ -642,12 +687,15 @@ class ApplicationFacade(Type): async def Set(self, application, options): ''' application : str - options : typing.Mapping<~KT, +VT_co>[str, 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) + msg = dict(type='Application', + request='Set', + version=4, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -661,17 +709,20 @@ class ApplicationFacade(Type): application : str channel : str charm_url : str - config_settings : typing.Mapping<~KT, +VT_co>[str, str] + config_settings : typing.Mapping[str, str] config_settings_yaml : str force_series : bool force_units : bool - resource_ids : typing.Mapping<~KT, +VT_co>[str, str] - storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints> + 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) + msg = dict(type='Application', + request='SetCharm', + version=4, + params=_params) _params['application'] = application _params['channel'] = channel _params['charm-url'] = charm_url @@ -695,7 +746,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='SetConstraints', version=4, params=_params) + msg = dict(type='Application', + request='SetConstraints', + version=4, + params=_params) _params['application'] = application _params['constraints'] = constraints reply = await self.rpc(msg) @@ -706,12 +760,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def SetMetricCredentials(self, creds): ''' - creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='SetMetricCredentials', + version=4, + params=_params) _params['creds'] = creds reply = await self.rpc(msg) return reply @@ -726,7 +783,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Unexpose', version=4, params=_params) + msg = dict(type='Application', + request='Unexpose', + version=4, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -737,12 +797,15 @@ class ApplicationFacade(Type): async def Unset(self, application, options): ''' application : str - options : typing.Sequence<+T_co>[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) + msg = dict(type='Application', + request='Unset', + version=4, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -759,13 +822,16 @@ class ApplicationFacade(Type): force_charm_url : bool force_series : bool min_units : int - settings : typing.Mapping<~KT, +VT_co>[str, str] + 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) + msg = dict(type='Application', + request='Update', + version=4, + params=_params) _params['application'] = application _params['charm-url'] = charm_url _params['constraints'] = constraints @@ -779,6 +845,1687 @@ class ApplicationFacade(Type): +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 @@ -1624,11 +3371,14 @@ class UniterFacade(Type): async def APIAddresses(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]] + 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) + msg = dict(type='Uniter', + request='APIAddresses', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -1639,11 +3389,14 @@ class UniterFacade(Type): async def APIHostPorts(self): ''' - Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort> + Returns -> typing.Sequence[~HostPort] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='APIHostPorts', version=4, params=_params) + msg = dict(type='Uniter', + request='APIHostPorts', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -1653,12 +3406,15 @@ class UniterFacade(Type): @ReturnMapping(ActionResults) async def Actions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Uniter', + request='Actions', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1668,12 +3424,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def AddMetricBatches(self, batches): ''' - batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='AddMetricBatches', + version=4, + params=_params) _params['batches'] = batches reply = await self.rpc(msg) return reply @@ -1683,12 +3442,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def AddUnitStorage(self, storages): ''' - storages : typing.Sequence<+T_co>[~StorageAddParams]<~StorageAddParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='AddUnitStorage', + version=4, + params=_params) _params['storages'] = storages reply = await self.rpc(msg) return reply @@ -1698,12 +3460,15 @@ class UniterFacade(Type): @ReturnMapping(MachinePortsResults) async def AllMachinePorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachinePortsResult]<~MachinePortsResult> + 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) + msg = dict(type='Uniter', + request='AllMachinePorts', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1713,12 +3478,15 @@ class UniterFacade(Type): @ReturnMapping(ApplicationStatusResults) async def ApplicationStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ApplicationStatusResult]<~ApplicationStatusResult> + 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) + msg = dict(type='Uniter', + request='ApplicationStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1728,12 +3496,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def AssignedMachine(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='AssignedMachine', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1743,12 +3514,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def AvailabilityZone(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='AvailabilityZone', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1758,12 +3532,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def BeginActions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='BeginActions', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1774,11 +3551,14 @@ class UniterFacade(Type): async def CACert(self): ''' - Returns -> typing.Sequence<+T_co>[int] + Returns -> typing.Sequence[int] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='CACert', version=4, params=_params) + msg = dict(type='Uniter', + request='CACert', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -1788,12 +3568,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def CharmArchiveSha256(self, urls): ''' - urls : typing.Sequence<+T_co>[~CharmURL]<~CharmURL> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='CharmArchiveSha256', + version=4, + params=_params) _params['urls'] = urls reply = await self.rpc(msg) return reply @@ -1803,12 +3586,15 @@ class UniterFacade(Type): @ReturnMapping(IntResults) async def CharmModifiedVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~IntResult]<~IntResult> + 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) + msg = dict(type='Uniter', + request='CharmModifiedVersion', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1818,12 +3604,15 @@ class UniterFacade(Type): @ReturnMapping(StringBoolResults) async def CharmURL(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult> + 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) + msg = dict(type='Uniter', + request='CharmURL', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1833,12 +3622,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def ClearResolved(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='ClearResolved', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1848,12 +3640,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def ClosePorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='ClosePorts', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1863,12 +3658,15 @@ class UniterFacade(Type): @ReturnMapping(ConfigSettingsResults) async def ConfigSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ConfigSettingsResult]<~ConfigSettingsResult> + 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) + msg = dict(type='Uniter', + request='ConfigSettings', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1883,7 +3681,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='CurrentModel', version=4, params=_params) + msg = dict(type='Uniter', + request='CurrentModel', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -1893,12 +3694,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def Destroy(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='Destroy', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1908,12 +3712,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def DestroyAllSubordinates(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='DestroyAllSubordinates', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1923,12 +3730,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def DestroyUnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='DestroyUnitStorageAttachments', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1938,12 +3748,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def EnsureDead(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='EnsureDead', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1953,12 +3766,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def EnterScope(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='EnterScope', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -1968,12 +3784,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def FinishActions(self, results): ''' - results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='FinishActions', + version=4, + params=_params) _params['results'] = results reply = await self.rpc(msg) return reply @@ -1983,12 +3802,15 @@ class UniterFacade(Type): @ReturnMapping(MeterStatusResults) async def GetMeterStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MeterStatusResult]<~MeterStatusResult> + 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) + msg = dict(type='Uniter', + request='GetMeterStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1998,12 +3820,15 @@ class UniterFacade(Type): @ReturnMapping(StringBoolResults) async def GetPrincipal(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult> + 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) + msg = dict(type='Uniter', + request='GetPrincipal', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2013,12 +3838,15 @@ class UniterFacade(Type): @ReturnMapping(BoolResults) async def HasSubordinates(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~BoolResult]<~BoolResult> + 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) + msg = dict(type='Uniter', + request='HasSubordinates', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2028,12 +3856,15 @@ class UniterFacade(Type): @ReturnMapping(StringsResults) async def JoinedRelations(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + 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) + msg = dict(type='Uniter', + request='JoinedRelations', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2043,12 +3874,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def LeaveScope(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='LeaveScope', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2058,12 +3892,15 @@ class UniterFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Uniter', + request='Life', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2073,12 +3910,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def Merge(self, params): ''' - params : typing.Sequence<+T_co>[~MergeLeadershipSettingsParam]<~MergeLeadershipSettingsParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='Merge', + version=4, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -2089,11 +3929,14 @@ class UniterFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ModelConfig', version=4, params=_params) + msg = dict(type='Uniter', + request='ModelConfig', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -2108,7 +3951,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ModelUUID', version=4, params=_params) + msg = dict(type='Uniter', + request='ModelUUID', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -2118,12 +3964,15 @@ class UniterFacade(Type): @ReturnMapping(UnitNetworkConfigResults) async def NetworkConfig(self, args): ''' - args : typing.Sequence<+T_co>[~UnitNetworkConfig]<~UnitNetworkConfig> - Returns -> typing.Sequence<+T_co>[~UnitNetworkConfigResult]<~UnitNetworkConfigResult> + 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) + msg = dict(type='Uniter', + request='NetworkConfig', + version=4, + params=_params) _params['args'] = args reply = await self.rpc(msg) return reply @@ -2133,12 +3982,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def OpenPorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='OpenPorts', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2148,12 +4000,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def PrivateAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='PrivateAddress', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2168,7 +4023,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ProviderType', version=4, params=_params) + msg = dict(type='Uniter', + request='ProviderType', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -2178,12 +4036,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def PublicAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='PublicAddress', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2193,12 +4054,15 @@ class UniterFacade(Type): @ReturnMapping(GetLeadershipSettingsBulkResults) async def Read(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~GetLeadershipSettingsResult]<~GetLeadershipSettingsResult> + 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) + msg = dict(type='Uniter', + request='Read', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2208,12 +4072,15 @@ class UniterFacade(Type): @ReturnMapping(SettingsResults) async def ReadRemoteSettings(self, relation_unit_pairs): ''' - relation_unit_pairs : typing.Sequence<+T_co>[~RelationUnitPair]<~RelationUnitPair> - Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult> + 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) + msg = dict(type='Uniter', + request='ReadRemoteSettings', + version=4, + params=_params) _params['relation-unit-pairs'] = relation_unit_pairs reply = await self.rpc(msg) return reply @@ -2223,12 +4090,15 @@ class UniterFacade(Type): @ReturnMapping(SettingsResults) async def ReadSettings(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult> + 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) + msg = dict(type='Uniter', + request='ReadSettings', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2238,12 +4108,15 @@ class UniterFacade(Type): @ReturnMapping(RelationResults) async def Relation(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult> + 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) + msg = dict(type='Uniter', + request='Relation', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2253,12 +4126,15 @@ class UniterFacade(Type): @ReturnMapping(RelationResults) async def RelationById(self, relation_ids): ''' - relation_ids : typing.Sequence<+T_co>[int] - Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult> + 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) + msg = dict(type='Uniter', + request='RelationById', + version=4, + params=_params) _params['relation-ids'] = relation_ids reply = await self.rpc(msg) return reply @@ -2268,12 +4144,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def RemoveStorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='RemoveStorageAttachments', + version=4, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2283,12 +4162,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def RequestReboot(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='RequestReboot', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2298,12 +4180,15 @@ class UniterFacade(Type): @ReturnMapping(ResolvedModeResults) async def Resolved(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ResolvedModeResult]<~ResolvedModeResult> + 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) + msg = dict(type='Uniter', + request='Resolved', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2313,12 +4198,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetAgentStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetAgentStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2328,12 +4216,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetApplicationStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetApplicationStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2343,12 +4234,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetCharmURL(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityCharmURL]<~EntityCharmURL> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetCharmURL', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2358,12 +4252,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2373,12 +4270,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetUnitStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetUnitStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2388,12 +4288,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetWorkloadVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityWorkloadVersion]<~EntityWorkloadVersion> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetWorkloadVersion', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2403,12 +4306,15 @@ class UniterFacade(Type): @ReturnMapping(LifeResults) async def StorageAttachmentLife(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Uniter', + request='StorageAttachmentLife', + version=4, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2418,12 +4324,15 @@ class UniterFacade(Type): @ReturnMapping(StorageAttachmentResults) async def StorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~StorageAttachmentResult]<~StorageAttachmentResult> + 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) + msg = dict(type='Uniter', + request='StorageAttachments', + version=4, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2433,12 +4342,15 @@ class UniterFacade(Type): @ReturnMapping(StatusResults) async def UnitStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='Uniter', + request='UnitStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2448,12 +4360,15 @@ class UniterFacade(Type): @ReturnMapping(StorageAttachmentIdsResults) async def UnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StorageAttachmentIdsResult]<~StorageAttachmentIdsResult> + 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) + msg = dict(type='Uniter', + request='UnitStorageAttachments', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2463,12 +4378,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def UpdateSettings(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnitSettings]<~RelationUnitSettings> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='UpdateSettings', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2478,12 +4396,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def Watch(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='Watch', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2498,7 +4419,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='WatchAPIHostPorts', version=4, params=_params) + msg = dict(type='Uniter', + request='WatchAPIHostPorts', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -2508,12 +4432,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchActionNotifications(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchActionNotifications', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2523,12 +4450,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchApplicationRelations(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchApplicationRelations', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2538,12 +4468,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchConfigSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchConfigSettings', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2558,7 +4491,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='WatchForModelConfigChanges', version=4, params=_params) + msg = dict(type='Uniter', + request='WatchForModelConfigChanges', + version=4, + params=_params) reply = await self.rpc(msg) return reply @@ -2568,12 +4504,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchLeadershipSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchLeadershipSettings', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2583,12 +4522,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchMeterStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchMeterStatus', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2598,12 +4540,15 @@ class UniterFacade(Type): @ReturnMapping(RelationUnitsWatchResults) async def WatchRelationUnits(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~RelationUnitsWatchResult]<~RelationUnitsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchRelationUnits', + version=4, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2613,12 +4558,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchStorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchStorageAttachments', + version=4, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2628,12 +4576,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchUnitAddresses(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchUnitAddresses', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2643,12 +4594,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchUnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchUnitStorageAttachments', + version=4, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2658,12 +4612,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def WorkloadVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + 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 index f0f1282..415aeae 100644 --- a/modules/libjuju/juju/client/_client5.py +++ b/modules/libjuju/juju/client/_client5.py @@ -429,12 +429,15 @@ class ApplicationFacade(Type): @ReturnMapping(AddRelationResults) async def AddRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] - Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> + 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) + msg = dict(type='Application', + request='AddRelation', + version=5, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -446,12 +449,15 @@ class ApplicationFacade(Type): ''' application : str num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> - Returns -> typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='AddUnits', + version=5, + params=_params) _params['application'] = application _params['num-units'] = num_units _params['placement'] = placement @@ -464,11 +470,14 @@ class ApplicationFacade(Type): async def CharmRelations(self, application): ''' application : str - Returns -> typing.Sequence<+T_co>[str] + Returns -> typing.Sequence[str] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='CharmRelations', version=5, params=_params) + msg = dict(type='Application', + request='CharmRelations', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -478,12 +487,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def Consume(self, args): ''' - args : typing.Sequence<+T_co>[~ConsumeApplicationArg]<~ConsumeApplicationArg> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='Consume', + version=5, + params=_params) _params['args'] = args reply = await self.rpc(msg) return reply @@ -493,12 +505,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def Deploy(self, applications): ''' - applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='Deploy', + version=5, + params=_params) _params['applications'] = applications reply = await self.rpc(msg) return reply @@ -513,7 +528,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Destroy', version=5, params=_params) + msg = dict(type='Application', + request='Destroy', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -523,12 +541,15 @@ class ApplicationFacade(Type): @ReturnMapping(DestroyApplicationResults) async def DestroyApplication(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyApplicationResult]<~DestroyApplicationResult> + 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) + msg = dict(type='Application', + request='DestroyApplication', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -538,12 +559,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyRelation(self, endpoints): ''' - endpoints : typing.Sequence<+T_co>[str] + endpoints : typing.Sequence[str] Returns -> None ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='DestroyRelation', version=5, params=_params) + msg = dict(type='Application', + request='DestroyRelation', + version=5, + params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply @@ -553,12 +577,15 @@ class ApplicationFacade(Type): @ReturnMapping(DestroyUnitResults) async def DestroyUnit(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~DestroyUnitResult]<~DestroyUnitResult> + 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) + msg = dict(type='Application', + request='DestroyUnit', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -568,12 +595,15 @@ class ApplicationFacade(Type): @ReturnMapping(None) async def DestroyUnits(self, unit_names): ''' - unit_names : typing.Sequence<+T_co>[str] + 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) + msg = dict(type='Application', + request='DestroyUnits', + version=5, + params=_params) _params['unit-names'] = unit_names reply = await self.rpc(msg) return reply @@ -588,7 +618,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Expose', version=5, params=_params) + msg = dict(type='Application', + request='Expose', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -599,11 +632,14 @@ class ApplicationFacade(Type): async def Get(self, application): ''' application : str - Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')] + 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) + msg = dict(type='Application', + request='Get', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -618,7 +654,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetCharmURL', version=5, params=_params) + msg = dict(type='Application', + request='GetCharmURL', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -633,7 +672,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='GetConstraints', version=5, params=_params) + msg = dict(type='Application', + request='GetConstraints', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -644,12 +686,15 @@ class ApplicationFacade(Type): async def Set(self, application, options): ''' application : str - options : typing.Mapping<~KT, +VT_co>[str, 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) + msg = dict(type='Application', + request='Set', + version=5, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -663,17 +708,20 @@ class ApplicationFacade(Type): application : str channel : str charm_url : str - config_settings : typing.Mapping<~KT, +VT_co>[str, str] + config_settings : typing.Mapping[str, str] config_settings_yaml : str force_series : bool force_units : bool - resource_ids : typing.Mapping<~KT, +VT_co>[str, str] - storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints> + 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) + msg = dict(type='Application', + request='SetCharm', + version=5, + params=_params) _params['application'] = application _params['channel'] = channel _params['charm-url'] = charm_url @@ -697,7 +745,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='SetConstraints', version=5, params=_params) + msg = dict(type='Application', + request='SetConstraints', + version=5, + params=_params) _params['application'] = application _params['constraints'] = constraints reply = await self.rpc(msg) @@ -708,12 +759,15 @@ class ApplicationFacade(Type): @ReturnMapping(ErrorResults) async def SetMetricCredentials(self, creds): ''' - creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Application', + request='SetMetricCredentials', + version=5, + params=_params) _params['creds'] = creds reply = await self.rpc(msg) return reply @@ -728,7 +782,10 @@ class ApplicationFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Application', request='Unexpose', version=5, params=_params) + msg = dict(type='Application', + request='Unexpose', + version=5, + params=_params) _params['application'] = application reply = await self.rpc(msg) return reply @@ -739,12 +796,15 @@ class ApplicationFacade(Type): async def Unset(self, application, options): ''' application : str - options : typing.Sequence<+T_co>[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) + msg = dict(type='Application', + request='Unset', + version=5, + params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) @@ -761,13 +821,16 @@ class ApplicationFacade(Type): force_charm_url : bool force_series : bool min_units : int - settings : typing.Mapping<~KT, +VT_co>[str, str] + 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) + msg = dict(type='Application', + request='Update', + version=5, + params=_params) _params['application'] = application _params['charm-url'] = charm_url _params['constraints'] = constraints @@ -781,6 +844,2400 @@ class ApplicationFacade(Type): +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 @@ -1590,11 +4047,14 @@ class UniterFacade(Type): async def APIAddresses(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]] + 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) + msg = dict(type='Uniter', + request='APIAddresses', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -1605,11 +4065,14 @@ class UniterFacade(Type): async def APIHostPorts(self): ''' - Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort> + Returns -> typing.Sequence[~HostPort] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='APIHostPorts', version=5, params=_params) + msg = dict(type='Uniter', + request='APIHostPorts', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -1619,12 +4082,15 @@ class UniterFacade(Type): @ReturnMapping(ActionResults) async def Actions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + 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) + msg = dict(type='Uniter', + request='Actions', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1634,12 +4100,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def AddMetricBatches(self, batches): ''' - batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='AddMetricBatches', + version=5, + params=_params) _params['batches'] = batches reply = await self.rpc(msg) return reply @@ -1649,12 +4118,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def AddUnitStorage(self, storages): ''' - storages : typing.Sequence<+T_co>[~StorageAddParams]<~StorageAddParams> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='AddUnitStorage', + version=5, + params=_params) _params['storages'] = storages reply = await self.rpc(msg) return reply @@ -1664,12 +4136,15 @@ class UniterFacade(Type): @ReturnMapping(MachinePortsResults) async def AllMachinePorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MachinePortsResult]<~MachinePortsResult> + 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) + msg = dict(type='Uniter', + request='AllMachinePorts', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1679,12 +4154,15 @@ class UniterFacade(Type): @ReturnMapping(ApplicationStatusResults) async def ApplicationStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ApplicationStatusResult]<~ApplicationStatusResult> + 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) + msg = dict(type='Uniter', + request='ApplicationStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1694,12 +4172,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def AssignedMachine(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='AssignedMachine', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1709,12 +4190,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def AvailabilityZone(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='AvailabilityZone', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1724,12 +4208,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def BeginActions(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='BeginActions', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1740,11 +4227,14 @@ class UniterFacade(Type): async def CACert(self): ''' - Returns -> typing.Sequence<+T_co>[int] + Returns -> typing.Sequence[int] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='CACert', version=5, params=_params) + msg = dict(type='Uniter', + request='CACert', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -1754,12 +4244,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def CharmArchiveSha256(self, urls): ''' - urls : typing.Sequence<+T_co>[~CharmURL]<~CharmURL> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='CharmArchiveSha256', + version=5, + params=_params) _params['urls'] = urls reply = await self.rpc(msg) return reply @@ -1769,12 +4262,15 @@ class UniterFacade(Type): @ReturnMapping(IntResults) async def CharmModifiedVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~IntResult]<~IntResult> + 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) + msg = dict(type='Uniter', + request='CharmModifiedVersion', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1784,12 +4280,15 @@ class UniterFacade(Type): @ReturnMapping(StringBoolResults) async def CharmURL(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult> + 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) + msg = dict(type='Uniter', + request='CharmURL', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1799,12 +4298,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def ClearResolved(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='ClearResolved', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1814,12 +4316,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def ClosePorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='ClosePorts', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1829,12 +4334,15 @@ class UniterFacade(Type): @ReturnMapping(ConfigSettingsResults) async def ConfigSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ConfigSettingsResult]<~ConfigSettingsResult> + 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) + msg = dict(type='Uniter', + request='ConfigSettings', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1849,7 +4357,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='CurrentModel', version=5, params=_params) + msg = dict(type='Uniter', + request='CurrentModel', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -1859,12 +4370,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def Destroy(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='Destroy', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1874,12 +4388,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def DestroyAllSubordinates(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='DestroyAllSubordinates', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1889,12 +4406,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def DestroyUnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='DestroyUnitStorageAttachments', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1904,12 +4424,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def EnsureDead(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='EnsureDead', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1919,12 +4442,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def EnterScope(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='EnterScope', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -1934,12 +4460,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def FinishActions(self, results): ''' - results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='FinishActions', + version=5, + params=_params) _params['results'] = results reply = await self.rpc(msg) return reply @@ -1949,12 +4478,15 @@ class UniterFacade(Type): @ReturnMapping(MeterStatusResults) async def GetMeterStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~MeterStatusResult]<~MeterStatusResult> + 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) + msg = dict(type='Uniter', + request='GetMeterStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1964,12 +4496,15 @@ class UniterFacade(Type): @ReturnMapping(StringBoolResults) async def GetPrincipal(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult> + 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) + msg = dict(type='Uniter', + request='GetPrincipal', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1979,12 +4514,15 @@ class UniterFacade(Type): @ReturnMapping(BoolResults) async def HasSubordinates(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~BoolResult]<~BoolResult> + 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) + msg = dict(type='Uniter', + request='HasSubordinates', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -1994,12 +4532,15 @@ class UniterFacade(Type): @ReturnMapping(StringsResults) async def JoinedRelations(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + 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) + msg = dict(type='Uniter', + request='JoinedRelations', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2009,12 +4550,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def LeaveScope(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='LeaveScope', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2024,12 +4568,15 @@ class UniterFacade(Type): @ReturnMapping(LifeResults) async def Life(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Uniter', + request='Life', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2039,12 +4586,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def Merge(self, params): ''' - params : typing.Sequence<+T_co>[~MergeLeadershipSettingsParam]<~MergeLeadershipSettingsParam> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='Merge', + version=5, + params=_params) _params['params'] = params reply = await self.rpc(msg) return reply @@ -2055,11 +4605,14 @@ class UniterFacade(Type): async def ModelConfig(self): ''' - Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ModelConfig', version=5, params=_params) + msg = dict(type='Uniter', + request='ModelConfig', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2074,7 +4627,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ModelUUID', version=5, params=_params) + msg = dict(type='Uniter', + request='ModelUUID', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2084,13 +4640,16 @@ class UniterFacade(Type): @ReturnMapping(NetworkInfoResults) async def NetworkInfo(self, bindings, unit): ''' - bindings : typing.Sequence<+T_co>[str] + bindings : typing.Sequence[str] unit : str - Returns -> typing.Mapping<~KT, +VT_co>[str, ~NetworkInfoResult]<~NetworkInfoResult> + Returns -> typing.Mapping[str, ~NetworkInfoResult] ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='NetworkInfo', version=5, params=_params) + msg = dict(type='Uniter', + request='NetworkInfo', + version=5, + params=_params) _params['bindings'] = bindings _params['unit'] = unit reply = await self.rpc(msg) @@ -2101,12 +4660,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def OpenPorts(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='OpenPorts', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2116,12 +4678,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def PrivateAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='PrivateAddress', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2136,7 +4701,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='ProviderType', version=5, params=_params) + msg = dict(type='Uniter', + request='ProviderType', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2146,12 +4714,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def PublicAddress(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + msg = dict(type='Uniter', + request='PublicAddress', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2161,12 +4732,15 @@ class UniterFacade(Type): @ReturnMapping(GetLeadershipSettingsBulkResults) async def Read(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~GetLeadershipSettingsResult]<~GetLeadershipSettingsResult> + 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) + msg = dict(type='Uniter', + request='Read', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2176,12 +4750,15 @@ class UniterFacade(Type): @ReturnMapping(SettingsResults) async def ReadRemoteSettings(self, relation_unit_pairs): ''' - relation_unit_pairs : typing.Sequence<+T_co>[~RelationUnitPair]<~RelationUnitPair> - Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult> + 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) + msg = dict(type='Uniter', + request='ReadRemoteSettings', + version=5, + params=_params) _params['relation-unit-pairs'] = relation_unit_pairs reply = await self.rpc(msg) return reply @@ -2191,12 +4768,15 @@ class UniterFacade(Type): @ReturnMapping(SettingsResults) async def ReadSettings(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult> + 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) + msg = dict(type='Uniter', + request='ReadSettings', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2206,12 +4786,15 @@ class UniterFacade(Type): @ReturnMapping(RelationResults) async def Relation(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult> + 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) + msg = dict(type='Uniter', + request='Relation', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2221,12 +4804,15 @@ class UniterFacade(Type): @ReturnMapping(RelationResults) async def RelationById(self, relation_ids): ''' - relation_ids : typing.Sequence<+T_co>[int] - Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult> + 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) + msg = dict(type='Uniter', + request='RelationById', + version=5, + params=_params) _params['relation-ids'] = relation_ids reply = await self.rpc(msg) return reply @@ -2236,12 +4822,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def RemoveStorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='RemoveStorageAttachments', + version=5, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2251,12 +4840,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def RequestReboot(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='RequestReboot', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2266,12 +4858,15 @@ class UniterFacade(Type): @ReturnMapping(ResolvedModeResults) async def Resolved(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~ResolvedModeResult]<~ResolvedModeResult> + 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) + msg = dict(type='Uniter', + request='Resolved', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2286,7 +4881,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='SLALevel', version=5, params=_params) + msg = dict(type='Uniter', + request='SLALevel', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2296,12 +4894,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetAgentStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetAgentStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2311,12 +4912,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetApplicationStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetApplicationStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2326,12 +4930,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetCharmURL(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityCharmURL]<~EntityCharmURL> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetCharmURL', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2341,12 +4948,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2356,12 +4966,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetUnitStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetUnitStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2371,12 +4984,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def SetWorkloadVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~EntityWorkloadVersion]<~EntityWorkloadVersion> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='SetWorkloadVersion', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2386,12 +5002,15 @@ class UniterFacade(Type): @ReturnMapping(LifeResults) async def StorageAttachmentLife(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + 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) + msg = dict(type='Uniter', + request='StorageAttachmentLife', + version=5, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2401,12 +5020,15 @@ class UniterFacade(Type): @ReturnMapping(StorageAttachmentResults) async def StorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~StorageAttachmentResult]<~StorageAttachmentResult> + 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) + msg = dict(type='Uniter', + request='StorageAttachments', + version=5, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2416,12 +5038,15 @@ class UniterFacade(Type): @ReturnMapping(StatusResults) async def UnitStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + 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) + msg = dict(type='Uniter', + request='UnitStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2431,12 +5056,15 @@ class UniterFacade(Type): @ReturnMapping(StorageAttachmentIdsResults) async def UnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StorageAttachmentIdsResult]<~StorageAttachmentIdsResult> + 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) + msg = dict(type='Uniter', + request='UnitStorageAttachments', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2446,12 +5074,15 @@ class UniterFacade(Type): @ReturnMapping(ErrorResults) async def UpdateSettings(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnitSettings]<~RelationUnitSettings> - Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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) + msg = dict(type='Uniter', + request='UpdateSettings', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2461,12 +5092,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def Watch(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='Watch', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2481,7 +5115,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='WatchAPIHostPorts', version=5, params=_params) + msg = dict(type='Uniter', + request='WatchAPIHostPorts', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2491,12 +5128,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchActionNotifications(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchActionNotifications', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2506,12 +5146,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchConfigSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchConfigSettings', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2526,7 +5169,10 @@ class UniterFacade(Type): ''' # map input types to rpc msg _params = dict() - msg = dict(type='Uniter', request='WatchForModelConfigChanges', version=5, params=_params) + msg = dict(type='Uniter', + request='WatchForModelConfigChanges', + version=5, + params=_params) reply = await self.rpc(msg) return reply @@ -2536,12 +5182,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchLeadershipSettings(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchLeadershipSettings', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2551,12 +5200,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchMeterStatus(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchMeterStatus', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2566,12 +5218,15 @@ class UniterFacade(Type): @ReturnMapping(RelationUnitsWatchResults) async def WatchRelationUnits(self, relation_units): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit> - Returns -> typing.Sequence<+T_co>[~RelationUnitsWatchResult]<~RelationUnitsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchRelationUnits', + version=5, + params=_params) _params['relation-units'] = relation_units reply = await self.rpc(msg) return reply @@ -2581,12 +5236,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchStorageAttachments(self, ids): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchStorageAttachments', + version=5, + params=_params) _params['ids'] = ids reply = await self.rpc(msg) return reply @@ -2596,12 +5254,15 @@ class UniterFacade(Type): @ReturnMapping(NotifyWatchResults) async def WatchUnitAddresses(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchUnitAddresses', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2611,12 +5272,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchUnitRelations(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchUnitRelations', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2626,12 +5290,15 @@ class UniterFacade(Type): @ReturnMapping(StringsWatchResults) async def WatchUnitStorageAttachments(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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) + msg = dict(type='Uniter', + request='WatchUnitStorageAttachments', + version=5, + params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply @@ -2641,12 +5308,15 @@ class UniterFacade(Type): @ReturnMapping(StringResults) async def WorkloadVersion(self, entities): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> - Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult> + 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) + 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 index fde035f..2d25e39 100644 --- a/modules/libjuju/juju/client/_definitions.py +++ b/modules/libjuju/juju/client/_definitions.py @@ -9,7 +9,7 @@ class APIHostPortsResult(Type): _toPy = {'servers': 'servers'} def __init__(self, servers=None, **unknown_fields): ''' - servers : typing.Sequence<+T_co>[~HostPort]<~HostPort> + servers : typing.Sequence[~HostPort] ''' self.servers = [HostPort.from_json(o) for o in servers or []] @@ -21,7 +21,7 @@ class Action(Type): def __init__(self, name=None, parameters=None, receiver=None, tag=None, **unknown_fields): ''' name : str - parameters : typing.Mapping<~KT, +VT_co>[str, typing.Any] + parameters : typing.Mapping[str, typing.Any] receiver : str tag : str ''' @@ -39,7 +39,7 @@ class ActionExecutionResult(Type): ''' action_tag : str message : str - results : typing.Mapping<~KT, +VT_co>[str, typing.Any] + results : typing.Mapping[str, typing.Any] status : str ''' self.action_tag = action_tag @@ -54,12 +54,25 @@ class ActionExecutionResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult> + 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'} @@ -70,7 +83,7 @@ class ActionResult(Type): enqueued : str error : Error message : str - output : typing.Mapping<~KT, +VT_co>[str, typing.Any] + output : typing.Mapping[str, typing.Any] started : str status : str ''' @@ -90,7 +103,7 @@ class ActionResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + results : typing.Sequence[~ActionResult] ''' self.results = [ActionResult.from_json(o) for o in results or []] @@ -102,7 +115,7 @@ class ActionSpec(Type): def __init__(self, description=None, params=None, **unknown_fields): ''' description : str - params : typing.Mapping<~KT, +VT_co>[str, typing.Any] + params : typing.Mapping[str, typing.Any] ''' self.description = description self.params = params @@ -114,7 +127,7 @@ class Actions(Type): _toPy = {'actions': 'actions'} def __init__(self, actions=None, **unknown_fields): ''' - actions : typing.Sequence<+T_co>[~Action]<~Action> + actions : typing.Sequence[~Action] ''' self.actions = [Action.from_json(o) for o in actions or []] @@ -125,7 +138,7 @@ class ActionsByName(Type): _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} def __init__(self, actions=None, error=None, name=None, **unknown_fields): ''' - actions : typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + actions : typing.Sequence[~ActionResult] error : Error name : str ''' @@ -140,7 +153,7 @@ class ActionsByNames(Type): _toPy = {'actions': 'actions'} def __init__(self, actions=None, **unknown_fields): ''' - actions : typing.Sequence<+T_co>[~ActionsByName]<~ActionsByName> + actions : typing.Sequence[~ActionsByName] ''' self.actions = [ActionsByName.from_json(o) for o in actions or []] @@ -151,7 +164,7 @@ class ActionsByReceiver(Type): _toPy = {'actions': 'actions', 'error': 'error', 'receiver': 'receiver'} def __init__(self, actions=None, error=None, receiver=None, **unknown_fields): ''' - actions : typing.Sequence<+T_co>[~ActionResult]<~ActionResult> + actions : typing.Sequence[~ActionResult] error : Error receiver : str ''' @@ -166,12 +179,42 @@ class ActionsByReceivers(Type): _toPy = {'actions': 'actions'} def __init__(self, actions=None, **unknown_fields): ''' - actions : typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver> + 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'} @@ -179,7 +222,7 @@ class AddApplicationUnits(Type): ''' application : str num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> + placement : typing.Sequence[~Placement] ''' self.application = application self.num_units = num_units @@ -192,7 +235,7 @@ class AddApplicationUnitsResults(Type): _toPy = {'units': 'units'} def __init__(self, units=None, **unknown_fields): ''' - units : typing.Sequence<+T_co>[str] + units : typing.Sequence[str] ''' self.units = units @@ -226,18 +269,31 @@ class AddCharmWithAuthorization(Type): +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<+T_co>[~Address]<~Address> + addresses : typing.Sequence[~Address] constraints : Value container_type : str - disks : typing.Sequence<+T_co>[~Constraints]<~Constraints> + disks : typing.Sequence[~Constraints] hardware_characteristics : HardwareCharacteristics instance_id : str - jobs : typing.Sequence<+T_co>[str] + jobs : typing.Sequence[str] nonce : str parent_id : str placement : Placement @@ -262,7 +318,7 @@ class AddMachines(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams> + params : typing.Sequence[~AddMachineParams] ''' self.params = [AddMachineParams.from_json(o) for o in params or []] @@ -286,7 +342,7 @@ class AddMachinesResults(Type): _toPy = {'machines': 'machines'} def __init__(self, machines=None, **unknown_fields): ''' - machines : typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult> + machines : typing.Sequence[~AddMachinesResult] ''' self.machines = [AddMachinesResult.from_json(o) for o in machines or []] @@ -299,7 +355,7 @@ class AddPendingResourcesArgs(Type): ''' addcharmwithauthorization : AddCharmWithAuthorization entity : Entity - resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> + resources : typing.Sequence[~CharmResource] ''' self.addcharmwithauthorization = AddCharmWithAuthorization.from_json(addcharmwithauthorization) if addcharmwithauthorization else None self.entity = Entity.from_json(entity) if entity else None @@ -313,7 +369,7 @@ class AddPendingResourcesResult(Type): def __init__(self, errorresult=None, pending_ids=None, **unknown_fields): ''' errorresult : ErrorResult - pending_ids : typing.Sequence<+T_co>[str] + pending_ids : typing.Sequence[str] ''' self.errorresult = ErrorResult.from_json(errorresult) if errorresult else None self.pending_ids = pending_ids @@ -325,7 +381,7 @@ class AddRelation(Type): _toPy = {'endpoints': 'endpoints'} def __init__(self, endpoints=None, **unknown_fields): ''' - endpoints : typing.Sequence<+T_co>[str] + endpoints : typing.Sequence[str] ''' self.endpoints = endpoints @@ -336,12 +392,47 @@ class AddRelationResults(Type): _toPy = {'endpoints': 'endpoints'} def __init__(self, endpoints=None, **unknown_fields): ''' - endpoints : typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> + 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'} @@ -350,7 +441,7 @@ class AddSubnetParams(Type): space_tag : str subnet_provider_id : str subnet_tag : str - zones : typing.Sequence<+T_co>[str] + zones : typing.Sequence[str] ''' self.space_tag = space_tag self.subnet_provider_id = subnet_provider_id @@ -364,7 +455,7 @@ class AddSubnetsParams(Type): _toPy = {'subnets': 'subnets'} def __init__(self, subnets=None, **unknown_fields): ''' - subnets : typing.Sequence<+T_co>[~AddSubnetParams]<~AddSubnetParams> + subnets : typing.Sequence[~AddSubnetParams] ''' self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] @@ -391,7 +482,7 @@ class AddUserResult(Type): def __init__(self, error=None, secret_key=None, tag=None, **unknown_fields): ''' error : Error - secret_key : typing.Sequence<+T_co>[int] + secret_key : typing.Sequence[int] tag : str ''' self.error = Error.from_json(error) if error else None @@ -405,7 +496,7 @@ class AddUserResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~AddUserResult]<~AddUserResult> + results : typing.Sequence[~AddUserResult] ''' self.results = [AddUserResult.from_json(o) for o in results or []] @@ -416,7 +507,7 @@ class AddUsers(Type): _toPy = {'users': 'users'} def __init__(self, users=None, **unknown_fields): ''' - users : typing.Sequence<+T_co>[~AddUser]<~AddUser> + users : typing.Sequence[~AddUser] ''' self.users = [AddUser.from_json(o) for o in users or []] @@ -459,7 +550,7 @@ class AgentGetEntitiesResult(Type): ''' container_type : str error : Error - jobs : typing.Sequence<+T_co>[str] + jobs : typing.Sequence[str] life : str ''' self.container_type = container_type @@ -474,7 +565,7 @@ class AgentGetEntitiesResults(Type): _toPy = {'entities': 'entities'} def __init__(self, entities=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~AgentGetEntitiesResult]<~AgentGetEntitiesResult> + entities : typing.Sequence[~AgentGetEntitiesResult] ''' self.entities = [AgentGetEntitiesResult.from_json(o) for o in entities or []] @@ -507,7 +598,7 @@ class AllWatcherNextResults(Type): _toPy = {'deltas': 'deltas'} def __init__(self, deltas=None, **unknown_fields): ''' - deltas : typing.Sequence<+T_co>[~Delta]<~Delta> + deltas : typing.Sequence[~Delta] ''' self.deltas = [Delta.from_json(o) for o in deltas or []] @@ -518,7 +609,7 @@ class AnnotationsGetResult(Type): _toPy = {'annotations': 'annotations', 'entity': 'entity', 'error': 'error'} def __init__(self, annotations=None, entity=None, error=None, **unknown_fields): ''' - annotations : typing.Mapping<~KT, +VT_co>[str, str] + annotations : typing.Mapping[str, str] entity : str error : ErrorResult ''' @@ -533,7 +624,7 @@ class AnnotationsGetResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~AnnotationsGetResult]<~AnnotationsGetResult> + results : typing.Sequence[~AnnotationsGetResult] ''' self.results = [AnnotationsGetResult.from_json(o) for o in results or []] @@ -544,18 +635,35 @@ class AnnotationsSet(Type): _toPy = {'annotations': 'annotations'} def __init__(self, annotations=None, **unknown_fields): ''' - annotations : typing.Sequence<+T_co>[~EntityAnnotations]<~EntityAnnotations> + 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<~KT, +VT_co>[str, ~ActionSpec]<~ActionSpec> + actions : typing.Mapping[str, ~ActionSpec] application_tag : str error : Error ''' @@ -581,39 +689,117 @@ class ApplicationCharmRelationsResults(Type): _toPy = {'charm-relations': 'charm_relations'} def __init__(self, charm_relations=None, **unknown_fields): ''' - charm_relations : typing.Sequence<+T_co>[str] + 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', 'channel': 'channel', 'charm_url': 'charm-url', 'config': 'config', 'config_yaml': 'config-yaml', 'constraints': 'constraints', 'endpoint_bindings': 'endpoint-bindings', 'num_units': 'num-units', 'placement': 'placement', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - _toPy = {'application': 'application', 'channel': 'channel', 'charm-url': 'charm_url', 'config': 'config', 'config-yaml': 'config_yaml', 'constraints': 'constraints', 'endpoint-bindings': 'endpoint_bindings', 'num-units': 'num_units', 'placement': 'placement', 'resources': 'resources', 'series': 'series', 'storage': 'storage'} - def __init__(self, application=None, channel=None, charm_url=None, config=None, config_yaml=None, constraints=None, endpoint_bindings=None, num_units=None, placement=None, resources=None, series=None, storage=None, **unknown_fields): + _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<~KT, +VT_co>[str, str] + config : typing.Mapping[str, str] config_yaml : str constraints : Value - endpoint_bindings : typing.Mapping<~KT, +VT_co>[str, str] + devices : typing.Mapping[str, ~Constraints] + endpoint_bindings : typing.Mapping[str, str] num_units : int - placement : typing.Sequence<+T_co>[~Placement]<~Placement> - resources : typing.Mapping<~KT, +VT_co>[str, str] + placement : typing.Sequence[~Placement] + policy : str + resources : typing.Mapping[str, str] series : str - storage : typing.Mapping<~KT, +VT_co>[str, ~Constraints]<~Constraints> + 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 @@ -653,6 +839,28 @@ class ApplicationGet(Type): +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'} @@ -660,7 +868,7 @@ class ApplicationGetResults(Type): ''' application : str charm : str - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] constraints : Value series : str ''' @@ -678,7 +886,7 @@ class ApplicationMetricCredential(Type): def __init__(self, application=None, metrics_credentials=None, **unknown_fields): ''' application : str - metrics_credentials : typing.Sequence<+T_co>[int] + metrics_credentials : typing.Sequence[int] ''' self.application = application self.metrics_credentials = metrics_credentials @@ -690,7 +898,7 @@ class ApplicationMetricCredentials(Type): _toPy = {'creds': 'creds'} def __init__(self, creds=None, **unknown_fields): ''' - creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential> + creds : typing.Sequence[~ApplicationMetricCredential] ''' self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] @@ -703,12 +911,12 @@ class ApplicationOffer(Type): ''' access : str application_description : str - bindings : typing.Mapping<~KT, +VT_co>[str, str] - endpoints : typing.Sequence<+T_co>[~RemoteEndpoint]<~RemoteEndpoint> + bindings : typing.Mapping[str, str] + endpoints : typing.Sequence[~RemoteEndpoint] offer_name : str offer_url : str source_model_tag : str - spaces : typing.Sequence<+T_co>[~RemoteSpace]<~RemoteSpace> + spaces : typing.Sequence[~RemoteSpace] ''' self.access = access self.application_description = application_description @@ -721,13 +929,104 @@ class ApplicationOffer(Type): +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<+T_co>[~RelationChange]<~RelationChange> - removed : typing.Sequence<+T_co>[int] + changed : typing.Sequence[~RelationChange] + removed : typing.Sequence[int] ''' self.changed = [RelationChange.from_json(o) for o in changed or []] self.removed = removed @@ -755,7 +1054,7 @@ class ApplicationSet(Type): def __init__(self, application=None, options=None, **unknown_fields): ''' application : str - options : typing.Mapping<~KT, +VT_co>[str, str] + options : typing.Mapping[str, str] ''' self.application = application self.options = options @@ -770,12 +1069,12 @@ class ApplicationSetCharm(Type): application : str channel : str charm_url : str - config_settings : typing.Mapping<~KT, +VT_co>[str, str] + config_settings : typing.Mapping[str, str] config_settings_yaml : str force_series : bool force_units : bool - resource_ids : typing.Mapping<~KT, +VT_co>[str, str] - storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints> + resource_ids : typing.Mapping[str, str] + storage_constraints : typing.Mapping[str, ~StorageConstraints] ''' self.application = application self.channel = channel @@ -789,6 +1088,19 @@ class ApplicationSetCharm(Type): +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'} @@ -796,15 +1108,15 @@ class ApplicationStatus(Type): ''' can_upgrade_to : str charm : str - err : typing.Mapping<~KT, +VT_co>[str, typing.Any] + err : typing.Mapping[str, typing.Any] exposed : bool life : str - meter_statuses : typing.Mapping<~KT, +VT_co>[str, ~MeterStatus]<~MeterStatus> - relations : typing.Sequence<+T_co>[str] + meter_statuses : typing.Mapping[str, ~MeterStatus] + relations : typing.Sequence[str] series : str status : DetailedStatus - subordinate_to : typing.Sequence<+T_co>[str] - units : typing.Mapping<~KT, +VT_co>[str, ~UnitStatus]<~UnitStatus> + subordinate_to : typing.Sequence[str] + units : typing.Mapping[str, ~UnitStatus] workload_version : str ''' self.can_upgrade_to = can_upgrade_to @@ -829,7 +1141,7 @@ class ApplicationStatusResult(Type): ''' application : StatusResult error : Error - units : typing.Mapping<~KT, +VT_co>[str, ~StatusResult]<~StatusResult> + 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 @@ -842,7 +1154,7 @@ class ApplicationStatusResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ApplicationStatusResult]<~ApplicationStatusResult> + results : typing.Sequence[~ApplicationStatusResult] ''' self.results = [ApplicationStatusResult.from_json(o) for o in results or []] @@ -864,7 +1176,7 @@ class ApplicationURLs(Type): _toPy = {'application-urls': 'application_urls'} def __init__(self, application_urls=None, **unknown_fields): ''' - application_urls : typing.Sequence<+T_co>[str] + application_urls : typing.Sequence[str] ''' self.application_urls = application_urls @@ -881,13 +1193,38 @@ class ApplicationUnexpose(Type): +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<+T_co>[str] + options : typing.Sequence[str] ''' self.application = application self.options = options @@ -905,7 +1242,7 @@ class ApplicationUpdate(Type): force_charm_url : bool force_series : bool min_units : int - settings : typing.Mapping<~KT, +VT_co>[str, str] + settings : typing.Mapping[str, str] settings_yaml : str ''' self.application = application @@ -924,7 +1261,7 @@ class ApplicationsCharmActionsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ApplicationCharmActionsResult]<~ApplicationCharmActionsResult> + results : typing.Sequence[~ApplicationCharmActionsResult] ''' self.results = [ApplicationCharmActionsResult.from_json(o) for o in results or []] @@ -935,7 +1272,7 @@ class ApplicationsDeploy(Type): _toPy = {'applications': 'applications'} def __init__(self, applications=None, **unknown_fields): ''' - applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy> + applications : typing.Sequence[~ApplicationDeploy] ''' self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] @@ -979,7 +1316,7 @@ class BackupsListResult(Type): _toPy = {'list': 'list_'} def __init__(self, list_=None, **unknown_fields): ''' - list_ : typing.Sequence<+T_co>[~BackupsMetadataResult]<~BackupsMetadataResult> + list_ : typing.Sequence[~BackupsMetadataResult] ''' self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] @@ -1073,7 +1410,7 @@ class BlockDevice(Type): 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<+T_co>[str] + devicelinks : typing.Sequence[str] devicename : str filesystemtype : str hardwareid : str @@ -1114,7 +1451,7 @@ class BlockDeviceResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~BlockDeviceResult]<~BlockDeviceResult> + results : typing.Sequence[~BlockDeviceResult] ''' self.results = [BlockDeviceResult.from_json(o) for o in results or []] @@ -1138,7 +1475,7 @@ class BlockResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~BlockResult]<~BlockResult> + results : typing.Sequence[~BlockResult] ''' self.results = [BlockResult.from_json(o) for o in results or []] @@ -1175,21 +1512,32 @@ class BoolResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~BoolResult]<~BoolResult> + 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<+T_co>[typing.Any] + args : typing.Sequence[typing.Any] id_ : str method : str - requires : typing.Sequence<+T_co>[str] + requires : typing.Sequence[str] ''' self.args = args self.id_ = id_ @@ -1214,8 +1562,8 @@ class BundleChangesResults(Type): _toPy = {'changes': 'changes', 'errors': 'errors'} def __init__(self, changes=None, errors=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[~BundleChange]<~BundleChange> - errors : typing.Sequence<+T_co>[str] + changes : typing.Sequence[~BundleChange] + errors : typing.Sequence[str] ''' self.changes = [BundleChange.from_json(o) for o in changes or []] self.errors = errors @@ -1227,19 +1575,43 @@ class BytesResult(Type): _toPy = {'result': 'result'} def __init__(self, result=None, **unknown_fields): ''' - result : typing.Sequence<+T_co>[int] + 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<~KT, +VT_co>[str, typing.Any] + params : typing.Mapping[str, typing.Any] ''' self.description = description self.params = params @@ -1251,19 +1623,38 @@ class CharmActions(Type): _toPy = {'specs': 'specs'} def __init__(self, specs=None, **unknown_fields): ''' - specs : typing.Mapping<~KT, +VT_co>[str, ~CharmActionSpec]<~CharmActionSpec> + 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<~KT, +VT_co>[str, ~CharmOption]<~CharmOption> + config : typing.Mapping[str, ~CharmOption] meta : CharmMeta metrics : CharmMetrics revision : int @@ -1278,27 +1669,42 @@ class CharmInfo(Type): +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<+T_co>[str] + categories : typing.Sequence[str] description : str - extra_bindings : typing.Mapping<~KT, +VT_co>[str, str] + extra_bindings : typing.Mapping[str, str] min_juju_version : str name : str - payload_classes : typing.Mapping<~KT, +VT_co>[str, ~CharmPayloadClass]<~CharmPayloadClass> - peers : typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> - provides : typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> - requires : typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation> - resources : typing.Mapping<~KT, +VT_co>[str, ~CharmResourceMeta]<~CharmResourceMeta> - series : typing.Sequence<+T_co>[str] - storage : typing.Mapping<~KT, +VT_co>[str, ~CharmStorage]<~CharmStorage> + 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<+T_co>[str] - terms : typing.Sequence<+T_co>[str] + tags : typing.Sequence[str] + terms : typing.Sequence[str] ''' self.categories = categories self.description = description @@ -1337,7 +1743,7 @@ class CharmMetrics(Type): _toPy = {'metrics': 'metrics', 'plan': 'plan'} def __init__(self, metrics=None, plan=None, **unknown_fields): ''' - metrics : typing.Mapping<~KT, +VT_co>[str, ~CharmMetric]<~CharmMetric> + metrics : typing.Mapping[str, ~CharmMetric] plan : CharmPlan ''' self.metrics = metrics @@ -1350,7 +1756,7 @@ class CharmOption(Type): _toPy = {'default': 'default', 'description': 'description', 'type': 'type_'} def __init__(self, default=None, description=None, type_=None, **unknown_fields): ''' - default : typing.Mapping<~KT, +VT_co>[str, typing.Any] + default : typing.Mapping[str, typing.Any] description : str type_ : str ''' @@ -1411,7 +1817,7 @@ class CharmResource(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<+T_co>[int] + fingerprint : typing.Sequence[int] name : str origin : str path : str @@ -1458,7 +1864,7 @@ class CharmStorage(Type): location : str minimum_size : int name : str - properties : typing.Sequence<+T_co>[str] + properties : typing.Sequence[str] read_only : bool shared : bool type_ : str @@ -1492,7 +1898,7 @@ class CharmURLs(Type): _toPy = {'urls': 'urls'} def __init__(self, urls=None, **unknown_fields): ''' - urls : typing.Sequence<+T_co>[~CharmURL]<~CharmURL> + urls : typing.Sequence[~CharmURL] ''' self.urls = [CharmURL.from_json(o) for o in urls or []] @@ -1503,7 +1909,7 @@ class CharmsList(Type): _toPy = {'names': 'names'} def __init__(self, names=None, **unknown_fields): ''' - names : typing.Sequence<+T_co>[str] + names : typing.Sequence[str] ''' self.names = names @@ -1514,7 +1920,7 @@ class CharmsListResult(Type): _toPy = {'charm-urls': 'charm_urls'} def __init__(self, charm_urls=None, **unknown_fields): ''' - charm_urls : typing.Sequence<+T_co>[str] + charm_urls : typing.Sequence[str] ''' self.charm_urls = charm_urls @@ -1525,7 +1931,7 @@ class ClaimLeadershipBulkParams(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~ClaimLeadershipParams]<~ClaimLeadershipParams> + params : typing.Sequence[~ClaimLeadershipParams] ''' self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] @@ -1536,7 +1942,7 @@ class ClaimLeadershipBulkResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + results : typing.Sequence[~ErrorResult] ''' self.results = [ErrorResult.from_json(o) for o in results or []] @@ -1562,10 +1968,10 @@ class Cloud(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<+T_co>[str] + auth_types : typing.Sequence[str] endpoint : str identity_endpoint : str - regions : typing.Sequence<+T_co>[~CloudRegion]<~CloudRegion> + regions : typing.Sequence[~CloudRegion] storage_endpoint : str type_ : str ''' @@ -1583,9 +1989,9 @@ class CloudCredential(Type): _toPy = {'attrs': 'attrs', 'auth-type': 'auth_type', 'redacted': 'redacted'} def __init__(self, attrs=None, auth_type=None, redacted=None, **unknown_fields): ''' - attrs : typing.Mapping<~KT, +VT_co>[str, str] + attrs : typing.Mapping[str, str] auth_type : str - redacted : typing.Sequence<+T_co>[str] + redacted : typing.Sequence[str] ''' self.attrs = attrs self.auth_type = auth_type @@ -1593,9 +1999,35 @@ class CloudCredential(Type): -class CloudCredentialResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} +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 @@ -1611,12 +2043,33 @@ class CloudCredentialResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~CloudCredentialResult]<~CloudCredentialResult> + 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'} @@ -1653,12 +2106,49 @@ class CloudImageMetadataList(Type): _toPy = {'metadata': 'metadata'} def __init__(self, metadata=None, **unknown_fields): ''' - metadata : typing.Sequence<+T_co>[~CloudImageMetadata]<~CloudImageMetadata> + 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'} @@ -1679,7 +2169,7 @@ class CloudInstanceTypesConstraints(Type): _toPy = {'constraints': 'constraints'} def __init__(self, constraints=None, **unknown_fields): ''' - constraints : typing.Sequence<+T_co>[~CloudInstanceTypesConstraint]<~CloudInstanceTypesConstraint> + constraints : typing.Sequence[~CloudInstanceTypesConstraint] ''' self.constraints = [CloudInstanceTypesConstraint.from_json(o) for o in constraints or []] @@ -1720,7 +2210,7 @@ class CloudResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~CloudResult]<~CloudResult> + results : typing.Sequence[~CloudResult] ''' self.results = [CloudResult.from_json(o) for o in results or []] @@ -1767,30 +2257,58 @@ class CloudSpecResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~CloudSpecResult]<~CloudSpecResult> + 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<~KT, +VT_co>[str, ~Cloud]<~Cloud> + 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<~KT, +VT_co>[str, typing.Any] + settings : typing.Mapping[str, typing.Any] ''' self.error = Error.from_json(error) if error else None self.settings = settings @@ -1802,7 +2320,7 @@ class ConfigSettingsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ConfigSettingsResult]<~ConfigSettingsResult> + results : typing.Sequence[~ConfigSettingsResult] ''' self.results = [ConfigSettingsResult.from_json(o) for o in results or []] @@ -1814,7 +2332,7 @@ class ConfigValue(Type): def __init__(self, source=None, value=None, **unknown_fields): ''' source : str - value : typing.Mapping<~KT, +VT_co>[str, typing.Any] + value : typing.Mapping[str, typing.Any] ''' self.source = source self.value = value @@ -1854,7 +2372,7 @@ class ConstraintsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ConstraintsResult]<~ConstraintsResult> + results : typing.Sequence[~ConstraintsResult] ''' self.results = [ConstraintsResult.from_json(o) for o in results or []] @@ -1878,7 +2396,7 @@ class ConsumeApplicationArgs(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~ConsumeApplicationArg]<~ConsumeApplicationArg> + args : typing.Sequence[~ConsumeApplicationArg] ''' self.args = [ConsumeApplicationArg.from_json(o) for o in args or []] @@ -1902,12 +2420,51 @@ class ConsumeApplicationResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ConsumeApplicationResult]<~ConsumeApplicationResult> + 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'} @@ -1931,12 +2488,25 @@ class ContainerConfig(Type): +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<~KT, +VT_co>[str, str] + config : typing.Mapping[str, str] ''' self.config = config @@ -1953,17 +2523,91 @@ class ContainerManagerConfigParams(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<~KT, +VT_co>[str, typing.Any] + 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'} @@ -1982,7 +2626,7 @@ class ControllersChangeResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ControllersChangeResult]<~ControllersChangeResult> + results : typing.Sequence[~ControllersChangeResult] ''' self.results = [ControllersChangeResult.from_json(o) for o in results or []] @@ -1993,12 +2637,12 @@ class ControllersChanges(Type): _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<+T_co>[str] - converted : typing.Sequence<+T_co>[str] - demoted : typing.Sequence<+T_co>[str] - maintained : typing.Sequence<+T_co>[str] - promoted : typing.Sequence<+T_co>[str] - removed : typing.Sequence<+T_co>[str] + 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 @@ -2016,7 +2660,7 @@ class ControllersSpec(Type): ''' constraints : Value num_controllers : int - placement : typing.Sequence<+T_co>[str] + placement : typing.Sequence[str] series : str ''' self.constraints = Value.from_json(constraints) if constraints else None @@ -2031,7 +2675,7 @@ class ControllersSpecs(Type): _toPy = {'specs': 'specs'} def __init__(self, specs=None, **unknown_fields): ''' - specs : typing.Sequence<+T_co>[~ControllersSpec]<~ControllersSpec> + specs : typing.Sequence[~ControllersSpec] ''' self.specs = [ControllersSpec.from_json(o) for o in specs or []] @@ -2045,7 +2689,7 @@ class CreateSpaceParams(Type): provider_id : str public : bool space_tag : str - subnet_tags : typing.Sequence<+T_co>[str] + subnet_tags : typing.Sequence[str] ''' self.provider_id = provider_id self.public = public @@ -2059,18 +2703,59 @@ class CreateSpacesParams(Type): _toPy = {'spaces': 'spaces'} def __init__(self, spaces=None, **unknown_fields): ''' - spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams> + 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<~KT, +VT_co>[str, typing.Any] + entity : typing.Mapping[str, typing.Any] removed : bool ''' self.entity = entity @@ -2083,8 +2768,8 @@ class DeployerConnectionValues(Type): _toPy = {'api-addresses': 'api_addresses', 'state-addresses': 'state_addresses'} def __init__(self, api_addresses=None, state_addresses=None, **unknown_fields): ''' - api_addresses : typing.Sequence<+T_co>[str] - state_addresses : typing.Sequence<+T_co>[str] + api_addresses : typing.Sequence[str] + state_addresses : typing.Sequence[str] ''' self.api_addresses = api_addresses self.state_addresses = state_addresses @@ -2096,9 +2781,9 @@ class DestroyApplicationInfo(Type): _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<+T_co>[~Entity]<~Entity> - destroyed_units : typing.Sequence<+T_co>[~Entity]<~Entity> - detached_storage : typing.Sequence<+T_co>[~Entity]<~Entity> + 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 []] @@ -2106,6 +2791,32 @@ class DestroyApplicationInfo(Type): +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'} @@ -2124,7 +2835,7 @@ class DestroyApplicationResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~DestroyApplicationResult]<~DestroyApplicationResult> + results : typing.Sequence[~DestroyApplicationResult] ''' self.results = [DestroyApplicationResult.from_json(o) for o in results or []] @@ -2135,12 +2846,45 @@ class DestroyApplicationUnits(Type): _toPy = {'unit-names': 'unit_names'} def __init__(self, unit_names=None, **unknown_fields): ''' - unit_names : typing.Sequence<+T_co>[str] + 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'} @@ -2157,9 +2901,9 @@ class DestroyMachineInfo(Type): _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<+T_co>[~Entity]<~Entity> - destroyed_units : typing.Sequence<+T_co>[~Entity]<~Entity> - detached_storage : typing.Sequence<+T_co>[~Entity]<~Entity> + 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 []] @@ -2185,7 +2929,7 @@ class DestroyMachineResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~DestroyMachineResult]<~DestroyMachineResult> + results : typing.Sequence[~DestroyMachineResult] ''' self.results = [DestroyMachineResult.from_json(o) for o in results or []] @@ -2197,19 +2941,58 @@ class DestroyMachines(Type): def __init__(self, force=None, machine_names=None, **unknown_fields): ''' force : bool - machine_names : typing.Sequence<+T_co>[str] + 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<+T_co>[str] + endpoints : typing.Sequence[str] ''' self.endpoints = endpoints @@ -2220,14 +3003,27 @@ class DestroyUnitInfo(Type): _toPy = {'destroyed-storage': 'destroyed_storage', 'detached-storage': 'detached_storage'} def __init__(self, destroyed_storage=None, detached_storage=None, **unknown_fields): ''' - destroyed_storage : typing.Sequence<+T_co>[~Entity]<~Entity> - detached_storage : typing.Sequence<+T_co>[~Entity]<~Entity> + 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'} @@ -2246,19 +3042,30 @@ class DestroyUnitResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~DestroyUnitResult]<~DestroyUnitResult> + 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<~KT, +VT_co>[str, typing.Any] - err : typing.Mapping<~KT, +VT_co>[str, typing.Any] + data : typing.Mapping[str, typing.Any] + err : typing.Mapping[str, typing.Any] info : str kind : str life : str @@ -2295,7 +3102,7 @@ class DiscoverSpacesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ProviderSpace]<~ProviderSpace> + results : typing.Sequence[~ProviderSpace] ''' self.results = [ProviderSpace.from_json(o) for o in results or []] @@ -2307,7 +3114,7 @@ class DistributionGroupResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Sequence<+T_co>[str] + result : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None self.result = result @@ -2319,7 +3126,7 @@ class DistributionGroupResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~DistributionGroupResult]<~DistributionGroupResult> + results : typing.Sequence[~DistributionGroupResult] ''' self.results = [DistributionGroupResult.from_json(o) for o in results or []] @@ -2330,7 +3137,7 @@ class DumpModelRequest(Type): _toPy = {'entities': 'entities', 'simplified': 'simplified'} def __init__(self, entities=None, simplified=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] simplified : bool ''' self.entities = [Entity.from_json(o) for o in entities or []] @@ -2351,15 +3158,30 @@ class Endpoint(Type): -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): +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): ''' - application : str + interface : str name : str role : str - subordinate : bool + ''' + 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 @@ -2373,7 +3195,7 @@ class Entities(Type): _toPy = {'entities': 'entities'} def __init__(self, entities=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] ''' self.entities = [Entity.from_json(o) for o in entities or []] @@ -2384,7 +3206,7 @@ class EntitiesCharmURL(Type): _toPy = {'entities': 'entities'} def __init__(self, entities=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~EntityCharmURL]<~EntityCharmURL> + entities : typing.Sequence[~EntityCharmURL] ''' self.entities = [EntityCharmURL.from_json(o) for o in entities or []] @@ -2395,7 +3217,7 @@ class EntitiesPortRanges(Type): _toPy = {'entities': 'entities'} def __init__(self, entities=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange> + entities : typing.Sequence[~EntityPortRange] ''' self.entities = [EntityPortRange.from_json(o) for o in entities or []] @@ -2406,7 +3228,7 @@ class EntitiesResult(Type): _toPy = {'entities': 'entities', 'error': 'error'} def __init__(self, entities=None, error=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] error : Error ''' self.entities = [Entity.from_json(o) for o in entities or []] @@ -2419,7 +3241,7 @@ class EntitiesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~EntitiesResult]<~EntitiesResult> + results : typing.Sequence[~EntitiesResult] ''' self.results = [EntitiesResult.from_json(o) for o in results or []] @@ -2430,7 +3252,7 @@ class EntitiesVersion(Type): _toPy = {'agent-tools': 'agent_tools'} def __init__(self, agent_tools=None, **unknown_fields): ''' - agent_tools : typing.Sequence<+T_co>[~EntityVersion]<~EntityVersion> + agent_tools : typing.Sequence[~EntityVersion] ''' self.agent_tools = [EntityVersion.from_json(o) for o in agent_tools or []] @@ -2441,7 +3263,7 @@ class EntitiesWatchResult(Type): _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[str] + changes : typing.Sequence[str] error : Error watcher_id : str ''' @@ -2467,7 +3289,7 @@ class EntityAnnotations(Type): _toPy = {'annotations': 'annotations', 'entity': 'entity'} def __init__(self, annotations=None, entity=None, **unknown_fields): ''' - annotations : typing.Mapping<~KT, +VT_co>[str, str] + annotations : typing.Mapping[str, str] entity : str ''' self.annotations = annotations @@ -2488,13 +3310,37 @@ class EntityCharmURL(Type): +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<+T_co>[~MetricResult]<~MetricResult> + 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 []] @@ -2519,7 +3365,7 @@ class EntityPasswords(Type): _toPy = {'changes': 'changes'} def __init__(self, changes=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword> + changes : typing.Sequence[~EntityPassword] ''' self.changes = [EntityPassword.from_json(o) for o in changes or []] @@ -2547,7 +3393,7 @@ class EntityStatus(Type): _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<~KT, +VT_co>[str, typing.Any] + data : typing.Mapping[str, typing.Any] info : str since : str status : str @@ -2564,7 +3410,7 @@ class EntityStatusArgs(Type): _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<~KT, +VT_co>[str, typing.Any] + data : typing.Mapping[str, typing.Any] info : str status : str tag : str @@ -2576,6 +3422,19 @@ class EntityStatusArgs(Type): +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'} @@ -2607,7 +3466,7 @@ class EntityWorkloadVersions(Type): _toPy = {'entities': 'entities'} def __init__(self, entities=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~EntityWorkloadVersion]<~EntityWorkloadVersion> + entities : typing.Sequence[~EntityWorkloadVersion] ''' self.entities = [EntityWorkloadVersion.from_json(o) for o in entities or []] @@ -2618,7 +3477,7 @@ class EnvListArgs(Type): _toPy = {'patterns': 'patterns'} def __init__(self, patterns=None, **unknown_fields): ''' - patterns : typing.Sequence<+T_co>[str] + patterns : typing.Sequence[str] ''' self.patterns = patterns @@ -2629,7 +3488,7 @@ class EnvListResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~Payload]<~Payload> + results : typing.Sequence[~Payload] ''' self.results = [Payload.from_json(o) for o in results or []] @@ -2679,12 +3538,77 @@ class ErrorResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult> + 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'} @@ -2782,7 +3706,7 @@ class FilesystemAttachmentParamsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~FilesystemAttachmentParamsResult]<~FilesystemAttachmentParamsResult> + results : typing.Sequence[~FilesystemAttachmentParamsResult] ''' self.results = [FilesystemAttachmentParamsResult.from_json(o) for o in results or []] @@ -2806,7 +3730,7 @@ class FilesystemAttachmentResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~FilesystemAttachmentResult]<~FilesystemAttachmentResult> + results : typing.Sequence[~FilesystemAttachmentResult] ''' self.results = [FilesystemAttachmentResult.from_json(o) for o in results or []] @@ -2817,7 +3741,7 @@ class FilesystemAttachments(Type): _toPy = {'filesystem-attachments': 'filesystem_attachments'} def __init__(self, filesystem_attachments=None, **unknown_fields): ''' - filesystem_attachments : typing.Sequence<+T_co>[~FilesystemAttachment]<~FilesystemAttachment> + filesystem_attachments : typing.Sequence[~FilesystemAttachment] ''' self.filesystem_attachments = [FilesystemAttachment.from_json(o) for o in filesystem_attachments or []] @@ -2830,7 +3754,7 @@ class FilesystemDetails(Type): ''' filesystem_tag : str info : FilesystemInfo - machine_attachments : typing.Mapping<~KT, +VT_co>[str, ~FilesystemAttachmentInfo]<~FilesystemAttachmentInfo> + machine_attachments : typing.Mapping[str, ~FilesystemAttachmentInfo] status : EntityStatus storage : StorageDetails volume_tag : str @@ -2850,7 +3774,7 @@ class FilesystemDetailsListResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Sequence<+T_co>[~FilesystemDetails]<~FilesystemDetails> + 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 []] @@ -2862,7 +3786,7 @@ class FilesystemDetailsListResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~FilesystemDetailsListResult]<~FilesystemDetailsListResult> + results : typing.Sequence[~FilesystemDetailsListResult] ''' self.results = [FilesystemDetailsListResult.from_json(o) for o in results or []] @@ -2873,7 +3797,7 @@ class FilesystemFilter(Type): _toPy = {'machines': 'machines'} def __init__(self, machines=None, **unknown_fields): ''' - machines : typing.Sequence<+T_co>[str] + machines : typing.Sequence[str] ''' self.machines = machines @@ -2884,7 +3808,7 @@ class FilesystemFilters(Type): _toPy = {'filters': 'filters'} def __init__(self, filters=None, **unknown_fields): ''' - filters : typing.Sequence<+T_co>[~FilesystemFilter]<~FilesystemFilter> + filters : typing.Sequence[~FilesystemFilter] ''' self.filters = [FilesystemFilter.from_json(o) for o in filters or []] @@ -2909,11 +3833,11 @@ class FilesystemParams(Type): 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<~KT, +VT_co>[str, typing.Any] + attributes : typing.Mapping[str, typing.Any] filesystem_tag : str provider : str size : int - tags : typing.Mapping<~KT, +VT_co>[str, str] + tags : typing.Mapping[str, str] volume_tag : str ''' self.attachment = FilesystemAttachmentParams.from_json(attachment) if attachment else None @@ -2944,7 +3868,7 @@ class FilesystemParamsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~FilesystemParamsResult]<~FilesystemParamsResult> + results : typing.Sequence[~FilesystemParamsResult] ''' self.results = [FilesystemParamsResult.from_json(o) for o in results or []] @@ -2968,7 +3892,7 @@ class FilesystemResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~FilesystemResult]<~FilesystemResult> + results : typing.Sequence[~FilesystemResult] ''' self.results = [FilesystemResult.from_json(o) for o in results or []] @@ -2979,7 +3903,7 @@ class Filesystems(Type): _toPy = {'filesystems': 'filesystems'} def __init__(self, filesystems=None, **unknown_fields): ''' - filesystems : typing.Sequence<+T_co>[~Filesystem]<~Filesystem> + filesystems : typing.Sequence[~Filesystem] ''' self.filesystems = [Filesystem.from_json(o) for o in filesystems or []] @@ -2990,7 +3914,7 @@ class FindActionsByNames(Type): _toPy = {'names': 'names'} def __init__(self, names=None, **unknown_fields): ''' - names : typing.Sequence<+T_co>[str] + names : typing.Sequence[str] ''' self.names = names @@ -3001,7 +3925,7 @@ class FindTags(Type): _toPy = {'prefixes': 'prefixes'} def __init__(self, prefixes=None, **unknown_fields): ''' - prefixes : typing.Sequence<+T_co>[str] + prefixes : typing.Sequence[str] ''' self.prefixes = prefixes @@ -3012,7 +3936,7 @@ class FindTagsResults(Type): _toPy = {'matches': 'matches'} def __init__(self, matches=None, **unknown_fields): ''' - matches : typing.Sequence<+T_co>[~Entity]<~Entity> + matches : typing.Sequence[~Entity] ''' self.matches = [Entity.from_json(o) for o in matches or []] @@ -3043,27 +3967,55 @@ class FindToolsResult(Type): def __init__(self, error=None, list_=None, **unknown_fields): ''' error : Error - list_ : typing.Sequence<+T_co>[~Tools]<~Tools> + 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', 'machines': 'machines', 'model': 'model', 'relations': 'relations', 'remote_applications': 'remote-applications'} - _toPy = {'applications': 'applications', 'machines': 'machines', 'model': 'model', 'relations': 'relations', 'remote-applications': 'remote_applications'} - def __init__(self, applications=None, machines=None, model=None, relations=None, remote_applications=None, **unknown_fields): + _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<~KT, +VT_co>[str, ~ApplicationStatus]<~ApplicationStatus> - machines : typing.Mapping<~KT, +VT_co>[str, ~MachineStatus]<~MachineStatus> + applications : typing.Mapping[str, ~ApplicationStatus] + controller_timestamp : str + machines : typing.Mapping[str, ~MachineStatus] model : ModelStatusInfo - relations : typing.Sequence<+T_co>[~RelationStatus]<~RelationStatus> - remote_applications : typing.Mapping<~KT, +VT_co>[str, ~RemoteApplicationStatus]<~RemoteApplicationStatus> + 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 @@ -3096,7 +4048,7 @@ class GetLeadershipSettingsBulkResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~GetLeadershipSettingsResult]<~GetLeadershipSettingsResult> + results : typing.Sequence[~GetLeadershipSettingsResult] ''' self.results = [GetLeadershipSettingsResult.from_json(o) for o in results or []] @@ -3108,13 +4060,85 @@ class GetLeadershipSettingsResult(Type): def __init__(self, error=None, settings=None, **unknown_fields): ''' error : Error - settings : typing.Mapping<~KT, +VT_co>[str, str] + 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'} @@ -3141,7 +4165,7 @@ class HardwareCharacteristics(Type): cpu_power : int mem : int root_disk : int - tags : typing.Sequence<+T_co>[str] + tags : typing.Sequence[str] ''' self.arch = arch self.availability_zone = availability_zone @@ -3159,7 +4183,7 @@ class History(Type): def __init__(self, error=None, statuses=None, **unknown_fields): ''' error : Error - statuses : typing.Sequence<+T_co>[~DetailedStatus]<~DetailedStatus> + 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 []] @@ -3172,7 +4196,7 @@ class HostNetworkChange(Type): def __init__(self, error=None, new_bridges=None, reconfigure_delay=None, **unknown_fields): ''' error : Error - new_bridges : typing.Sequence<+T_co>[~DeviceBridgeInfo]<~DeviceBridgeInfo> + new_bridges : typing.Sequence[~DeviceBridgeInfo] reconfigure_delay : int ''' self.error = Error.from_json(error) if error else None @@ -3186,7 +4210,7 @@ class HostNetworkChangeResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~HostNetworkChange]<~HostNetworkChange> + results : typing.Sequence[~HostNetworkChange] ''' self.results = [HostNetworkChange.from_json(o) for o in results or []] @@ -3211,7 +4235,7 @@ class HostedModelConfig(Type): def __init__(self, cloud_spec=None, config=None, error=None, name=None, owner=None, **unknown_fields): ''' cloud_spec : CloudSpec - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] error : Error name : str owner : str @@ -3229,7 +4253,7 @@ class HostedModelConfigsResults(Type): _toPy = {'models': 'models'} def __init__(self, models=None, **unknown_fields): ''' - models : typing.Sequence<+T_co>[~HostedModelConfig]<~HostedModelConfig> + models : typing.Sequence[~HostedModelConfig] ''' self.models = [HostedModelConfig.from_json(o) for o in models or []] @@ -3240,7 +4264,7 @@ class ImageFilterParams(Type): _toPy = {'images': 'images'} def __init__(self, images=None, **unknown_fields): ''' - images : typing.Sequence<+T_co>[~ImageSpec]<~ImageSpec> + images : typing.Sequence[~ImageSpec] ''' self.images = [ImageSpec.from_json(o) for o in images or []] @@ -3270,10 +4294,10 @@ class ImageMetadataFilter(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<+T_co>[str] + arches : typing.Sequence[str] region : str root_storage_type : str - series : typing.Sequence<+T_co>[str] + series : typing.Sequence[str] stream : str virt_type : str ''' @@ -3301,12 +4325,94 @@ class ImageSpec(Type): +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<+T_co>[~MigrationSpec]<~MigrationSpec> + specs : typing.Sequence[~MigrationSpec] ''' self.specs = [MigrationSpec.from_json(o) for o in specs or []] @@ -3332,7 +4438,7 @@ class InitiateMigrationResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~InitiateMigrationResult]<~InitiateMigrationResult> + results : typing.Sequence[~InitiateMigrationResult] ''' self.results = [InitiateMigrationResult.from_json(o) for o in results or []] @@ -3345,11 +4451,11 @@ class InstanceInfo(Type): ''' characteristics : HardwareCharacteristics instance_id : str - network_config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + network_config : typing.Sequence[~NetworkConfig] nonce : str tag : str - volume_attachments : typing.Mapping<~KT, +VT_co>[str, ~VolumeAttachmentInfo]<~VolumeAttachmentInfo> - volumes : typing.Sequence<+T_co>[~Volume]<~Volume> + 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 @@ -3366,7 +4472,7 @@ class InstanceType(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<+T_co>[str] + arches : typing.Sequence[str] cost : int cpu_cores : int deprecated : bool @@ -3395,7 +4501,7 @@ class InstanceTypesResult(Type): cost_divisor : int cost_unit : str error : Error - instance_types : typing.Sequence<+T_co>[~InstanceType]<~InstanceType> + instance_types : typing.Sequence[~InstanceType] ''' self.cost_currency = cost_currency self.cost_divisor = cost_divisor @@ -3410,7 +4516,7 @@ class InstanceTypesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult> + results : typing.Sequence[~InstanceTypesResult] ''' self.results = [InstanceTypesResult.from_json(o) for o in results or []] @@ -3421,7 +4527,7 @@ class InstancesInfo(Type): _toPy = {'machines': 'machines'} def __init__(self, machines=None, **unknown_fields): ''' - machines : typing.Sequence<+T_co>[~InstanceInfo]<~InstanceInfo> + machines : typing.Sequence[~InstanceInfo] ''' self.machines = [InstanceInfo.from_json(o) for o in machines or []] @@ -3445,7 +4551,7 @@ class IntResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~IntResult]<~IntResult> + results : typing.Sequence[~IntResult] ''' self.results = [IntResult.from_json(o) for o in results or []] @@ -3464,6 +4570,17 @@ class InterfaceAddress(Type): +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'} @@ -3492,7 +4609,7 @@ class JobsResult(Type): def __init__(self, error=None, jobs=None, **unknown_fields): ''' error : Error - jobs : typing.Sequence<+T_co>[str] + jobs : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None self.jobs = jobs @@ -3504,70 +4621,380 @@ class JobsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~JobsResult]<~JobsResult> + results : typing.Sequence[~JobsResult] ''' self.results = [JobsResult.from_json(o) for o in results or []] -class LifeResult(Type): - _toSchema = {'error': 'error', 'life': 'life'} - _toPy = {'error': 'error', 'life': 'life'} - def __init__(self, error=None, life=None, **unknown_fields): +class KnownServiceArgs(Type): + _toSchema = {'known_services': 'known-services'} + _toPy = {'known-services': 'known_services'} + def __init__(self, known_services=None, **unknown_fields): ''' - error : Error - life : str + known_services : typing.Sequence[str] ''' - self.error = Error.from_json(error) if error else None - self.life = life + self.known_services = known_services -class LifeResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None, **unknown_fields): +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): ''' - results : typing.Sequence<+T_co>[~LifeResult]<~LifeResult> + attributes : typing.Mapping[str, str] + count : int + type_ : str ''' - self.results = [LifeResult.from_json(o) for o in results or []] + self.attributes = attributes + self.count = count + self.type_ = type_ -class ListCloudImageMetadataResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): +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): ''' - result : typing.Sequence<+T_co>[~CloudImageMetadata]<~CloudImageMetadata> + mount_point : str + provider : str + read_only : bool ''' - self.result = [CloudImageMetadata.from_json(o) for o in result or []] + self.mount_point = mount_point + self.provider = provider + self.read_only = read_only -class ListImageResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None, **unknown_fields): +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): ''' - result : typing.Sequence<+T_co>[~ImageMetadata]<~ImageMetadata> + 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.result = [ImageMetadata.from_json(o) for o in result or []] + 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 ListResourcesArgs(Type): - _toSchema = {'entities': 'entities'} - _toPy = {'entities': 'entities'} - def __init__(self, entities=None, **unknown_fields): +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): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + attachment : KubernetesFilesystemAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + storagename : str + tags : typing.Mapping[str, str] ''' - self.entities = [Entity.from_json(o) for o in entities or []] + 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 ListSSHKeys(Type): +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): @@ -3585,7 +5012,7 @@ class ListSpacesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~Space]<~Space> + results : typing.Sequence[~Space] ''' self.results = [Space.from_json(o) for o in results or []] @@ -3596,7 +5023,7 @@ class ListSubnetsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~Subnet]<~Subnet> + results : typing.Sequence[~Subnet] ''' self.results = [Subnet.from_json(o) for o in results or []] @@ -3607,7 +5034,7 @@ class ListUnitResourcesArgs(Type): _toPy = {'resource-names': 'resource_names'} def __init__(self, resource_names=None, **unknown_fields): ''' - resource_names : typing.Sequence<+T_co>[str] + resource_names : typing.Sequence[str] ''' self.resource_names = resource_names @@ -3618,7 +5045,7 @@ class LogForwardingGetLastSentParams(Type): _toPy = {'ids': 'ids'} def __init__(self, ids=None, **unknown_fields): ''' - ids : typing.Sequence<+T_co>[~LogForwardingID]<~LogForwardingID> + ids : typing.Sequence[~LogForwardingID] ''' self.ids = [LogForwardingID.from_json(o) for o in ids or []] @@ -3644,7 +5071,7 @@ class LogForwardingGetLastSentResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~LogForwardingGetLastSentResult]<~LogForwardingGetLastSentResult> + results : typing.Sequence[~LogForwardingGetLastSentResult] ''' self.results = [LogForwardingGetLastSentResult.from_json(o) for o in results or []] @@ -3683,7 +5110,7 @@ class LogForwardingSetLastSentParams(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~LogForwardingSetLastSentParam]<~LogForwardingSetLastSentParam> + params : typing.Sequence[~LogForwardingSetLastSentParam] ''' self.params = [LogForwardingSetLastSentParam.from_json(o) for o in params or []] @@ -3707,7 +5134,7 @@ class LookUpArgs(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~LookUpArg]<~LookUpArg> + args : typing.Sequence[~LookUpArg] ''' self.args = [LookUpArg.from_json(o) for o in args or []] @@ -3731,7 +5158,7 @@ class LookUpPayloadArgs(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~LookUpPayloadArg]<~LookUpPayloadArg> + args : typing.Sequence[~LookUpPayloadArg] ''' self.args = [LookUpPayloadArg.from_json(o) for o in args or []] @@ -3748,12 +5175,36 @@ class Macaroon(Type): +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<+T_co>[~Address]<~Address> + addresses : typing.Sequence[~Address] tag : str ''' self.addresses = [Address.from_json(o) for o in addresses or []] @@ -3766,7 +5217,7 @@ class MachineAddressesResult(Type): _toPy = {'addresses': 'addresses', 'error': 'error'} def __init__(self, addresses=None, error=None, **unknown_fields): ''' - addresses : typing.Sequence<+T_co>[~Address]<~Address> + addresses : typing.Sequence[~Address] error : Error ''' self.addresses = [Address.from_json(o) for o in addresses or []] @@ -3779,7 +5230,7 @@ class MachineAddressesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MachineAddressesResult]<~MachineAddressesResult> + results : typing.Sequence[~MachineAddressesResult] ''' self.results = [MachineAddressesResult.from_json(o) for o in results or []] @@ -3790,7 +5241,7 @@ class MachineBlockDevices(Type): _toPy = {'block-devices': 'block_devices', 'machine': 'machine'} def __init__(self, block_devices=None, machine=None, **unknown_fields): ''' - block_devices : typing.Sequence<+T_co>[~BlockDevice]<~BlockDevice> + block_devices : typing.Sequence[~BlockDevice] machine : str ''' self.block_devices = [BlockDevice.from_json(o) for o in block_devices or []] @@ -3803,7 +5254,7 @@ class MachineContainers(Type): _toPy = {'container-types': 'container_types', 'machine-tag': 'machine_tag'} def __init__(self, container_types=None, machine_tag=None, **unknown_fields): ''' - container_types : typing.Sequence<+T_co>[str] + container_types : typing.Sequence[str] machine_tag : str ''' self.container_types = container_types @@ -3816,7 +5267,7 @@ class MachineContainersParams(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~MachineContainers]<~MachineContainers> + params : typing.Sequence[~MachineContainers] ''' self.params = [MachineContainers.from_json(o) for o in params or []] @@ -3833,7 +5284,7 @@ class MachineHardware(Type): cpu_power : int mem : int root_disk : int - tags : typing.Sequence<+T_co>[str] + tags : typing.Sequence[str] ''' self.arch = arch self.availability_zone = availability_zone @@ -3851,7 +5302,7 @@ class MachineNetworkConfigResult(Type): def __init__(self, error=None, info=None, **unknown_fields): ''' error : Error - info : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + 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 []] @@ -3863,7 +5314,7 @@ class MachineNetworkConfigResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MachineNetworkConfigResult]<~MachineNetworkConfigResult> + results : typing.Sequence[~MachineNetworkConfigResult] ''' self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] @@ -3902,7 +5353,7 @@ class MachinePortsParams(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~MachinePorts]<~MachinePorts> + params : typing.Sequence[~MachinePorts] ''' self.params = [MachinePorts.from_json(o) for o in params or []] @@ -3914,7 +5365,7 @@ class MachinePortsResult(Type): def __init__(self, error=None, ports=None, **unknown_fields): ''' error : Error - ports : typing.Sequence<+T_co>[~MachinePortRange]<~MachinePortRange> + 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 []] @@ -3926,7 +5377,7 @@ class MachinePortsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MachinePortsResult]<~MachinePortsResult> + results : typing.Sequence[~MachinePortsResult] ''' self.results = [MachinePortsResult.from_json(o) for o in results or []] @@ -3938,15 +5389,15 @@ class MachineStatus(Type): 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<~KT, +VT_co>[str, ~MachineStatus]<~MachineStatus> + 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<+T_co>[str] - jobs : typing.Sequence<+T_co>[str] + ip_addresses : typing.Sequence[str] + jobs : typing.Sequence[str] series : str wants_vote : bool ''' @@ -3983,7 +5434,7 @@ class MachineStorageIds(Type): _toPy = {'ids': 'ids'} def __init__(self, ids=None, **unknown_fields): ''' - ids : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> + ids : typing.Sequence[~MachineStorageId] ''' self.ids = [MachineStorageId.from_json(o) for o in ids or []] @@ -3994,7 +5445,7 @@ class MachineStorageIdsWatchResult(Type): _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId> + changes : typing.Sequence[~MachineStorageId] error : Error watcher_id : str ''' @@ -4009,7 +5460,7 @@ class MachineStorageIdsWatchResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MachineStorageIdsWatchResult]<~MachineStorageIdsWatchResult> + results : typing.Sequence[~MachineStorageIdsWatchResult] ''' self.results = [MachineStorageIdsWatchResult.from_json(o) for o in results or []] @@ -4021,7 +5472,7 @@ class MapResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Mapping<~KT, +VT_co>[str, typing.Any] + result : typing.Mapping[str, typing.Any] ''' self.error = Error.from_json(error) if error else None self.result = result @@ -4033,7 +5484,7 @@ class MapResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MapResult]<~MapResult> + results : typing.Sequence[~MapResult] ''' self.results = [MapResult.from_json(o) for o in results or []] @@ -4068,7 +5519,7 @@ class Member(Type): id_ : int priority : float slavedelay : int - tags : typing.Mapping<~KT, +VT_co>[str, str] + tags : typing.Mapping[str, str] votes : int ''' self.address = address @@ -4088,7 +5539,7 @@ class MergeLeadershipSettingsBulkParams(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~MergeLeadershipSettingsParam]<~MergeLeadershipSettingsParam> + params : typing.Sequence[~MergeLeadershipSettingsParam] ''' self.params = [MergeLeadershipSettingsParam.from_json(o) for o in params or []] @@ -4100,7 +5551,7 @@ class MergeLeadershipSettingsParam(Type): def __init__(self, application_tag=None, settings=None, **unknown_fields): ''' application_tag : str - settings : typing.Mapping<~KT, +VT_co>[str, str] + settings : typing.Mapping[str, str] ''' self.application_tag = application_tag self.settings = settings @@ -4112,7 +5563,7 @@ class MetadataImageIds(Type): _toPy = {'image-ids': 'image_ids'} def __init__(self, image_ids=None, **unknown_fields): ''' - image_ids : typing.Sequence<+T_co>[str] + image_ids : typing.Sequence[str] ''' self.image_ids = image_ids @@ -4123,7 +5574,7 @@ class MetadataSaveParams(Type): _toPy = {'metadata': 'metadata'} def __init__(self, metadata=None, **unknown_fields): ''' - metadata : typing.Sequence<+T_co>[~CloudImageMetadataList]<~CloudImageMetadataList> + metadata : typing.Sequence[~CloudImageMetadataList] ''' self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] @@ -4162,7 +5613,7 @@ class MeterStatusParams(Type): _toPy = {'statues': 'statues'} def __init__(self, statues=None, **unknown_fields): ''' - statues : typing.Sequence<+T_co>[~MeterStatusParam]<~MeterStatusParam> + statues : typing.Sequence[~MeterStatusParam] ''' self.statues = [MeterStatusParam.from_json(o) for o in statues or []] @@ -4188,7 +5639,7 @@ class MeterStatusResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~MeterStatusResult]<~MeterStatusResult> + results : typing.Sequence[~MeterStatusResult] ''' self.results = [MeterStatusResult.from_json(o) for o in results or []] @@ -4216,7 +5667,7 @@ class MetricBatch(Type): ''' charm_url : str created : str - metrics : typing.Sequence<+T_co>[~Metric]<~Metric> + metrics : typing.Sequence[~Metric] uuid : str ''' self.charm_url = charm_url @@ -4244,7 +5695,7 @@ class MetricBatchParams(Type): _toPy = {'batches': 'batches'} def __init__(self, batches=None, **unknown_fields): ''' - batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam> + batches : typing.Sequence[~MetricBatchParam] ''' self.batches = [MetricBatchParam.from_json(o) for o in batches or []] @@ -4272,7 +5723,7 @@ class MetricResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~EntityMetrics]<~EntityMetrics> + results : typing.Sequence[~EntityMetrics] ''' self.results = [EntityMetrics.from_json(o) for o in results or []] @@ -4321,9 +5772,9 @@ class MigrationStatus(Type): external_control : bool migration_id : str phase : str - source_api_addrs : typing.Sequence<+T_co>[str] + source_api_addrs : typing.Sequence[str] source_ca_cert : str - target_api_addrs : typing.Sequence<+T_co>[str] + target_api_addrs : typing.Sequence[str] target_ca_cert : str ''' self.attempt = attempt @@ -4342,7 +5793,7 @@ class MigrationTargetInfo(Type): _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<+T_co>[str] + addrs : typing.Sequence[str] auth_tag : str ca_cert : str controller_tag : str @@ -4378,12 +5829,12 @@ class MinionReports(Type): _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<+T_co>[str] + failed : typing.Sequence[str] migration_id : str phase : str success_count : int unknown_count : int - unknown_sample : typing.Sequence<+T_co>[str] + unknown_sample : typing.Sequence[str] ''' self.failed = failed self.migration_id = migration_id @@ -4409,6 +5860,19 @@ class Model(Type): +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'} @@ -4425,7 +5889,7 @@ class ModelBlockInfo(Type): _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<+T_co>[str] + blocks : typing.Sequence[str] model_uuid : str name : str owner_tag : str @@ -4442,7 +5906,7 @@ class ModelBlockInfoList(Type): _toPy = {'models': 'models'} def __init__(self, models=None, **unknown_fields): ''' - models : typing.Sequence<+T_co>[~ModelBlockInfo]<~ModelBlockInfo> + models : typing.Sequence[~ModelBlockInfo] ''' self.models = [ModelBlockInfo.from_json(o) for o in models or []] @@ -4453,7 +5917,7 @@ class ModelConfigResult(Type): _toPy = {'config': 'config'} def __init__(self, config=None, **unknown_fields): ''' - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] ''' self.config = config @@ -4464,7 +5928,7 @@ class ModelConfigResults(Type): _toPy = {'config': 'config'} def __init__(self, config=None, **unknown_fields): ''' - config : typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue> + config : typing.Mapping[str, ~ConfigValue] ''' self.config = config @@ -4476,7 +5940,7 @@ class ModelCreateArgs(Type): 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<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] credential : str name : str owner_tag : str @@ -4491,6 +5955,23 @@ class ModelCreateArgs(Type): +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'} @@ -4498,7 +5979,7 @@ class ModelDefaultValues(Type): ''' cloud_region : str cloud_tag : str - config : typing.Mapping<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] ''' self.cloud_region = cloud_region self.cloud_tag = cloud_tag @@ -4511,9 +5992,9 @@ class ModelDefaults(Type): _toPy = {'controller': 'controller', 'default': 'default', 'regions': 'regions'} def __init__(self, controller=None, default=None, regions=None, **unknown_fields): ''' - controller : typing.Mapping<~KT, +VT_co>[str, typing.Any] - default : typing.Mapping<~KT, +VT_co>[str, typing.Any] - regions : typing.Sequence<+T_co>[~RegionDefaults]<~RegionDefaults> + controller : typing.Mapping[str, typing.Any] + default : typing.Mapping[str, typing.Any] + regions : typing.Sequence[~RegionDefaults] ''' self.controller = controller self.default = default @@ -4526,16 +6007,48 @@ class ModelDefaultsResult(Type): _toPy = {'config': 'config'} def __init__(self, config=None, **unknown_fields): ''' - config : typing.Mapping<~KT, +VT_co>[str, ~ModelDefaults]<~ModelDefaults> + 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', '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', '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, users=None, uuid=None, **unknown_fields): + _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 @@ -4544,14 +6057,15 @@ class ModelInfo(Type): controller_uuid : str default_series : str life : str - machines : typing.Sequence<+T_co>[~ModelMachineInfo]<~ModelMachineInfo> + machines : typing.Sequence[~ModelMachineInfo] migration : ModelMigrationStatus name : str owner_tag : str provider_type : str sla : ModelSLAInfo status : EntityStatus - users : typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo> + type_ : str + users : typing.Sequence[~ModelUserInfo] uuid : str ''' self.agent_version = Number.from_json(agent_version) if agent_version else None @@ -4568,6 +6082,7 @@ class ModelInfo(Type): 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 @@ -4591,7 +6106,7 @@ class ModelInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ModelInfoResult]<~ModelInfoResult> + results : typing.Sequence[~ModelInfoResult] ''' self.results = [ModelInfoResult.from_json(o) for o in results or []] @@ -4613,7 +6128,7 @@ class ModelInstanceTypesConstraints(Type): _toPy = {'constraints': 'constraints'} def __init__(self, constraints=None, **unknown_fields): ''' - constraints : typing.Sequence<+T_co>[~ModelInstanceTypesConstraint]<~ModelInstanceTypesConstraint> + constraints : typing.Sequence[~ModelInstanceTypesConstraint] ''' self.constraints = [ModelInstanceTypesConstraint.from_json(o) for o in constraints or []] @@ -4675,7 +6190,7 @@ class ModelSLA(Type): _toPy = {'creds': 'creds', 'level': 'level'} def __init__(self, creds=None, level=None, **unknown_fields): ''' - creds : typing.Sequence<+T_co>[int] + creds : typing.Sequence[int] level : str ''' self.creds = creds @@ -4696,12 +6211,23 @@ class ModelSLAInfo(Type): +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<~KT, +VT_co>[str, typing.Any] + config : typing.Mapping[str, typing.Any] ''' self.config = config @@ -4715,7 +6241,7 @@ class ModelStatus(Type): application_count : int hosted_machine_count : int life : str - machines : typing.Sequence<+T_co>[~ModelMachineInfo]<~ModelMachineInfo> + machines : typing.Sequence[~ModelMachineInfo] model_tag : str owner_tag : str ''' @@ -4729,9 +6255,9 @@ class ModelStatus(Type): 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', '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', 'version': 'version'} - def __init__(self, available_version=None, cloud_tag=None, meter_status=None, model_status=None, name=None, region=None, sla=None, version=None, **unknown_fields): + _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 @@ -4740,6 +6266,7 @@ class ModelStatusInfo(Type): name : str region : str sla : str + type_ : str version : str ''' self.available_version = available_version @@ -4749,6 +6276,7 @@ class ModelStatusInfo(Type): self.name = name self.region = region self.sla = sla + self.type_ = type_ self.version = version @@ -4758,12 +6286,94 @@ class ModelStatusResults(Type): _toPy = {'models': 'models'} def __init__(self, models=None, **unknown_fields): ''' - models : typing.Sequence<+T_co>[~ModelStatus]<~ModelStatus> + 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 = {} @@ -4780,7 +6390,7 @@ class ModelUnset(Type): _toPy = {'keys': 'keys'} def __init__(self, keys=None, **unknown_fields): ''' - keys : typing.Sequence<+T_co>[str] + keys : typing.Sequence[str] ''' self.keys = keys @@ -4793,7 +6403,7 @@ class ModelUnsetKeys(Type): ''' cloud_region : str cloud_tag : str - keys : typing.Sequence<+T_co>[str] + keys : typing.Sequence[str] ''' self.cloud_region = cloud_region self.cloud_tag = cloud_tag @@ -4836,12 +6446,59 @@ class ModelUserInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ModelUserInfoResult]<~ModelUserInfoResult> + 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'} @@ -4862,7 +6519,7 @@ class ModifyControllerAccessRequest(Type): _toPy = {'changes': 'changes'} def __init__(self, changes=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[~ModifyControllerAccess]<~ModifyControllerAccess> + changes : typing.Sequence[~ModifyControllerAccess] ''' self.changes = [ModifyControllerAccess.from_json(o) for o in changes or []] @@ -4890,18 +6547,46 @@ class ModifyModelAccessRequest(Type): _toPy = {'changes': 'changes'} def __init__(self, changes=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[~ModifyModelAccess]<~ModifyModelAccess> + 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<+T_co>[str] + ssh_keys : typing.Sequence[str] user : str ''' self.ssh_keys = ssh_keys @@ -4914,9 +6599,9 @@ class MongoUpgradeResults(Type): _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<+T_co>[~HAMember]<~HAMember> + ha_members : typing.Sequence[~HAMember] master : HAMember - rs_members : typing.Sequence<+T_co>[~Member]<~Member> + 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 @@ -4951,8 +6636,8 @@ class NetworkConfig(Type): config_type : str device_index : int disabled : bool - dns_search_domains : typing.Sequence<+T_co>[str] - dns_servers : typing.Sequence<+T_co>[str] + dns_search_domains : typing.Sequence[str] + dns_servers : typing.Sequence[str] gateway_address : str interface_name : str interface_type : str @@ -4995,7 +6680,7 @@ class NetworkInfo(Type): _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<+T_co>[~InterfaceAddress]<~InterfaceAddress> + addresses : typing.Sequence[~InterfaceAddress] interface_name : str mac_address : str ''' @@ -5010,7 +6695,7 @@ class NetworkInfoParams(Type): _toPy = {'bindings': 'bindings', 'unit': 'unit'} def __init__(self, bindings=None, unit=None, **unknown_fields): ''' - bindings : typing.Sequence<+T_co>[str] + bindings : typing.Sequence[str] unit : str ''' self.bindings = bindings @@ -5024,7 +6709,7 @@ class NetworkInfoResult(Type): def __init__(self, error=None, network_info=None, **unknown_fields): ''' error : Error - network_info : typing.Sequence<+T_co>[~NetworkInfo]<~NetworkInfo> + 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 []] @@ -5036,7 +6721,7 @@ class NetworkInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Mapping<~KT, +VT_co>[str, ~NetworkInfoResult]<~NetworkInfoResult> + results : typing.Mapping[str, ~NetworkInfoResult] ''' self.results = results @@ -5047,9 +6732,9 @@ class NetworkInterface(Type): _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<+T_co>[str] + dns_nameservers : typing.Sequence[str] gateway : str - ip_addresses : typing.Sequence<+T_co>[str] + ip_addresses : typing.Sequence[str] is_up : bool mac_address : str space : str @@ -5096,7 +6781,7 @@ class NotifyWatchResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult> + results : typing.Sequence[~NotifyWatchResult] ''' self.results = [NotifyWatchResult.from_json(o) for o in results or []] @@ -5121,6 +6806,173 @@ class Number(Type): +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'} @@ -5128,7 +6980,7 @@ class Payload(Type): ''' class_ : str id_ : str - labels : typing.Sequence<+T_co>[str] + labels : typing.Sequence[str] machine : str status : str type_ : str @@ -5149,7 +7001,7 @@ class PayloadListArgs(Type): _toPy = {'patterns': 'patterns'} def __init__(self, patterns=None, **unknown_fields): ''' - patterns : typing.Sequence<+T_co>[str] + patterns : typing.Sequence[str] ''' self.patterns = patterns @@ -5160,7 +7012,7 @@ class PayloadListResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~Payload]<~Payload> + results : typing.Sequence[~Payload] ''' self.results = [Payload.from_json(o) for o in results or []] @@ -5188,7 +7040,7 @@ class PayloadResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult> + results : typing.Sequence[~PayloadResult] ''' self.results = [PayloadResult.from_json(o) for o in results or []] @@ -5212,12 +7064,47 @@ class PhaseResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~PhaseResult]<~PhaseResult> + 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'} @@ -5268,6 +7155,36 @@ class PrivateAddressResults(Type): +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'} @@ -5289,7 +7206,7 @@ class ProviderInterfaceInfoResult(Type): def __init__(self, error=None, interfaces=None, machine_tag=None, **unknown_fields): ''' error : Error - interfaces : typing.Sequence<+T_co>[~ProviderInterfaceInfo]<~ProviderInterfaceInfo> + interfaces : typing.Sequence[~ProviderInterfaceInfo] machine_tag : str ''' self.error = Error.from_json(error) if error else None @@ -5303,7 +7220,7 @@ class ProviderInterfaceInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ProviderInterfaceInfoResult]<~ProviderInterfaceInfoResult> + results : typing.Sequence[~ProviderInterfaceInfoResult] ''' self.results = [ProviderInterfaceInfoResult.from_json(o) for o in results or []] @@ -5317,7 +7234,7 @@ class ProviderSpace(Type): error : Error name : str provider_id : str - subnets : typing.Sequence<+T_co>[~Subnet]<~Subnet> + subnets : typing.Sequence[~Subnet] ''' self.error = Error.from_json(error) if error else None self.name = name @@ -5332,15 +7249,15 @@ class ProvisioningInfo(Type): 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<~KT, +VT_co>[str, typing.Any] - endpoint_bindings : typing.Mapping<~KT, +VT_co>[str, str] - image_metadata : typing.Sequence<+T_co>[~CloudImageMetadata]<~CloudImageMetadata> - jobs : typing.Sequence<+T_co>[str] + 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<+T_co>[str] - tags : typing.Mapping<~KT, +VT_co>[str, str] - volumes : typing.Sequence<+T_co>[~VolumeParams]<~VolumeParams> + 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 @@ -5373,7 +7290,7 @@ class ProvisioningInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ProvisioningInfoResult]<~ProvisioningInfoResult> + results : typing.Sequence[~ProvisioningInfoResult] ''' self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] @@ -5444,7 +7361,7 @@ class ProxyConfigResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ProxyConfigResult]<~ProxyConfigResult> + results : typing.Sequence[~ProxyConfigResult] ''' self.results = [ProxyConfigResult.from_json(o) for o in results or []] @@ -5472,6 +7389,17 @@ class PublicAddressResults(Type): +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'} @@ -5490,7 +7418,7 @@ class RebootActionResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~RebootActionResult]<~RebootActionResult> + results : typing.Sequence[~RebootActionResult] ''' self.results = [RebootActionResult.from_json(o) for o in results or []] @@ -5502,20 +7430,80 @@ class RegionDefaults(Type): def __init__(self, region_name=None, value=None, **unknown_fields): ''' region_name : str - value : typing.Mapping<~KT, +VT_co>[str, typing.Any] + 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<~KT, +VT_co>[str, ~RelationUnitChange]<~RelationUnitChange> - departedunits : typing.Sequence<+T_co>[str] + changedunits : typing.Mapping[str, ~RelationUnitChange] + departedunits : typing.Sequence[str] id_ : int life : str ''' @@ -5531,12 +7519,44 @@ class RelationIds(Type): _toPy = {'relation-ids': 'relation_ids'} def __init__(self, relation_ids=None, **unknown_fields): ''' - relation_ids : typing.Sequence<+T_co>[int] + 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'} @@ -5561,7 +7581,7 @@ class RelationResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~RelationResult]<~RelationResult> + results : typing.Sequence[~RelationResult] ''' self.results = [RelationResult.from_json(o) for o in results or []] @@ -5572,7 +7592,7 @@ class RelationStatus(Type): _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<+T_co>[~EndpointStatus]<~EndpointStatus> + endpoints : typing.Sequence[~EndpointStatus] id_ : int interface : str key : str @@ -5586,6 +7606,71 @@ class RelationStatus(Type): +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'} @@ -5604,7 +7689,7 @@ class RelationUnitChange(Type): _toPy = {'settings': 'settings'} def __init__(self, settings=None, **unknown_fields): ''' - settings : typing.Mapping<~KT, +VT_co>[str, typing.Any] + settings : typing.Mapping[str, typing.Any] ''' self.settings = settings @@ -5630,7 +7715,7 @@ class RelationUnitPairs(Type): _toPy = {'relation-unit-pairs': 'relation_unit_pairs'} def __init__(self, relation_unit_pairs=None, **unknown_fields): ''' - relation_unit_pairs : typing.Sequence<+T_co>[~RelationUnitPair]<~RelationUnitPair> + relation_unit_pairs : typing.Sequence[~RelationUnitPair] ''' self.relation_unit_pairs = [RelationUnitPair.from_json(o) for o in relation_unit_pairs or []] @@ -5642,7 +7727,7 @@ class RelationUnitSettings(Type): def __init__(self, relation=None, settings=None, unit=None, **unknown_fields): ''' relation : str - settings : typing.Mapping<~KT, +VT_co>[str, str] + settings : typing.Mapping[str, str] unit : str ''' self.relation = relation @@ -5651,12 +7736,51 @@ class RelationUnitSettings(Type): +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<+T_co>[~RelationUnit]<~RelationUnit> + relation_units : typing.Sequence[~RelationUnit] ''' self.relation_units = [RelationUnit.from_json(o) for o in relation_units or []] @@ -5667,8 +7791,8 @@ class RelationUnitsChange(Type): _toPy = {'changed': 'changed', 'departed': 'departed'} def __init__(self, changed=None, departed=None, **unknown_fields): ''' - changed : typing.Mapping<~KT, +VT_co>[str, ~UnitSettings]<~UnitSettings> - departed : typing.Sequence<+T_co>[str] + changed : typing.Mapping[str, ~UnitSettings] + departed : typing.Sequence[str] ''' self.changed = changed self.departed = departed @@ -5680,7 +7804,7 @@ class RelationUnitsSettings(Type): _toPy = {'relation-units': 'relation_units'} def __init__(self, relation_units=None, **unknown_fields): ''' - relation_units : typing.Sequence<+T_co>[~RelationUnitSettings]<~RelationUnitSettings> + relation_units : typing.Sequence[~RelationUnitSettings] ''' self.relation_units = [RelationUnitSettings.from_json(o) for o in relation_units or []] @@ -5706,12 +7830,35 @@ class RelationUnitsWatchResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~RelationUnitsWatchResult]<~RelationUnitsWatchResult> + 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'} @@ -5734,7 +7881,7 @@ class RemoteApplicationInfo(Type): ''' application_url : str description : str - endpoints : typing.Sequence<+T_co>[~RemoteEndpoint]<~RemoteEndpoint> + endpoints : typing.Sequence[~RemoteEndpoint] icon_url_path : str model_tag : str name : str @@ -5768,12 +7915,36 @@ class RemoteApplicationInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~RemoteApplicationInfoResult]<~RemoteApplicationInfoResult> + 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'} @@ -5781,10 +7952,10 @@ class RemoteApplicationStatus(Type): ''' application_name : str application_url : str - endpoints : typing.Sequence<+T_co>[~RemoteEndpoint]<~RemoteEndpoint> - err : typing.Mapping<~KT, +VT_co>[str, typing.Any] + endpoints : typing.Sequence[~RemoteEndpoint] + err : typing.Mapping[str, typing.Any] life : str - relations : typing.Sequence<+T_co>[str] + relations : typing.Sequence[str] status : DetailedStatus ''' self.application_name = application_name @@ -5831,6 +8002,30 @@ class RemoteEndpoint(Type): +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'} @@ -5844,13 +8039,64 @@ class RemoteEntityId(Type): +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<~KT, +VT_co>[str, ~RemoteRelationUnitChange]<~RemoteRelationUnitChange> - departed_units : typing.Sequence<+T_co>[str] + changed_units : typing.Mapping[str, ~RemoteRelationUnitChange] + departed_units : typing.Sequence[str] id_ : int life : str ''' @@ -5861,16 +8107,106 @@ class RemoteRelationChange(Type): +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<~KT, +VT_co>[str, typing.Any] - unit_id : RemoteEntityId + 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.settings = settings - self.unit_id = RemoteEntityId.from_json(unit_id) if unit_id else None + self.relation_units = [RemoteRelationUnit.from_json(o) for o in relation_units or []] @@ -5879,9 +8215,9 @@ class RemoteRelationsChange(Type): _toPy = {'changed': 'changed', 'initial': 'initial', 'removed': 'removed'} def __init__(self, changed=None, initial=None, removed=None, **unknown_fields): ''' - changed : typing.Sequence<+T_co>[~RemoteRelationChange]<~RemoteRelationChange> + changed : typing.Sequence[~RemoteRelationChange] initial : bool - removed : typing.Sequence<+T_co>[int] + removed : typing.Sequence[int] ''' self.changed = [RemoteRelationChange.from_json(o) for o in changed or []] self.initial = initial @@ -5889,6 +8225,17 @@ class RemoteRelationsChange(Type): +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'} @@ -5911,9 +8258,9 @@ class RemoteSpace(Type): ''' cloud_type : str name : str - provider_attributes : typing.Mapping<~KT, +VT_co>[str, typing.Any] + provider_attributes : typing.Mapping[str, typing.Any] provider_id : str - subnets : typing.Sequence<+T_co>[~Subnet]<~Subnet> + subnets : typing.Sequence[~Subnet] ''' self.cloud_type = cloud_type self.name = name @@ -5934,6 +8281,110 @@ class RemoveBlocksArgs(Type): +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'} @@ -5952,7 +8403,7 @@ class ResolveCharmResults(Type): _toPy = {'urls': 'urls'} def __init__(self, urls=None, **unknown_fields): ''' - urls : typing.Sequence<+T_co>[~ResolveCharmResult]<~ResolveCharmResult> + urls : typing.Sequence[~ResolveCharmResult] ''' self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] @@ -5963,7 +8414,7 @@ class ResolveCharms(Type): _toPy = {'references': 'references'} def __init__(self, references=None, **unknown_fields): ''' - references : typing.Sequence<+T_co>[str] + references : typing.Sequence[str] ''' self.references = references @@ -6000,7 +8451,7 @@ class ResolvedModeResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ResolvedModeResult]<~ResolvedModeResult> + results : typing.Sequence[~ResolvedModeResult] ''' self.results = [ResolvedModeResult.from_json(o) for o in results or []] @@ -6046,9 +8497,9 @@ class ResourcesResult(Type): def __init__(self, errorresult=None, charm_store_resources=None, resources=None, unit_resources=None, **unknown_fields): ''' errorresult : ErrorResult - charm_store_resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource> - resources : typing.Sequence<+T_co>[~Resource]<~Resource> - unit_resources : typing.Sequence<+T_co>[~UnitResources]<~UnitResources> + 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 []] @@ -6062,7 +8513,7 @@ class ResourcesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ResourcesResult]<~ResourcesResult> + results : typing.Sequence[~ResourcesResult] ''' self.results = [ResourcesResult.from_json(o) for o in results or []] @@ -6084,7 +8535,7 @@ class ResumeReplicationParams(Type): _toPy = {'members': 'members'} def __init__(self, members=None, **unknown_fields): ''' - members : typing.Sequence<+T_co>[~Member]<~Member> + members : typing.Sequence[~Member] ''' self.members = [Member.from_json(o) for o in members or []] @@ -6127,22 +8578,46 @@ class RetryStrategyResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~RetryStrategyResult]<~RetryStrategyResult> + 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<+T_co>[str] + applications : typing.Sequence[str] commands : str - machines : typing.Sequence<+T_co>[str] + machines : typing.Sequence[str] timeout : int - units : typing.Sequence<+T_co>[str] + units : typing.Sequence[str] ''' self.applications = applications self.commands = commands @@ -6170,7 +8645,7 @@ class SSHAddressResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult> + results : typing.Sequence[~SSHAddressResult] ''' self.results = [SSHAddressResult.from_json(o) for o in results or []] @@ -6181,7 +8656,7 @@ class SSHAddressesResult(Type): _toPy = {'addresses': 'addresses', 'error': 'error'} def __init__(self, addresses=None, error=None, **unknown_fields): ''' - addresses : typing.Sequence<+T_co>[str] + addresses : typing.Sequence[str] error : Error ''' self.addresses = addresses @@ -6194,7 +8669,7 @@ class SSHAddressesResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~SSHAddressesResult]<~SSHAddressesResult> + results : typing.Sequence[~SSHAddressesResult] ''' self.results = [SSHAddressesResult.from_json(o) for o in results or []] @@ -6205,7 +8680,7 @@ class SSHHostKeySet(Type): _toPy = {'entity-keys': 'entity_keys'} def __init__(self, entity_keys=None, **unknown_fields): ''' - entity_keys : typing.Sequence<+T_co>[~SSHHostKeys]<~SSHHostKeys> + entity_keys : typing.Sequence[~SSHHostKeys] ''' self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] @@ -6216,7 +8691,7 @@ class SSHHostKeys(Type): _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} def __init__(self, public_keys=None, tag=None, **unknown_fields): ''' - public_keys : typing.Sequence<+T_co>[str] + public_keys : typing.Sequence[str] tag : str ''' self.public_keys = public_keys @@ -6241,7 +8716,7 @@ class SSHPublicKeysResult(Type): def __init__(self, error=None, public_keys=None, **unknown_fields): ''' error : Error - public_keys : typing.Sequence<+T_co>[str] + public_keys : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None self.public_keys = public_keys @@ -6253,20 +8728,81 @@ class SSHPublicKeysResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~SSHPublicKeysResult]<~SSHPublicKeysResult> + 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<+T_co>[int] - charms : typing.Sequence<+T_co>[str] - tools : typing.Sequence<+T_co>[~SerializedModelTools]<~SerializedModelTools> + bytes_ : typing.Sequence[int] + charms : typing.Sequence[str] + tools : typing.Sequence[~SerializedModelTools] ''' self.bytes_ = bytes_ self.charms = charms @@ -6283,7 +8819,7 @@ class SerializedModelResource(Type): application_revision : SerializedModelResourceRevision charmstore_revision : SerializedModelResourceRevision name : str - unit_revisions : typing.Mapping<~KT, +VT_co>[str, ~SerializedModelResourceRevision]<~SerializedModelResourceRevision> + unit_revisions : typing.Mapping[str, ~SerializedModelResourceRevision] ''' self.application = application self.application_revision = SerializedModelResourceRevision.from_json(application_revision) if application_revision else None @@ -6346,12 +8882,34 @@ class SetConstraints(Type): +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<+T_co>[~MachineBlockDevices]<~MachineBlockDevices> + machine_block_devices : typing.Sequence[~MachineBlockDevices] ''' self.machine_block_devices = [MachineBlockDevices.from_json(o) for o in machine_block_devices or []] @@ -6362,7 +8920,7 @@ class SetMachineNetworkConfig(Type): _toPy = {'config': 'config', 'tag': 'tag'} def __init__(self, config=None, tag=None, **unknown_fields): ''' - config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + config : typing.Sequence[~NetworkConfig] tag : str ''' self.config = [NetworkConfig.from_json(o) for o in config or []] @@ -6375,7 +8933,7 @@ class SetMachinesAddresses(Type): _toPy = {'machine-addresses': 'machine_addresses'} def __init__(self, machine_addresses=None, **unknown_fields): ''' - machine_addresses : typing.Sequence<+T_co>[~MachineAddresses]<~MachineAddresses> + machine_addresses : typing.Sequence[~MachineAddresses] ''' self.machine_addresses = [MachineAddresses.from_json(o) for o in machine_addresses or []] @@ -6419,12 +8977,36 @@ class SetModelDefaults(Type): _toPy = {'config': 'config'} def __init__(self, config=None, **unknown_fields): ''' - config : typing.Sequence<+T_co>[~ModelDefaultValues]<~ModelDefaultValues> + 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'} @@ -6443,18 +9025,77 @@ class SetPayloadStatusArgs(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~SetPayloadStatusArg]<~SetPayloadStatusArg> + 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<+T_co>[~EntityStatusArgs]<~EntityStatusArgs> + entities : typing.Sequence[~EntityStatusArgs] ''' self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] @@ -6478,7 +9119,7 @@ class SetStatusArgs(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~SetStatusArg]<~SetStatusArg> + args : typing.Sequence[~SetStatusArg] ''' self.args = [SetStatusArg.from_json(o) for o in args or []] @@ -6507,7 +9148,7 @@ class SettingsResult(Type): def __init__(self, error=None, settings=None, **unknown_fields): ''' error : Error - settings : typing.Mapping<~KT, +VT_co>[str, str] + settings : typing.Mapping[str, str] ''' self.error = Error.from_json(error) if error else None self.settings = settings @@ -6519,7 +9160,7 @@ class SettingsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult> + results : typing.Sequence[~SettingsResult] ''' self.results = [SettingsResult.from_json(o) for o in results or []] @@ -6545,7 +9186,7 @@ class SingularClaims(Type): _toPy = {'claims': 'claims'} def __init__(self, claims=None, **unknown_fields): ''' - claims : typing.Sequence<+T_co>[~SingularClaim]<~SingularClaim> + claims : typing.Sequence[~SingularClaim] ''' self.claims = [SingularClaim.from_json(o) for o in claims or []] @@ -6558,7 +9199,7 @@ class Space(Type): ''' error : Error name : str - subnets : typing.Sequence<+T_co>[~Subnet]<~Subnet> + subnets : typing.Sequence[~Subnet] ''' self.error = Error.from_json(error) if error else None self.name = name @@ -6584,7 +9225,7 @@ class SpaceResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~SpaceResult]<~SpaceResult> + results : typing.Sequence[~SpaceResult] ''' self.results = [SpaceResult.from_json(o) for o in results or []] @@ -6663,7 +9304,7 @@ class StatusHistoryRequests(Type): _toPy = {'requests': 'requests'} def __init__(self, requests=None, **unknown_fields): ''' - requests : typing.Sequence<+T_co>[~StatusHistoryRequest]<~StatusHistoryRequest> + requests : typing.Sequence[~StatusHistoryRequest] ''' self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] @@ -6687,7 +9328,7 @@ class StatusHistoryResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StatusHistoryResult]<~StatusHistoryResult> + results : typing.Sequence[~StatusHistoryResult] ''' self.results = [StatusHistoryResult.from_json(o) for o in results or []] @@ -6698,7 +9339,7 @@ class StatusParams(Type): _toPy = {'patterns': 'patterns'} def __init__(self, patterns=None, **unknown_fields): ''' - patterns : typing.Sequence<+T_co>[str] + patterns : typing.Sequence[str] ''' self.patterns = patterns @@ -6709,7 +9350,7 @@ class StatusResult(Type): _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<~KT, +VT_co>[str, typing.Any] + data : typing.Mapping[str, typing.Any] error : Error id_ : str info : str @@ -6732,7 +9373,7 @@ class StatusResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StatusResult]<~StatusResult> + results : typing.Sequence[~StatusResult] ''' self.results = [StatusResult.from_json(o) for o in results or []] @@ -6809,7 +9450,7 @@ class StorageAttachmentIds(Type): _toPy = {'ids': 'ids'} def __init__(self, ids=None, **unknown_fields): ''' - ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId> + ids : typing.Sequence[~StorageAttachmentId] ''' self.ids = [StorageAttachmentId.from_json(o) for o in ids or []] @@ -6833,7 +9474,7 @@ class StorageAttachmentIdsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StorageAttachmentIdsResult]<~StorageAttachmentIdsResult> + results : typing.Sequence[~StorageAttachmentIdsResult] ''' self.results = [StorageAttachmentIdsResult.from_json(o) for o in results or []] @@ -6857,7 +9498,7 @@ class StorageAttachmentResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StorageAttachmentResult]<~StorageAttachmentResult> + results : typing.Sequence[~StorageAttachmentResult] ''' self.results = [StorageAttachmentResult.from_json(o) for o in results or []] @@ -6883,7 +9524,7 @@ class StorageDetails(Type): _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<~KT, +VT_co>[str, ~StorageAttachmentDetails]<~StorageAttachmentDetails> + attachments : typing.Mapping[str, ~StorageAttachmentDetails] kind : int owner_tag : str persistent : bool @@ -6905,7 +9546,7 @@ class StorageDetailsListResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Sequence<+T_co>[~StorageDetails]<~StorageDetails> + 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 []] @@ -6917,7 +9558,7 @@ class StorageDetailsListResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StorageDetailsListResult]<~StorageDetailsListResult> + results : typing.Sequence[~StorageDetailsListResult] ''' self.results = [StorageDetailsListResult.from_json(o) for o in results or []] @@ -6941,7 +9582,7 @@ class StorageDetailsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StorageDetailsResult]<~StorageDetailsResult> + results : typing.Sequence[~StorageDetailsResult] ''' self.results = [StorageDetailsResult.from_json(o) for o in results or []] @@ -6963,7 +9604,7 @@ class StorageFilters(Type): _toPy = {'filters': 'filters'} def __init__(self, filters=None, **unknown_fields): ''' - filters : typing.Sequence<+T_co>[~StorageFilter]<~StorageFilter> + filters : typing.Sequence[~StorageFilter] ''' self.filters = [StorageFilter.from_json(o) for o in filters or []] @@ -6974,7 +9615,7 @@ class StoragePool(Type): _toPy = {'attrs': 'attrs', 'name': 'name', 'provider': 'provider'} def __init__(self, attrs=None, name=None, provider=None, **unknown_fields): ''' - attrs : typing.Mapping<~KT, +VT_co>[str, typing.Any] + attrs : typing.Mapping[str, typing.Any] name : str provider : str ''' @@ -6989,8 +9630,8 @@ class StoragePoolFilter(Type): _toPy = {'names': 'names', 'providers': 'providers'} def __init__(self, names=None, providers=None, **unknown_fields): ''' - names : typing.Sequence<+T_co>[str] - providers : typing.Sequence<+T_co>[str] + names : typing.Sequence[str] + providers : typing.Sequence[str] ''' self.names = names self.providers = providers @@ -7002,7 +9643,7 @@ class StoragePoolFilters(Type): _toPy = {'filters': 'filters'} def __init__(self, filters=None, **unknown_fields): ''' - filters : typing.Sequence<+T_co>[~StoragePoolFilter]<~StoragePoolFilter> + filters : typing.Sequence[~StoragePoolFilter] ''' self.filters = [StoragePoolFilter.from_json(o) for o in filters or []] @@ -7014,7 +9655,7 @@ class StoragePoolsResult(Type): def __init__(self, error=None, storage_pools=None, **unknown_fields): ''' error : Error - storage_pools : typing.Sequence<+T_co>[~StoragePool]<~StoragePool> + 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 []] @@ -7026,7 +9667,7 @@ class StoragePoolsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StoragePoolsResult]<~StoragePoolsResult> + results : typing.Sequence[~StoragePoolsResult] ''' self.results = [StoragePoolsResult.from_json(o) for o in results or []] @@ -7037,7 +9678,7 @@ class StoragesAddParams(Type): _toPy = {'storages': 'storages'} def __init__(self, storages=None, **unknown_fields): ''' - storages : typing.Sequence<+T_co>[~StorageAddParams]<~StorageAddParams> + storages : typing.Sequence[~StorageAddParams] ''' self.storages = [StorageAddParams.from_json(o) for o in storages or []] @@ -7063,7 +9704,7 @@ class StringBoolResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult> + results : typing.Sequence[~StringBoolResult] ''' self.results = [StringBoolResult.from_json(o) for o in results or []] @@ -7087,7 +9728,7 @@ class StringResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StringResult]<~StringResult> + results : typing.Sequence[~StringResult] ''' self.results = [StringResult.from_json(o) for o in results or []] @@ -7099,7 +9740,7 @@ class StringsResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Sequence<+T_co>[str] + result : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None self.result = result @@ -7111,7 +9752,7 @@ class StringsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StringsResult]<~StringsResult> + results : typing.Sequence[~StringsResult] ''' self.results = [StringsResult.from_json(o) for o in results or []] @@ -7122,7 +9763,7 @@ class StringsWatchResult(Type): _toPy = {'changes': 'changes', 'error': 'error', 'watcher-id': 'watcher_id'} def __init__(self, changes=None, error=None, watcher_id=None, **unknown_fields): ''' - changes : typing.Sequence<+T_co>[str] + changes : typing.Sequence[str] error : Error watcher_id : str ''' @@ -7137,45 +9778,93 @@ class StringsWatchResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult> + 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.results = [StringsWatchResult.from_json(o) for o in results or []] + self.credentials = [TaggedCredential.from_json(o) for o in credentials 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): +class TokenResult(Type): + _toSchema = {'error': 'error', 'token': 'token'} + _toPy = {'error': 'error', 'token': 'token'} + def __init__(self, error=None, token=None, **unknown_fields): ''' - cidr : str - life : str - provider_id : str - space_tag : str - status : str - vlan_tag : int - zones : typing.Sequence<+T_co>[str] + error : Error + token : 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 + self.error = Error.from_json(error) if error else None + self.token = token -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): +class TokenResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None, **unknown_fields): ''' - space_tag : str - zone : str + results : typing.Sequence[~TokenResult] ''' - self.space_tag = space_tag - self.zone = zone + self.results = [TokenResult.from_json(o) for o in results or []] @@ -7203,7 +9892,7 @@ class ToolsResult(Type): ''' disable_ssl_hostname_verification : bool error : Error - tools : typing.Sequence<+T_co>[~Tools]<~Tools> + tools : typing.Sequence[~Tools] ''' self.disable_ssl_hostname_verification = disable_ssl_hostname_verification self.error = Error.from_json(error) if error else None @@ -7216,7 +9905,7 @@ class ToolsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ToolsResult]<~ToolsResult> + results : typing.Sequence[~ToolsResult] ''' self.results = [ToolsResult.from_json(o) for o in results or []] @@ -7227,7 +9916,7 @@ class TrackArgs(Type): _toPy = {'payloads': 'payloads'} def __init__(self, payloads=None, **unknown_fields): ''' - payloads : typing.Sequence<+T_co>[~Payload]<~Payload> + payloads : typing.Sequence[~Payload] ''' self.payloads = [Payload.from_json(o) for o in payloads or []] @@ -7238,7 +9927,7 @@ class TrackPayloadArgs(Type): _toPy = {'payloads': 'payloads'} def __init__(self, payloads=None, **unknown_fields): ''' - payloads : typing.Sequence<+T_co>[~Payload]<~Payload> + payloads : typing.Sequence[~Payload] ''' self.payloads = [Payload.from_json(o) for o in payloads or []] @@ -7295,7 +9984,7 @@ class UnitNetworkConfigResult(Type): def __init__(self, error=None, info=None, **unknown_fields): ''' error : Error - info : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig> + 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 []] @@ -7307,12 +9996,38 @@ class UnitNetworkConfigResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~UnitNetworkConfigResult]<~UnitNetworkConfigResult> + 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'} @@ -7332,8 +10047,8 @@ class UnitResources(Type): def __init__(self, entity=None, download_progress=None, resources=None, **unknown_fields): ''' entity : Entity - download_progress : typing.Mapping<~KT, +VT_co>[str, int] - resources : typing.Sequence<+T_co>[~Resource]<~Resource> + 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 @@ -7347,7 +10062,7 @@ class UnitResourcesResult(Type): def __init__(self, errorresult=None, resources=None, **unknown_fields): ''' errorresult : ErrorResult - resources : typing.Sequence<+T_co>[~UnitResourceResult]<~UnitResourceResult> + 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 []] @@ -7374,9 +10089,9 @@ class UnitStatus(Type): charm : str leader : bool machine : str - opened_ports : typing.Sequence<+T_co>[str] + opened_ports : typing.Sequence[str] public_address : str - subordinates : typing.Mapping<~KT, +VT_co>[str, ~UnitStatus]<~UnitStatus> + subordinates : typing.Mapping[str, ~UnitStatus] workload_status : DetailedStatus workload_version : str ''' @@ -7397,23 +10112,88 @@ class UnitsNetworkConfig(Type): _toPy = {'args': 'args'} def __init__(self, args=None, **unknown_fields): ''' - args : typing.Sequence<+T_co>[~UnitNetworkConfig]<~UnitNetworkConfig> + 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<+T_co>[~ModelUnsetKeys]<~ModelUnsetKeys> + 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'} @@ -7445,12 +10225,92 @@ class UpdateCloudCredentials(Type): _toPy = {'credentials': 'credentials'} def __init__(self, credentials=None, **unknown_fields): ''' - credentials : typing.Sequence<+T_co>[~UpdateCloudCredential]<~UpdateCloudCredential> + 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'} @@ -7462,6 +10322,117 @@ class UpgradeMongoParams(Type): +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'} @@ -7493,7 +10464,7 @@ class UserAccessResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~UserAccessResult]<~UserAccessResult> + results : typing.Sequence[~UserAccessResult] ''' self.results = [UserAccessResult.from_json(o) for o in results or []] @@ -7517,7 +10488,7 @@ class UserClouds(Type): _toPy = {'user-clouds': 'user_clouds'} def __init__(self, user_clouds=None, **unknown_fields): ''' - user_clouds : typing.Sequence<+T_co>[~UserCloud]<~UserCloud> + user_clouds : typing.Sequence[~UserCloud] ''' self.user_clouds = [UserCloud.from_json(o) for o in user_clouds or []] @@ -7551,7 +10522,7 @@ class UserInfoRequest(Type): _toPy = {'entities': 'entities', 'include-disabled': 'include_disabled'} def __init__(self, entities=None, include_disabled=None, **unknown_fields): ''' - entities : typing.Sequence<+T_co>[~Entity]<~Entity> + entities : typing.Sequence[~Entity] include_disabled : bool ''' self.entities = [Entity.from_json(o) for o in entities or []] @@ -7577,7 +10548,7 @@ class UserInfoResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~UserInfoResult]<~UserInfoResult> + results : typing.Sequence[~UserInfoResult] ''' self.results = [UserInfoResult.from_json(o) for o in results or []] @@ -7601,7 +10572,7 @@ class UserModelList(Type): _toPy = {'user-models': 'user_models'} def __init__(self, user_models=None, **unknown_fields): ''' - user_models : typing.Sequence<+T_co>[~UserModel]<~UserModel> + user_models : typing.Sequence[~UserModel] ''' self.user_models = [UserModel.from_json(o) for o in user_models or []] @@ -7619,8 +10590,8 @@ class Value(Type): instance_type : str mem : int root_disk : int - spaces : typing.Sequence<+T_co>[str] - tags : typing.Sequence<+T_co>[str] + spaces : typing.Sequence[str] + tags : typing.Sequence[str] virt_type : str ''' self.arch = arch @@ -7665,7 +10636,7 @@ class VersionResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VersionResult]<~VersionResult> + results : typing.Sequence[~VersionResult] ''' self.results = [VersionResult.from_json(o) for o in results or []] @@ -7768,12 +10739,79 @@ class VolumeAttachmentParamsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VolumeAttachmentParamsResult]<~VolumeAttachmentParamsResult> + 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'} @@ -7792,7 +10830,7 @@ class VolumeAttachmentResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VolumeAttachmentResult]<~VolumeAttachmentResult> + results : typing.Sequence[~VolumeAttachmentResult] ''' self.results = [VolumeAttachmentResult.from_json(o) for o in results or []] @@ -7803,7 +10841,7 @@ class VolumeAttachments(Type): _toPy = {'volume-attachments': 'volume_attachments'} def __init__(self, volume_attachments=None, **unknown_fields): ''' - volume_attachments : typing.Sequence<+T_co>[~VolumeAttachment]<~VolumeAttachment> + volume_attachments : typing.Sequence[~VolumeAttachment] ''' self.volume_attachments = [VolumeAttachment.from_json(o) for o in volume_attachments or []] @@ -7815,7 +10853,7 @@ class VolumeDetails(Type): def __init__(self, info=None, machine_attachments=None, status=None, storage=None, volume_tag=None, **unknown_fields): ''' info : VolumeInfo - machine_attachments : typing.Mapping<~KT, +VT_co>[str, ~VolumeAttachmentInfo]<~VolumeAttachmentInfo> + machine_attachments : typing.Mapping[str, ~VolumeAttachmentInfo] status : EntityStatus storage : StorageDetails volume_tag : str @@ -7834,7 +10872,7 @@ class VolumeDetailsListResult(Type): def __init__(self, error=None, result=None, **unknown_fields): ''' error : Error - result : typing.Sequence<+T_co>[~VolumeDetails]<~VolumeDetails> + 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 []] @@ -7846,7 +10884,7 @@ class VolumeDetailsListResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VolumeDetailsListResult]<~VolumeDetailsListResult> + results : typing.Sequence[~VolumeDetailsListResult] ''' self.results = [VolumeDetailsListResult.from_json(o) for o in results or []] @@ -7857,7 +10895,7 @@ class VolumeFilter(Type): _toPy = {'machines': 'machines'} def __init__(self, machines=None, **unknown_fields): ''' - machines : typing.Sequence<+T_co>[str] + machines : typing.Sequence[str] ''' self.machines = machines @@ -7868,7 +10906,7 @@ class VolumeFilters(Type): _toPy = {'filters': 'filters'} def __init__(self, filters=None, **unknown_fields): ''' - filters : typing.Sequence<+T_co>[~VolumeFilter]<~VolumeFilter> + filters : typing.Sequence[~VolumeFilter] ''' self.filters = [VolumeFilter.from_json(o) for o in filters or []] @@ -7897,10 +10935,10 @@ class VolumeParams(Type): def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volume_tag=None, **unknown_fields): ''' attachment : VolumeAttachmentParams - attributes : typing.Mapping<~KT, +VT_co>[str, typing.Any] + attributes : typing.Mapping[str, typing.Any] provider : str size : int - tags : typing.Mapping<~KT, +VT_co>[str, str] + tags : typing.Mapping[str, str] volume_tag : str ''' self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None @@ -7930,7 +10968,7 @@ class VolumeParamsResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VolumeParamsResult]<~VolumeParamsResult> + results : typing.Sequence[~VolumeParamsResult] ''' self.results = [VolumeParamsResult.from_json(o) for o in results or []] @@ -7954,7 +10992,7 @@ class VolumeResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~VolumeResult]<~VolumeResult> + results : typing.Sequence[~VolumeResult] ''' self.results = [VolumeResult.from_json(o) for o in results or []] @@ -7965,7 +11003,7 @@ class Volumes(Type): _toPy = {'volumes': 'volumes'} def __init__(self, volumes=None, **unknown_fields): ''' - volumes : typing.Sequence<+T_co>[~Volume]<~Volume> + volumes : typing.Sequence[~Volume] ''' self.volumes = [Volume.from_json(o) for o in volumes or []] @@ -7989,7 +11027,7 @@ class WatchContainers(Type): _toPy = {'params': 'params'} def __init__(self, params=None, **unknown_fields): ''' - params : typing.Sequence<+T_co>[~WatchContainer]<~WatchContainer> + params : typing.Sequence[~WatchContainer] ''' self.params = [WatchContainer.from_json(o) for o in params or []] @@ -8015,6 +11053,6 @@ class ZoneResults(Type): _toPy = {'results': 'results'} def __init__(self, results=None, **unknown_fields): ''' - results : typing.Sequence<+T_co>[~ZoneResult]<~ZoneResult> + results : typing.Sequence[~ZoneResult] ''' self.results = [ZoneResult.from_json(o) for o in results or []] diff --git a/modules/libjuju/juju/client/connection.py b/modules/libjuju/juju/client/connection.py index 13770a5..f2150b7 100644 --- a/modules/libjuju/juju/client/connection.py +++ b/modules/libjuju/juju/client/connection.py @@ -104,6 +104,8 @@ class Connection: bakery_client=None, loop=None, max_frame_size=None, + retries=3, + retry_backoff=10, ): """Connect to the websocket. @@ -125,6 +127,11 @@ class Connection: :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: @@ -159,6 +166,9 @@ class Connection: 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) @@ -446,16 +456,30 @@ class Connection: tasks = [self.loop.create_task(_try_endpoint(endpoint, cacert, 0.1 * i)) for i, (endpoint, cacert) in enumerate(endpoints)] - for task in asyncio.as_completed(tasks, loop=self.loop): - try: - result = await task - break - except ConnectionError: - continue # ignore; try another endpoint - else: - raise errors.JujuConnectionError( - 'Unable to connect to any endpoint: {}'.format(', '.join([ - endpoint for endpoint, cacert in 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] @@ -463,7 +487,7 @@ class Connection: self.endpoint = result[2] self.cacert = result[3] self._receiver_task.start() - log.info("Driver connected to juju %s", self.addr) + log.debug("Driver connected to juju %s", self.addr) self.monitor.close_called.clear() async def _connect_with_login(self, endpoints): @@ -562,7 +586,7 @@ class _Task: def start(self): async def run(): try: - return await(self.task()) + return await self.task() finally: self.stopped.set() self.stopped.clear() diff --git a/modules/libjuju/juju/client/facade.py b/modules/libjuju/juju/client/facade.py index 9e2aabf..ec20c38 100644 --- a/modules/libjuju/juju/client/facade.py +++ b/modules/libjuju/juju/client/facade.py @@ -16,10 +16,10 @@ from . import codegen _marker = object() -JUJU_VERSION = re.compile('[0-9]+\.[0-9-]+[\.\-][0-9a-z]+(\.[0-9]+)?') +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'] + 'ModelInfo', 'ApplicationDeploy'] # Map basic types to Python's typing with a callable @@ -49,14 +49,15 @@ def lookup_facade(name, version): of the correct client.py file. """ - try: - facade = getattr(CLIENTS[str(version)], name) - except KeyError: - raise ImportError("No facades found for version {}".format(version)) - except AttributeError: - raise ImportError( - "No facade with name '{}' in version {}".format(name, version)) - return facade + 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)) ''' @@ -73,7 +74,14 @@ class TypeFactory: @param connection: initialized Connection object. """ - version = connection.facades[cls.__name__[:-6]] + 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() 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/client/schemas-juju-latest.json b/modules/libjuju/juju/client/schemas-juju-latest.json new file mode 120000 index 0000000..37e41ea --- /dev/null +++ b/modules/libjuju/juju/client/schemas-juju-latest.json @@ -0,0 +1 @@ +schemas-juju-2.5-rc1.json \ No newline at end of file diff --git a/modules/libjuju/juju/controller.py b/modules/libjuju/juju/controller.py index b4c544e..d3902ba 100644 --- a/modules/libjuju/juju/controller.py +++ b/modules/libjuju/juju/controller.py @@ -30,7 +30,8 @@ class Controller: `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. + :param jujudata JujuData: The source for current controller + information. """ self._connector = connector.Connector( loop=loop, @@ -169,7 +170,7 @@ class Controller: await self._connector.disconnect() async def add_credential(self, name=None, credential=None, cloud=None, - owner=None): + owner=None, force=False): """Add or update a credential to the controller. :param str name: Name of new credential. If None, the default @@ -181,6 +182,9 @@ class Controller: 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: @@ -193,7 +197,8 @@ class Controller: raise errors.JujuError('Name must be provided for credential') if not credential: - name, credential = self._connector.jujudata.load_credential(cloud, name) + name, credential = self._connector.jujudata.load_credential(cloud, + name) if credential is None: raise errors.JujuError( 'Unable to find credential: {}'.format(name)) @@ -215,12 +220,19 @@ class Controller: log.debug('Uploading credential %s', name) cloud_facade = client.CloudFacade.from_connection(self.connection()) - await cloud_facade.UpdateCredentials([ + 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( @@ -288,10 +300,12 @@ class Controller: return model - async def destroy_models(self, *models): + 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 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() @@ -307,10 +321,15 @@ class Controller: ', '.join(models) ) - await model_facade.DestroyModels([ - client.Entity(tag.model(model)) - for model in 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): @@ -323,12 +342,14 @@ class Controller: """ if not display_name: display_name = username - user_facade = client.UserManagerFacade.from_connection(self.connection()) + user_facade = client.UserManagerFacade.from_connection( + self.connection()) users = [client.AddUser(display_name=display_name, username=username, password=password)] - await user_facade.AddUser(users) - return await self.get_user(username) + 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. @@ -345,10 +366,24 @@ class Controller: :param str password: New password """ - user_facade = client.UserManagerFacade.from_connection(self.connection()) + 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. @@ -366,7 +401,8 @@ class Controller: :param str username: Username """ - user_facade = client.UserManagerFacade.from_connection(self.connection()) + user_facade = client.UserManagerFacade.from_connection( + self.connection()) entity = client.Entity(tag.user(username)) return await user_facade.DisableUser([entity]) @@ -374,7 +410,8 @@ class Controller: """Re-enable a previously disabled user. """ - user_facade = client.UserManagerFacade.from_connection(self.connection()) + user_facade = client.UserManagerFacade.from_connection( + self.connection()) entity = client.Entity(tag.user(username)) return await user_facade.EnableUser([entity]) @@ -439,7 +476,7 @@ class Controller: def get_payloads(self, *patterns): """Return list of known payloads. - :param str \*patterns: Patterns to match against + :param str *patterns: Patterns to match against Each pattern will be checked against the following info in Juju:: @@ -488,10 +525,12 @@ class Controller: await model._connect_direct(**kwargs) return model - async def get_user(self, username): + 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( @@ -507,7 +546,7 @@ class Controller: return None raise if response.results and response.results[0].result: - return User(self, 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): @@ -562,7 +601,8 @@ class Controller: 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). + 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. @@ -588,6 +628,6 @@ class Controller: model_facade = client.ModelManagerFacade.from_connection( self.connection()) user = tag.user(username) - model = tag.model(self.info.uuid) + model = tag.model(model_uuid) changes = client.ModifyModelAccess(acl, 'revoke', model, user) return await model_facade.ModifyModelAccess([changes]) diff --git a/modules/libjuju/juju/juju.py b/modules/libjuju/juju/juju.py index a9fcbbe..444155f 100644 --- a/modules/libjuju/juju/juju.py +++ b/modules/libjuju/juju/juju.py @@ -19,7 +19,7 @@ class Juju(object): def agree(self, *terms): """Agree to the terms of a charm. - :param str \*terms: Terms to agree to + :param str *terms: Terms to agree to """ raise NotImplementedError() diff --git a/modules/libjuju/juju/machine.py b/modules/libjuju/juju/machine.py index a46135c..39bfa11 100644 --- a/modules/libjuju/juju/machine.py +++ b/modules/libjuju/juju/machine.py @@ -21,7 +21,7 @@ class Machine(model.ModelEntity): if not model.info: await utils.run_with_interrupt(model.get_info(), model._watch_stopping, - model.loop) + loop=model.loop) if model._watch_stopping.is_set(): return if model.info.agent_version < client.Number.from_json('2.2.3'): @@ -50,7 +50,7 @@ class Machine(model.ModelEntity): full_status = await utils.run_with_interrupt(model.get_status(), model._watch_stopping, - model.loop) + loop=model.loop) if model._watch_stopping.is_set(): return @@ -146,7 +146,8 @@ class Machine(model.ModelEntity): :param str destination: Remote destination of transferred files :param str user: Remote username :param bool proxy: Proxy through the Juju API server - :param str scp_opts: Additional options to the `scp` command + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list """ if proxy: raise NotImplementedError('proxy option is not implemented') @@ -163,7 +164,8 @@ class Machine(model.ModelEntity): :param str destination: Local destination of transferred files :param str user: Remote username :param bool proxy: Proxy through the Juju API server - :param str scp_opts: Additional options to the `scp` command + :param scp_opts: Additional options to the `scp` command + :type scp_opts: str or list """ if proxy: raise NotImplementedError('proxy option is not implemented') @@ -181,10 +183,10 @@ class Machine(model.ModelEntity): '-i', os.path.expanduser('~/.local/share/juju/ssh/juju_id_rsa'), '-o', 'StrictHostKeyChecking=no', '-q', - '-B', - source, destination + '-B' ] - cmd += scp_opts.split() + 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() diff --git a/modules/libjuju/juju/model.py b/modules/libjuju/juju/model.py index 37e8cd6..bd7d430 100644 --- a/modules/libjuju/juju/model.py +++ b/modules/libjuju/juju/model.py @@ -805,7 +805,7 @@ class Model: results = await utils.run_with_interrupt( allwatcher.Next(), self._watch_stopping, - self._connector.loop) + loop=self._connector.loop) except JujuAPIError as e: if 'watcher was stopped' not in str(e): raise @@ -1094,7 +1094,7 @@ class Model: (optional) list of existing subnet CIDRs with it. :param str name: Name of the space - :param \*cidrs: Optional list of existing subnet CIDRs + :param *cidrs: Optional list of existing subnet CIDRs """ raise NotImplementedError() @@ -1115,7 +1115,7 @@ class 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 + :param str *zones: Zone(s) in which the subnet resides """ raise NotImplementedError() @@ -1129,7 +1129,7 @@ class Model: def block(self, *commands): """Add a new block to this model. - :param str \*commands: The commands to block. Valid values are + :param str *commands: The commands to block. Valid values are 'all-changes', 'destroy-model', 'remove-object' """ @@ -1166,7 +1166,7 @@ class Model: :param str name: Name to give the storage pool :param str provider_type: Pool provider type - :param \*\*pool_config: key/value pool configuration pairs + :param **pool_config: key/value pool configuration pairs """ raise NotImplementedError() @@ -1215,7 +1215,7 @@ class Model: 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): + to=None, devices=None): """Deploy a new service or bundle. :param str entity_url: Charm or bundle url @@ -1266,7 +1266,8 @@ class Model: if is_local: entity_id = entity_url.replace('local:', '') else: - entity = await self.charmstore.entity(entity_url, channel=channel) + entity = await self.charmstore.entity(entity_url, channel=channel, + include_stats=False) entity_id = entity['Id'] client_facade = client.ClientFacade.from_connection(self.connection()) @@ -1304,7 +1305,7 @@ class Model: # actually support them yet anyway resources = await self._add_store_resources(application_name, entity_id, - entity) + entity=entity) else: if not application_name: metadata = yaml.load(metadata_path.read_text()) @@ -1330,13 +1331,16 @@ class Model: storage=storage, channel=channel, num_units=num_units, - placement=parse_placement(to) + placement=parse_placement(to), + devices=devices, ) - async def _add_store_resources(self, application, entity_url, entity=None): + 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) + entity = await self.charmstore.entity(entity_url, + include_stats=False) resources = [ { 'description': resource['Description'], @@ -1350,6 +1354,17 @@ class Model: } 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 @@ -1366,7 +1381,8 @@ class Model: async def _deploy(self, charm_url, application, series, config, constraints, endpoint_bindings, resources, storage, - channel=None, num_units=None, placement=None): + channel=None, num_units=None, placement=None, + devices=None): """Logic shared between `Model.deploy` and `BundleHandler.deploy`. """ log.info('Deploying %s', charm_url) @@ -1390,7 +1406,8 @@ class Model: num_units=num_units, resources=resources, storage=storage, - placement=placement + placement=placement, + devices=devices, ) result = await app_facade.Deploy([app]) errors = [r.error.message for r in result.results if r.error] @@ -1471,18 +1488,20 @@ class Model: 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 + # 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) + 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): @@ -1578,7 +1597,7 @@ class Model: def remove_machine(self, *machine_ids): """Remove a machine from this model. - :param str \*machine_ids: Ids of the machines to remove + :param str *machine_ids: Ids of the machines to remove """ raise NotImplementedError() @@ -1755,7 +1774,7 @@ class Model: def unblock(self, *commands): """Unblock an operation that would alter this model. - :param str \*commands: The commands to unblock. Valid values are + :param str *commands: The commands to unblock. Valid values are 'all-changes', 'destroy-model', 'remove-object' """ @@ -1764,7 +1783,7 @@ class Model: def unset_config(self, *keys): """Unset configuration on this model. - :param str \*keys: The keys to unset + :param str *keys: The keys to unset """ raise NotImplementedError() @@ -1804,7 +1823,7 @@ class Model: async def get_metrics(self, *tags): """Retrieve metrics. - :param str \*tags: Tags of entities from which to 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 @@ -1863,6 +1882,8 @@ class BundleHandler: 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( @@ -1920,11 +1941,11 @@ class BundleHandler: return bundle async def fetch_plan(self, entity_id): - is_local = not entity_id.startswith('cs:') + is_store_url = entity_id.startswith('cs:') - if is_local and os.path.isfile(entity_id): + if not is_store_url and os.path.isfile(entity_id): bundle_yaml = Path(entity_id).read_text() - elif is_local and os.path.isdir(entity_id): + 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, @@ -1933,7 +1954,7 @@ class BundleHandler: self.bundle = yaml.safe_load(bundle_yaml) self.bundle = await self._handle_local_charms(self.bundle) - self.plan = await self.client_facade.GetBundleChanges( + self.plan = await self.bundle_facade.GetChanges( yaml.dump(self.bundle)) if self.plan.errors: @@ -2049,7 +2070,7 @@ class BundleHandler: return await self.model.add_relation(*endpoints) async def deploy(self, charm, series, application, options, constraints, - storage, endpoint_bindings, resources): + storage, endpoint_bindings, *args): """ :param charm string: Charm holds the URL of the charm to be used to deploy this @@ -2074,17 +2095,35 @@ class BundleHandler: :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) - # the bundle plan doesn't actually do anything with resources, even - # though it ostensibly gives us something (None) for that param + + 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) + resources = await self.model._add_store_resources( + application, charm, overrides=resources) await self.model._deploy( charm_url=charm, application=application, @@ -2094,6 +2133,8 @@ class BundleHandler: endpoint_bindings=endpoint_bindings, resources=resources, storage=storage, + devices=devices, + num_units=num_units, ) return application @@ -2125,6 +2166,20 @@ class BundleHandler: 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: @@ -2160,9 +2215,9 @@ class CharmStore: """ Async wrapper around theblues.charmstore.CharmStore """ - def __init__(self, loop): + def __init__(self, loop, cs_timeout=20): self.loop = loop - self._cs = theblues.charmstore.CharmStore(timeout=5) + self._cs = theblues.charmstore.CharmStore(timeout=cs_timeout) def __getattr__(self, name): """ @@ -2205,9 +2260,9 @@ class CharmArchiveGenerator: Ignored:: - * build/\* - This is used for packing the charm itself and any + * build/* - This is used for packing the charm itself and any similar tasks. - * \*/.\* - Hidden files are all ignored for now. This will most + * */.* - Hidden files are all ignored for now. This will most likely be changed into a specific ignore list (.bzr, etc) diff --git a/modules/libjuju/juju/provisioner.py b/modules/libjuju/juju/provisioner.py index 91747a4..2886574 100644 --- a/modules/libjuju/juju/provisioner.py +++ b/modules/libjuju/juju/provisioner.py @@ -12,13 +12,12 @@ import uuid arches = [ - [re.compile("amd64|x86_64"), "amd64"], - [re.compile("i?[3-9]86"), "i386"], - [re.compile("(arm$)|(armv.*)"), "armhf"], - [re.compile("aarch64"), "arm64"], - [re.compile("ppc64|ppc64el|ppc64le"), "ppc64el"], - [re.compile("ppc64|ppc64el|ppc64le"), "s390x"], - + [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"], ] @@ -158,6 +157,7 @@ class SSHProvisioner: # TODO: Test this on an image without the ubuntu user setup. auth_user = self.user + ssh = None try: # Run w/o allocating a pty, so we fail if sudo prompts for a passwd ssh = self._get_ssh_client( @@ -234,7 +234,7 @@ class SSHProvisioner: info['series'] = lines[0].strip() info['arch'] = normalize_arch(lines[1].strip()) - memKb = re.split('\s+', lines[2])[1] + memKb = re.split(r'\s+', lines[2])[1] # Convert megabytes -> kilobytes info['mem'] = round(int(memKb) / 1024) @@ -251,8 +251,8 @@ class SSHProvisioner: cores = line.split(":")[1].strip() if physical_id not in recorded.keys(): - info['cpu-cores'] += cores - recorded[physical_id] = True + info['cpu-cores'] += cores + recorded[physical_id] = True return info diff --git a/modules/libjuju/juju/unit.py b/modules/libjuju/juju/unit.py index 3be27f2..e8ecd96 100644 --- a/modules/libjuju/juju/unit.py +++ b/modules/libjuju/juju/unit.py @@ -122,7 +122,8 @@ class Unit(model.ModelEntity): """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 + :param int timeout: Time, in seconds, to wait before command is + considered failed :returns: A :class:`juju.action.Action` instance. """ @@ -148,7 +149,7 @@ class Unit(model.ModelEntity): """Run an action on this unit. :param str action_name: Name of action to run - :param \*\*params: Action parameters + :param **params: Action parameters :returns: A :class:`juju.action.Action` instance. Note that this only enqueues the action. You will need to call @@ -186,7 +187,8 @@ class Unit(model.ModelEntity): :param str destination: Remote destination of transferred files :param str user: Remote username :param bool proxy: Proxy through the Juju API server - :param str scp_opts: Additional options to the `scp` command + :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) @@ -199,7 +201,8 @@ class Unit(model.ModelEntity): :param str destination: Local destination of transferred files :param str user: Remote username :param bool proxy: Proxy through the Juju API server - :param str scp_opts: Additional options to the `scp` command + :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) diff --git a/modules/libjuju/juju/user.py b/modules/libjuju/juju/user.py index 01710d7..389d210 100644 --- a/modules/libjuju/juju/user.py +++ b/modules/libjuju/juju/user.py @@ -8,9 +8,10 @@ log = logging.getLogger(__name__) class User(object): - def __init__(self, controller, user_info): + 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): @@ -48,6 +49,10 @@ class User(object): 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. """ diff --git a/modules/libjuju/juju/utils.py b/modules/libjuju/juju/utils.py index 3565fd6..1038ed1 100644 --- a/modules/libjuju/juju/utils.py +++ b/modules/libjuju/juju/utils.py @@ -3,6 +3,9 @@ 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): @@ -82,32 +85,81 @@ async def block_until(*conditions, timeout=None, wait_period=0.5, loop=None): await asyncio.wait_for(_block(), timeout, loop=loop) -async def run_with_interrupt(task, event, loop=None): +async def run_with_interrupt(task, *events, loop=None): """ - Awaits a task while allowing it to be interrupted by an `asyncio.Event`. + Awaits a task while allowing it to be interrupted by one or more + `asyncio.Event`s. - If the task finishes without the event becoming set, the results of the - task will be returned. If the event becomes set, the task will be - cancelled ``None`` will be returned. + 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 event: An `asyncio.Event` which, if set, will interrupt `task` - and cause it to be cancelled. + :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() - event_task = loop.create_task(event.wait()) - done, pending = await asyncio.wait([task, event_task], + 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() - exception = [f.exception() for f in done - if f is not event_task and f.exception()] - if exception: - raise exception[0] - result = [f.result() for f in done if f is not event_task] - if result: - return result[0] + 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/setup.py b/modules/libjuju/setup.py index 67e3707..7134677 100644 --- a/modules/libjuju/setup.py +++ b/modules/libjuju/setup.py @@ -34,8 +34,9 @@ setup( 'pyRFC3339>=1.0,<2.0', 'pyyaml>=3.0,<=4.2', 'theblues>=0.3.8,<1.0', - 'websockets>=4.0,<7.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', diff --git a/modules/libjuju/tests/base.py b/modules/libjuju/tests/base.py index 97eea53..600372c 100644 --- a/modules/libjuju/tests/base.py +++ b/modules/libjuju/tests/base.py @@ -21,7 +21,6 @@ def is_bootstrapped(): return False - bootstrapped = pytest.mark.skipif( not is_bootstrapped(), reason='bootstrapped Juju environment required') diff --git a/modules/libjuju/tests/bundle/mini-bundle.yaml b/modules/libjuju/tests/bundle/mini-bundle.yaml index e351a12..84d9a61 100644 --- a/modules/libjuju/tests/bundle/mini-bundle.yaml +++ b/modules/libjuju/tests/bundle/mini-bundle.yaml @@ -1,3 +1,9 @@ +series: xenial applications: - myapp: - charm: cs:xenial/ubuntu-0 + 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/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/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/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_connection.py b/modules/libjuju/tests/integration/test_connection.py index 79ad9d0..6647a03 100644 --- a/modules/libjuju/tests/integration/test_connection.py +++ b/modules/libjuju/tests/integration/test_connection.py @@ -1,17 +1,28 @@ 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' @@ -67,3 +78,159 @@ async def test_reconnect(event_loop): 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 index 93e2883..6423a98 100644 --- a/modules/libjuju/tests/integration/test_controller.py +++ b/modules/libjuju/tests/integration/test_controller.py @@ -21,6 +21,7 @@ async def test_add_remove_user(event_loop): 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) @@ -76,6 +77,33 @@ async def test_change_user_password(event_loop): 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): @@ -91,9 +119,9 @@ async def test_grant_revoke(event_loop): fresh = await controller.get_user(username) # fetch fresh copy assert fresh.access == 'superuser' await user.revoke() - assert user.access is '' + assert user.access == '' fresh = await controller.get_user(username) # fetch fresh copy - assert fresh.access is '' + assert fresh.access == '' @base.bootstrapped diff --git a/modules/libjuju/tests/integration/test_machine.py b/modules/libjuju/tests/integration/test_machine.py index 9a5f075..070208a 100644 --- a/modules/libjuju/tests/integration/test_machine.py +++ b/modules/libjuju/tests/integration/test_machine.py @@ -58,8 +58,8 @@ async def test_scp(event_loop): with NamedTemporaryFile() as f: f.write(b'testcontents') f.flush() - await machine.scp_to(f.name, 'testfile') + await machine.scp_to(f.name, 'testfile', scp_opts='-p') with NamedTemporaryFile() as f: - await machine.scp_from('testfile', f.name) + 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 index 1cba79a..58766b4 100644 --- a/modules/libjuju/tests/integration/test_model.py +++ b/modules/libjuju/tests/integration/test_model.py @@ -2,6 +2,7 @@ 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 @@ -25,7 +26,7 @@ SSH_KEY = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsYMJGNGG74HAJha3n2CFmWYsOOaORn @base.bootstrapped @pytest.mark.asyncio -async def test_deploy_local_bundle(event_loop): +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' @@ -34,8 +35,52 @@ async def test_deploy_local_bundle(event_loop): await model.deploy(str(bundle_path)) await model.deploy(str(mini_bundle_file_path)) - for app in ('wordpress', 'mysql', 'myapp'): - assert app in model.applications + 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 @@ -143,18 +188,8 @@ async def test_add_manual_machine_ssh(event_loop): "~/.local/share/juju/ssh/juju_id_rsa.pub" ) - # Use the self-signed cert generated by lxc on first run - crt = os.path.expanduser('~/snap/lxd/current/.config/lxc/client.crt') - assert os.path.exists(crt) - - key = os.path.expanduser('~/snap/lxd/current/.config/lxc/client.key') - assert os.path.exists(key) - - client = pylxd.Client( - endpoint="https://127.0.0.1:8443", - cert=(crt, key), - verify=False, - ) + # connect using the local unix socket + client = pylxd.Client() test_name = "test-{}-add-manual-machine-ssh".format( uuid.uuid4().hex[-4:] @@ -167,7 +202,9 @@ async def test_add_manual_machine_ssh(event_loop): profile = client.profiles.create( test_name, - config={'user.user-data': '#cloud-config\nssh_authorized_keys:\n- {}'.format(public_key)}, + config={'user.user-data': '#cloud-config\n' + 'ssh_authorized_keys:\n' + '- {}'.format(public_key)}, devices={ 'root': {'path': '/', 'pool': 'default', 'type': 'disk'}, 'eth0': { @@ -206,19 +243,28 @@ async def test_add_manual_machine_ssh(event_loop): 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) - if host: - # add a new manual machine - machine1 = await model.add_machine(spec='ssh:{}@{}:{}'.format( - "ubuntu", - host['address'], - private_key_path, - )) + 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 @@ -283,7 +329,7 @@ async def test_relate(event_loop): my_relation = await run_with_interrupt(model.add_relation( 'ubuntu', 'nrpe', - ), timeout, event_loop) + ), timeout, loop=event_loop) assert isinstance(my_relation, Relation) @@ -307,7 +353,9 @@ async def test_explicit_loop_threaded(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)) + _deploy_in_loop(new_loop, + model_name, + model._connector.jujudata)) f.result() await model._wait_for_new('application', 'ubuntu') assert 'ubuntu' in model.applications @@ -347,6 +395,29 @@ async def test_store_resources_bundle(event_loop): # 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 @@ -392,6 +463,7 @@ async def test_config(event_loop): assert result['extra-info'].source == 'model' assert result['extra-info'].value == 'booyah' + @base.bootstrapped @pytest.mark.asyncio async def test_set_constraints(event_loop): diff --git a/modules/libjuju/tests/unit/test_controller.py b/modules/libjuju/tests/unit/test_controller.py index 44f488f..b95b5ee 100644 --- a/modules/libjuju/tests/unit/test_controller.py +++ b/modules/libjuju/tests/unit/test_controller.py @@ -86,7 +86,7 @@ class TestControllerConnect(asynctest.TestCase): max_frame_size='max_frame_size') @asynctest.patch('juju.client.client.CloudFacade') - async def test_file_cred(self, mock_cf): + async def test_file_cred_v2(self, mock_cf): with NamedTemporaryFile() as tempfile: tempfile.close() temppath = Path(tempfile.name) @@ -97,7 +97,9 @@ class TestControllerConnect(asynctest.TestCase): c = Controller(jujudata=jujudata) c._connector = base.AsyncMock() up_creds = base.AsyncMock() - mock_cf.from_connection().UpdateCredentials = up_creds + cloud_facade = mock_cf.from_connection() + cloud_facade.version = 2 + cloud_facade.UpdateCredentials = up_creds await c.add_credential( name='name', credential=cred, @@ -108,3 +110,31 @@ class TestControllerConnect(asynctest.TestCase): 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_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 index e0d6a31..350a1fc 100644 --- a/modules/libjuju/tox.ini +++ b/modules/libjuju/tox.ini @@ -20,12 +20,15 @@ passenv = HOME TEST_AGENTS deps = + asynctest + ipdb + mock pytest pytest-asyncio pytest-xdist - mock - asynctest - ipdb + 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 @@ -38,20 +41,17 @@ commands = [testenv:lint] envdir = {toxworkdir}/py3 commands = - flake8 --ignore E501 {posargs} juju tests -deps = - flake8 - -[testenv:lint] -envdir = {toxworkdir}/py35 -commands = - flake8 --ignore E501 {posargs} juju + flake8 --ignore E501,W504 {posargs} juju tests deps = flake8 [testenv:integration] envdir = {toxworkdir}/py3 -commands = py.test --tb native -ra -v -s -n auto -k 'integration' -m 'not serial' {posargs} +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