From 769d19789b142ca3c1ffd0a172e9ac29cfb4b40e Mon Sep 17 00:00:00 2001 From: Tim Van Steenburgh Date: Fri, 24 Jun 2016 21:03:26 -0400 Subject: [PATCH] Hook up Unit.run() to api --- Makefile | 10 +- examples/unitrun.py | 47 + juju/client/_client.py | 9638 +++++------ juju/client/connection.py | 24 +- juju/client/facade.py | 8 +- juju/client/schemas-20160608.json | 25305 ++++++++++++++++++++++++++++ juju/client/watcher.py | 6 +- juju/model.py | 3 + juju/unit.py | 25 +- tests/client/test_client.py | 2 +- 10 files changed, 30290 insertions(+), 4778 deletions(-) create mode 100644 examples/unitrun.py create mode 100644 juju/client/schemas-20160608.json diff --git a/Makefile b/Makefile index 64e6ba5..4d10060 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,16 @@ PY := .tox/py35/bin/python3.5 +clean: + find . -name __pycache__ -type d -exec rm -r {} + + find . -name *.pyc -delete + .tox: tox -r --notest -.phony: client client: - $(PY) -m juju.client.facade -s juju/client/schemas.json -o juju/client/_client.py + $(PY) -m juju.client.facade -s juju/client/schemas-20160608.json -o juju/client/_client.py -.phony: test test: tox + +.phony: clean client test diff --git a/examples/unitrun.py b/examples/unitrun.py new file mode 100644 index 0000000..7e3c490 --- /dev/null +++ b/examples/unitrun.py @@ -0,0 +1,47 @@ +""" +Run this one against a model that has at least one unit deployed. + +""" +import asyncio +import functools + +from juju.model import Model +from juju.unit import Unit +from juju.client.connection import Connection + + +loop = asyncio.get_event_loop() +conn = loop.run_until_complete(Connection.connect_current()) + +_seen_units = set() + + +async def run_stuff_on_unit(unit): + if unit.Name in _seen_units: + return + + print('Running command on unit', unit.Name) + # unit.run() returns a client.ActionResults instance + action_results = await unit.run('unit-get public-address') + _seen_units.add(unit.Name) + action_result = action_results.results[0] + + print('Results from unit', unit.Name) + print(action_result.__dict__) + + +def on_model_change(delta, old, new, model): + if isinstance(new, Unit): + task = loop.create_task(run_stuff_on_unit(new)) + + if delta.entity == 'action': + print(delta.data) + print(new) + + +async def watch_model(): + model = Model(conn) + model.add_observer(on_model_change) + await model.watch() + +loop.run_until_complete(watch_model()) diff --git a/juju/client/_client.py b/juju/client/_client.py index 68dd8bf..a792fd9 100644 --- a/juju/client/_client.py +++ b/juju/client/_client.py @@ -5,8 +5,8 @@ from juju.client.facade import Type, ReturnMapping class Action(Type): - _toSchema = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'} - _toPy = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'} + _toSchema = {'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag', 'name': 'name'} + _toPy = {'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag', 'name': 'name'} def __init__(self, name=None, parameters=None, receiver=None, tag=None): ''' name : str @@ -21,8 +21,8 @@ class Action(Type): class ActionResult(Type): - _toSchema = {'action': 'action', 'completed': 'completed', 'output': 'output', 'status': 'status', 'started': 'started', 'message': 'message', 'enqueued': 'enqueued', 'error': 'error'} - _toPy = {'action': 'action', 'completed': 'completed', 'output': 'output', 'status': 'status', 'started': 'started', 'message': 'message', 'enqueued': 'enqueued', 'error': 'error'} + _toSchema = {'action': 'action', 'completed': 'completed', 'output': 'output', 'started': 'started', 'enqueued': 'enqueued', 'message': 'message', 'error': 'error', 'status': 'status'} + _toPy = {'action': 'action', 'completed': 'completed', 'output': 'output', 'started': 'started', 'enqueued': 'enqueued', 'message': 'message', 'error': 'error', 'status': 'status'} def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None): ''' action : Action @@ -54,19 +54,31 @@ class ActionResults(Type): self.results = [ActionResult.from_json(o) for o in results or []] +class ActionSpec(Type): + _toSchema = {'description': 'Description', 'params': 'Params'} + _toPy = {'Description': 'description', 'Params': 'params'} + def __init__(self, description=None, params=None): + ''' + description : str + params : typing.Mapping[str, typing.Any] + ''' + self.description = description + self.params = params + + class Actions(Type): - _toSchema = {'actions': 'actions'} - _toPy = {'actions': 'actions'} - def __init__(self, actions=None): + _toSchema = {'actionspecs': 'ActionSpecs'} + _toPy = {'ActionSpecs': 'actionspecs'} + def __init__(self, actionspecs=None): ''' - actions : typing.Sequence[~Action] + actionspecs : typing.Mapping[str, ~ActionSpec] ''' - self.actions = [Action.from_json(o) for o in actions or []] + self.actionspecs = {k: ActionSpec.from_json(v) for k, v in (actionspecs or dict()).items()} class ActionsByName(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'} - _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} + _toSchema = {'name': 'name', 'actions': 'actions', 'error': 'error'} + _toPy = {'name': 'name', 'actions': 'actions', 'error': 'error'} def __init__(self, actions=None, error=None, name=None): ''' actions : typing.Sequence[~ActionResult] @@ -89,8 +101,8 @@ class ActionsByNames(Type): class ActionsByReceiver(Type): - _toSchema = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'} - _toPy = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'} + _toSchema = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'} + _toPy = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'} def __init__(self, actions=None, error=None, receiver=None): ''' actions : typing.Sequence[~ActionResult] @@ -112,6 +124,30 @@ class ActionsByReceivers(Type): self.actions = [ActionsByReceiver.from_json(o) for o in actions or []] +class ApplicationCharmActionsResult(Type): + _toSchema = {'applicationtag': 'ApplicationTag', 'actions': 'actions', 'error': 'error'} + _toPy = {'actions': 'actions', 'ApplicationTag': 'applicationtag', 'error': 'error'} + def __init__(self, applicationtag=None, actions=None, error=None): + ''' + applicationtag : str + actions : Actions + error : Error + ''' + self.applicationtag = applicationtag + self.actions = Actions.from_json(actions) if actions else None + self.error = Error.from_json(error) if error else None + + +class ApplicationsCharmActionsResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~ApplicationCharmActionsResult] + ''' + self.results = [ApplicationCharmActionsResult.from_json(o) for o in results or []] + + class Entities(Type): _toSchema = {'entities': 'Entities'} _toPy = {'Entities': 'entities'} @@ -133,8 +169,8 @@ class Entity(Type): class Error(Type): - _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'} - _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'} + _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'} + _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'} def __init__(self, code=None, info=None, message=None): ''' code : str @@ -148,7 +184,7 @@ class Error(Type): class ErrorInfo(Type): _toSchema = {'macaroonpath': 'MacaroonPath', 'macaroon': 'Macaroon'} - _toPy = {'MacaroonPath': 'macaroonpath', 'Macaroon': 'macaroon'} + _toPy = {'Macaroon': 'macaroon', 'MacaroonPath': 'macaroonpath'} def __init__(self, macaroon=None, macaroonpath=None): ''' macaroon : Macaroon @@ -189,8 +225,8 @@ class FindTagsResults(Type): class Macaroon(Type): - _toSchema = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id_': 'id', 'data': 'data'} - _toPy = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id': 'id_', 'data': 'data'} + _toSchema = {'caveats': 'caveats', 'location': 'location', 'data': 'data', 'id_': 'id', 'sig': 'sig'} + _toPy = {'caveats': 'caveats', 'location': 'location', 'data': 'data', 'sig': 'sig', 'id': 'id_'} def __init__(self, caveats=None, data=None, id_=None, location=None, sig=None): ''' caveats : typing.Sequence[~caveat] @@ -207,50 +243,26 @@ class Macaroon(Type): class RunParams(Type): - _toSchema = {'timeout': 'Timeout', 'machines': 'Machines', 'units': 'Units', 'services': 'Services', 'commands': 'Commands'} - _toPy = {'Services': 'services', 'Units': 'units', 'Machines': 'machines', 'Commands': 'commands', 'Timeout': 'timeout'} - def __init__(self, commands=None, machines=None, services=None, timeout=None, units=None): + _toSchema = {'units': 'Units', 'applications': 'Applications', 'commands': 'Commands', 'machines': 'Machines', 'timeout': 'Timeout'} + _toPy = {'Applications': 'applications', 'Commands': 'commands', 'Timeout': 'timeout', 'Units': 'units', 'Machines': 'machines'} + def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None): ''' + applications : typing.Sequence[str] commands : str machines : typing.Sequence[str] - services : typing.Sequence[str] timeout : int units : typing.Sequence[str] ''' + self.applications = applications self.commands = commands self.machines = machines - self.services = services self.timeout = timeout self.units = units -class ServiceCharmActionsResult(Type): - _toSchema = {'actions': 'actions', 'error': 'error', 'servicetag': 'servicetag'} - _toPy = {'actions': 'actions', 'error': 'error', 'servicetag': 'servicetag'} - def __init__(self, actions=None, error=None, servicetag=None): - ''' - actions : Actions - error : Error - servicetag : str - ''' - self.actions = Actions.from_json(actions) if actions else None - self.error = Error.from_json(error) if error else None - self.servicetag = servicetag - - -class ServicesCharmActionsResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): - ''' - results : typing.Sequence[~ServiceCharmActionsResult] - ''' - self.results = [ServiceCharmActionsResult.from_json(o) for o in results or []] - - class caveat(Type): - _toSchema = {'location': 'location', 'caveatid': 'caveatId', 'verificationid': 'verificationId'} - _toPy = {'location': 'location', 'caveatId': 'caveatid', 'verificationId': 'verificationid'} + _toSchema = {'caveatid': 'caveatId', 'location': 'location', 'verificationid': 'verificationId'} + _toPy = {'verificationId': 'verificationid', 'location': 'location', 'caveatId': 'caveatid'} def __init__(self, caveatid=None, location=None, verificationid=None): ''' caveatid : packet @@ -263,8 +275,8 @@ class caveat(Type): class packet(Type): - _toSchema = {'headerlen': 'headerLen', 'start': 'start', 'totallen': 'totalLen'} - _toPy = {'totalLen': 'totallen', 'headerLen': 'headerlen', 'start': 'start'} + _toSchema = {'start': 'start', 'totallen': 'totalLen', 'headerlen': 'headerLen'} + _toPy = {'start': 'start', 'totalLen': 'totallen', 'headerLen': 'headerlen'} def __init__(self, headerlen=None, start=None, totallen=None): ''' headerlen : int @@ -277,8 +289,8 @@ class packet(Type): class BoolResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -303,8 +315,8 @@ class EntitiesWatchResult(Type): class ErrorResult(Type): - _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'} - _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'} + _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'} + _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'} def __init__(self, code=None, info=None, message=None): ''' code : str @@ -317,8 +329,8 @@ class ErrorResult(Type): class AgentGetEntitiesResult(Type): - _toSchema = {'containertype': 'ContainerType', 'error': 'Error', 'life': 'Life', 'jobs': 'Jobs'} - _toPy = {'Error': 'error', 'Jobs': 'jobs', 'ContainerType': 'containertype', 'Life': 'life'} + _toSchema = {'jobs': 'Jobs', 'life': 'Life', 'error': 'Error', 'containertype': 'ContainerType'} + _toPy = {'Life': 'life', 'ContainerType': 'containertype', 'Error': 'error', 'Jobs': 'jobs'} def __init__(self, containertype=None, error=None, jobs=None, life=None): ''' containertype : str @@ -344,7 +356,7 @@ class AgentGetEntitiesResults(Type): class EntityPassword(Type): _toSchema = {'password': 'Password', 'tag': 'Tag'} - _toPy = {'Password': 'password', 'Tag': 'tag'} + _toPy = {'Tag': 'tag', 'Password': 'password'} def __init__(self, password=None, tag=None): ''' password : str @@ -395,8 +407,8 @@ class ModelConfigResult(Type): class NotifyWatchResult(Type): - _toSchema = {'error': 'Error', 'notifywatcherid': 'NotifyWatcherId'} - _toPy = {'Error': 'error', 'NotifyWatcherId': 'notifywatcherid'} + _toSchema = {'notifywatcherid': 'NotifyWatcherId', 'error': 'Error'} + _toPy = {'NotifyWatcherId': 'notifywatcherid', 'Error': 'error'} def __init__(self, error=None, notifywatcherid=None): ''' error : Error @@ -407,8 +419,8 @@ class NotifyWatchResult(Type): class StateServingInfo(Type): - _toSchema = {'sharedsecret': 'SharedSecret', 'caprivatekey': 'CAPrivateKey', 'stateport': 'StatePort', 'cert': 'Cert', 'apiport': 'APIPort', 'privatekey': 'PrivateKey', 'systemidentity': 'SystemIdentity'} - _toPy = {'StatePort': 'stateport', 'APIPort': 'apiport', 'CAPrivateKey': 'caprivatekey', 'PrivateKey': 'privatekey', 'SystemIdentity': 'systemidentity', 'Cert': 'cert', 'SharedSecret': 'sharedsecret'} + _toSchema = {'apiport': 'APIPort', 'stateport': 'StatePort', 'cert': 'Cert', 'caprivatekey': 'CAPrivateKey', 'systemidentity': 'SystemIdentity', 'sharedsecret': 'SharedSecret', 'privatekey': 'PrivateKey'} + _toPy = {'SharedSecret': 'sharedsecret', 'CAPrivateKey': 'caprivatekey', 'Cert': 'cert', 'PrivateKey': 'privatekey', 'StatePort': 'stateport', 'SystemIdentity': 'systemidentity', 'APIPort': 'apiport'} def __init__(self, apiport=None, caprivatekey=None, cert=None, privatekey=None, sharedsecret=None, stateport=None, systemidentity=None): ''' apiport : int @@ -439,7 +451,7 @@ class AllWatcherNextResults(Type): class Delta(Type): - _toSchema = {'removed': 'Removed', 'entity': 'Entity'} + _toSchema = {'entity': 'Entity', 'removed': 'Removed'} _toPy = {'Removed': 'removed', 'Entity': 'entity'} def __init__(self, entity=None, removed=None): ''' @@ -451,8 +463,8 @@ class Delta(Type): class AnnotationsGetResult(Type): - _toSchema = {'error': 'Error', 'entitytag': 'EntityTag', 'annotations': 'Annotations'} - _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations', 'Error': 'error'} + _toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations', 'error': 'Error'} + _toPy = {'Error': 'error', 'Annotations': 'annotations', 'EntityTag': 'entitytag'} def __init__(self, annotations=None, entitytag=None, error=None): ''' annotations : typing.Mapping[str, str] @@ -486,7 +498,7 @@ class AnnotationsSet(Type): class EntityAnnotations(Type): _toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations'} - _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations'} + _toPy = {'Annotations': 'annotations', 'EntityTag': 'entitytag'} def __init__(self, annotations=None, entitytag=None): ''' annotations : typing.Mapping[str, str] @@ -496,3474 +508,3528 @@ class EntityAnnotations(Type): self.entitytag = entitytag -class BackupsCreateArgs(Type): - _toSchema = {'notes': 'Notes'} - _toPy = {'Notes': 'notes'} - def __init__(self, notes=None): +class AddApplicationUnits(Type): + _toSchema = {'numunits': 'NumUnits', 'applicationname': 'ApplicationName', 'placement': 'Placement'} + _toPy = {'NumUnits': 'numunits', 'Placement': 'placement', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, numunits=None, placement=None): ''' - notes : str + applicationname : str + numunits : int + placement : typing.Sequence[~Placement] ''' - self.notes = notes + self.applicationname = applicationname + self.numunits = numunits + self.placement = [Placement.from_json(o) for o in placement or []] -class BackupsInfoArgs(Type): - _toSchema = {'id_': 'ID'} - _toPy = {'ID': 'id_'} - def __init__(self, id_=None): +class AddApplicationUnitsResults(Type): + _toSchema = {'units': 'Units'} + _toPy = {'Units': 'units'} + def __init__(self, units=None): ''' - id_ : str + units : typing.Sequence[str] ''' - self.id_ = id_ + self.units = units -class BackupsListArgs(Type): - _toSchema = {} - _toPy = {} - def __init__(self): +class AddRelation(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=None): ''' - + endpoints : typing.Sequence[str] ''' - pass + self.endpoints = endpoints -class BackupsListResult(Type): - _toSchema = {'list_': 'List'} - _toPy = {'List': 'list_'} - def __init__(self, list_=None): +class AddRelationResults(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=None): ''' - list_ : typing.Sequence[~BackupsMetadataResult] + endpoints : typing.Mapping[str, ~Relation] ''' - self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] + self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()} -class BackupsMetadataResult(Type): - _toSchema = {'caprivatekey': 'CAPrivateKey', 'started': 'Started', 'finished': 'Finished', 'size': 'Size', 'stored': 'Stored', 'checksum': 'Checksum', 'model': 'Model', 'version': 'Version', 'cacert': 'CACert', 'machine': 'Machine', 'hostname': 'Hostname', 'notes': 'Notes', 'checksumformat': 'ChecksumFormat', 'id_': 'ID'} - _toPy = {'Hostname': 'hostname', 'Stored': 'stored', 'CACert': 'cacert', 'Checksum': 'checksum', 'Started': 'started', 'Model': 'model', 'ChecksumFormat': 'checksumformat', 'Machine': 'machine', 'Version': 'version', 'CAPrivateKey': 'caprivatekey', 'Size': 'size', 'ID': 'id_', 'Finished': 'finished', 'Notes': 'notes'} - def __init__(self, cacert=None, caprivatekey=None, checksum=None, checksumformat=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, size=None, started=None, stored=None, version=None): +class ApplicationCharmRelations(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - cacert : str - caprivatekey : str - checksum : str - checksumformat : str - finished : str - hostname : str - id_ : str - machine : str - model : str - notes : str - size : int - started : str - stored : str - version : Number + applicationname : str ''' - self.cacert = cacert - self.caprivatekey = caprivatekey - self.checksum = checksum - self.checksumformat = checksumformat - self.finished = finished - self.hostname = hostname - self.id_ = id_ - self.machine = machine - self.model = model - self.notes = notes - self.size = size - self.started = started - self.stored = stored - self.version = Number.from_json(version) if version else None + self.applicationname = applicationname -class BackupsRemoveArgs(Type): - _toSchema = {'id_': 'ID'} - _toPy = {'ID': 'id_'} - def __init__(self, id_=None): +class ApplicationCharmRelationsResults(Type): + _toSchema = {'charmrelations': 'CharmRelations'} + _toPy = {'CharmRelations': 'charmrelations'} + def __init__(self, charmrelations=None): ''' - id_ : str + charmrelations : typing.Sequence[str] ''' - self.id_ = id_ + self.charmrelations = charmrelations -class Number(Type): - _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'} - _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): +class ApplicationDeploy(Type): + _toSchema = {'resources': 'Resources', 'channel': 'Channel', 'numunits': 'NumUnits', 'charmurl': 'CharmUrl', 'endpointbindings': 'EndpointBindings', 'configyaml': 'ConfigYAML', 'series': 'Series', 'storage': 'Storage', 'placement': 'Placement', 'config': 'Config', 'constraints': 'Constraints', 'applicationname': 'ApplicationName'} + _toPy = {'Storage': 'storage', 'ApplicationName': 'applicationname', 'Channel': 'channel', 'CharmUrl': 'charmurl', 'Constraints': 'constraints', 'Config': 'config', 'ConfigYAML': 'configyaml', 'Resources': 'resources', 'EndpointBindings': 'endpointbindings', 'NumUnits': 'numunits', 'Placement': 'placement', 'Series': 'series'} + def __init__(self, applicationname=None, channel=None, charmurl=None, config=None, configyaml=None, constraints=None, endpointbindings=None, numunits=None, placement=None, resources=None, series=None, storage=None): ''' - build : int - major : int - minor : int - patch : int - tag : str + applicationname : str + channel : str + charmurl : str + config : typing.Mapping[str, str] + configyaml : str + constraints : Value + endpointbindings : typing.Mapping[str, str] + numunits : int + placement : typing.Sequence[~Placement] + resources : typing.Mapping[str, str] + series : str + storage : typing.Mapping[str, ~Constraints] ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + self.applicationname = applicationname + self.channel = channel + self.charmurl = charmurl + self.config = config + self.configyaml = configyaml + self.constraints = Value.from_json(constraints) if constraints else None + self.endpointbindings = endpointbindings + self.numunits = numunits + self.placement = [Placement.from_json(o) for o in placement or []] + self.resources = resources + self.series = series + self.storage = {k: Constraints.from_json(v) for k, v in (storage or dict()).items()} -class RestoreArgs(Type): - _toSchema = {'backupid': 'BackupId'} - _toPy = {'BackupId': 'backupid'} - def __init__(self, backupid=None): +class ApplicationDestroy(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - backupid : str + applicationname : str ''' - self.backupid = backupid + self.applicationname = applicationname -class Block(Type): - _toSchema = {'message': 'message', 'type_': 'type', 'id_': 'id', 'tag': 'tag'} - _toPy = {'message': 'message', 'id': 'id_', 'tag': 'tag', 'type': 'type_'} - def __init__(self, id_=None, message=None, tag=None, type_=None): +class ApplicationExpose(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - id_ : str - message : str - tag : str - type_ : str + applicationname : str ''' - self.id_ = id_ - self.message = message - self.tag = tag - self.type_ = type_ + self.applicationname = applicationname -class BlockResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None): +class ApplicationGet(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - error : Error - result : Block + applicationname : str ''' - self.error = Error.from_json(error) if error else None - self.result = Block.from_json(result) if result else None + self.applicationname = applicationname -class BlockResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ApplicationGetResults(Type): + _toSchema = {'charm': 'Charm', 'config': 'Config', 'application': 'Application', 'constraints': 'Constraints'} + _toPy = {'Constraints': 'constraints', 'Charm': 'charm', 'Application': 'application', 'Config': 'config'} + def __init__(self, application=None, charm=None, config=None, constraints=None): ''' - results : typing.Sequence[~BlockResult] + application : str + charm : str + config : typing.Mapping[str, typing.Any] + constraints : Value ''' - self.results = [BlockResult.from_json(o) for o in results or []] + self.application = application + self.charm = charm + self.config = config + self.constraints = Value.from_json(constraints) if constraints else None -class BlockSwitchParams(Type): - _toSchema = {'message': 'message', 'type_': 'type'} - _toPy = {'message': 'message', 'type': 'type_'} - def __init__(self, message=None, type_=None): +class ApplicationMetricCredential(Type): + _toSchema = {'metriccredentials': 'MetricCredentials', 'applicationname': 'ApplicationName'} + _toPy = {'MetricCredentials': 'metriccredentials', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, metriccredentials=None): ''' - message : str - type_ : str + applicationname : str + metriccredentials : typing.Sequence[int] ''' - self.message = message - self.type_ = type_ + self.applicationname = applicationname + self.metriccredentials = metriccredentials -class CharmInfo(Type): - _toSchema = {'charmurl': 'CharmURL'} - _toPy = {'CharmURL': 'charmurl'} - def __init__(self, charmurl=None): +class ApplicationMetricCredentials(Type): + _toSchema = {'creds': 'Creds'} + _toPy = {'Creds': 'creds'} + def __init__(self, creds=None): ''' - charmurl : str + creds : typing.Sequence[~ApplicationMetricCredential] ''' - self.charmurl = charmurl + self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] -class CharmsList(Type): - _toSchema = {'names': 'Names'} - _toPy = {'Names': 'names'} - def __init__(self, names=None): +class ApplicationSet(Type): + _toSchema = {'options': 'Options', 'applicationname': 'ApplicationName'} + _toPy = {'Options': 'options', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, options=None): ''' - names : typing.Sequence[str] + applicationname : str + options : typing.Mapping[str, str] ''' - self.names = names + self.applicationname = applicationname + self.options = options -class CharmsListResult(Type): - _toSchema = {'charmurls': 'CharmURLs'} - _toPy = {'CharmURLs': 'charmurls'} - def __init__(self, charmurls=None): +class ApplicationSetCharm(Type): + _toSchema = {'forceseries': 'forceseries', 'charmurl': 'charmurl', 'resourceids': 'resourceids', 'forceunits': 'forceunits', 'cs_channel': 'cs-channel', 'applicationname': 'applicationname'} + _toPy = {'forceseries': 'forceseries', 'charmurl': 'charmurl', 'forceunits': 'forceunits', 'cs-channel': 'cs_channel', 'applicationname': 'applicationname', 'resourceids': 'resourceids'} + def __init__(self, applicationname=None, charmurl=None, cs_channel=None, forceseries=None, forceunits=None, resourceids=None): ''' - charmurls : typing.Sequence[str] + applicationname : str + charmurl : str + cs_channel : str + forceseries : bool + forceunits : bool + resourceids : typing.Mapping[str, str] ''' - self.charmurls = charmurls + self.applicationname = applicationname + self.charmurl = charmurl + self.cs_channel = cs_channel + self.forceseries = forceseries + self.forceunits = forceunits + self.resourceids = resourceids -class IsMeteredResult(Type): - _toSchema = {'metered': 'Metered'} - _toPy = {'Metered': 'metered'} - def __init__(self, metered=None): +class ApplicationUnexpose(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - metered : bool + applicationname : str ''' - self.metered = metered + self.applicationname = applicationname -class APIHostPortsResult(Type): - _toSchema = {'servers': 'Servers'} - _toPy = {'Servers': 'servers'} - def __init__(self, servers=None): +class ApplicationUnset(Type): + _toSchema = {'options': 'Options', 'applicationname': 'ApplicationName'} + _toPy = {'Options': 'options', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, options=None): ''' - servers : typing.Sequence[~HostPort] + applicationname : str + options : typing.Sequence[str] ''' - self.servers = [HostPort.from_json(o) for o in servers or []] + self.applicationname = applicationname + self.options = options -class AddCharm(Type): - _toSchema = {'channel': 'Channel', 'url': 'URL'} - _toPy = {'Channel': 'channel', 'URL': 'url'} - def __init__(self, channel=None, url=None): +class ApplicationUpdate(Type): + _toSchema = {'forceseries': 'ForceSeries', 'charmurl': 'CharmUrl', 'settingsyaml': 'SettingsYAML', 'constraints': 'Constraints', 'forcecharmurl': 'ForceCharmUrl', 'settingsstrings': 'SettingsStrings', 'applicationname': 'ApplicationName', 'minunits': 'MinUnits'} + _toPy = {'Constraints': 'constraints', 'SettingsYAML': 'settingsyaml', 'SettingsStrings': 'settingsstrings', 'ApplicationName': 'applicationname', 'MinUnits': 'minunits', 'ForceCharmUrl': 'forcecharmurl', 'CharmUrl': 'charmurl', 'ForceSeries': 'forceseries'} + def __init__(self, applicationname=None, charmurl=None, constraints=None, forcecharmurl=None, forceseries=None, minunits=None, settingsstrings=None, settingsyaml=None): ''' - channel : str - url : str + applicationname : str + charmurl : str + constraints : Value + forcecharmurl : bool + forceseries : bool + minunits : int + settingsstrings : typing.Mapping[str, str] + settingsyaml : str ''' - self.channel = channel - self.url = url + self.applicationname = applicationname + self.charmurl = charmurl + self.constraints = Value.from_json(constraints) if constraints else None + self.forcecharmurl = forcecharmurl + self.forceseries = forceseries + self.minunits = minunits + self.settingsstrings = settingsstrings + self.settingsyaml = settingsyaml -class AddCharmWithAuthorization(Type): - _toSchema = {'channel': 'Channel', 'charmstoremacaroon': 'CharmStoreMacaroon', 'url': 'URL'} - _toPy = {'Channel': 'channel', 'CharmStoreMacaroon': 'charmstoremacaroon', 'URL': 'url'} - def __init__(self, channel=None, charmstoremacaroon=None, url=None): +class ApplicationsDeploy(Type): + _toSchema = {'applications': 'Applications'} + _toPy = {'Applications': 'applications'} + def __init__(self, applications=None): ''' - channel : str - charmstoremacaroon : Macaroon - url : str + applications : typing.Sequence[~ApplicationDeploy] ''' - self.channel = channel - self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None - self.url = url + self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] -class AddMachineParams(Type): - _toSchema = {'parentid': 'ParentId', 'containertype': 'ContainerType', 'instanceid': 'InstanceId', 'disks': 'Disks', 'jobs': 'Jobs', 'placement': 'Placement', 'addrs': 'Addrs', 'nonce': 'Nonce', 'constraints': 'Constraints', 'series': 'Series', 'hardwarecharacteristics': 'HardwareCharacteristics'} - _toPy = {'HardwareCharacteristics': 'hardwarecharacteristics', 'Constraints': 'constraints', 'InstanceId': 'instanceid', 'ContainerType': 'containertype', 'ParentId': 'parentid', 'Addrs': 'addrs', 'Placement': 'placement', 'Disks': 'disks', 'Nonce': 'nonce', 'Jobs': 'jobs', 'Series': 'series'} - def __init__(self, addrs=None, constraints=None, containertype=None, disks=None, hardwarecharacteristics=None, instanceid=None, jobs=None, nonce=None, parentid=None, placement=None, series=None): +class Constraints(Type): + _toSchema = {'pool': 'Pool', 'size': 'Size', 'count': 'Count'} + _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'} + def __init__(self, count=None, pool=None, size=None): ''' - addrs : typing.Sequence[~Address] - constraints : Value - containertype : str - disks : typing.Sequence[~Constraints] - hardwarecharacteristics : HardwareCharacteristics - instanceid : str - jobs : typing.Sequence[str] - nonce : str - parentid : str - placement : Placement - series : str + count : int + pool : str + size : int ''' - self.addrs = [Address.from_json(o) for o in addrs or []] - self.constraints = Value.from_json(constraints) if constraints else None - self.containertype = containertype - self.disks = [Constraints.from_json(o) for o in disks or []] - self.hardwarecharacteristics = HardwareCharacteristics.from_json(hardwarecharacteristics) if hardwarecharacteristics else None - self.instanceid = instanceid - self.jobs = jobs - self.nonce = nonce - self.parentid = parentid - self.placement = Placement.from_json(placement) if placement else None - self.series = series + self.count = count + self.pool = pool + self.size = size -class AddMachines(Type): - _toSchema = {'machineparams': 'MachineParams'} - _toPy = {'MachineParams': 'machineparams'} - def __init__(self, machineparams=None): +class DestroyApplicationUnits(Type): + _toSchema = {'unitnames': 'UnitNames'} + _toPy = {'UnitNames': 'unitnames'} + def __init__(self, unitnames=None): ''' - machineparams : typing.Sequence[~AddMachineParams] + unitnames : typing.Sequence[str] ''' - self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []] + self.unitnames = unitnames -class AddMachinesResult(Type): - _toSchema = {'error': 'Error', 'machine': 'Machine'} - _toPy = {'Error': 'error', 'Machine': 'machine'} - def __init__(self, error=None, machine=None): +class DestroyRelation(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=None): ''' - error : Error - machine : str + endpoints : typing.Sequence[str] ''' - self.error = Error.from_json(error) if error else None - self.machine = machine + self.endpoints = endpoints -class AddMachinesResults(Type): - _toSchema = {'machines': 'Machines'} - _toPy = {'Machines': 'machines'} - def __init__(self, machines=None): +class GetApplicationConstraints(Type): + _toSchema = {'applicationname': 'ApplicationName'} + _toPy = {'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None): ''' - machines : typing.Sequence[~AddMachinesResult] + applicationname : str ''' - self.machines = [AddMachinesResult.from_json(o) for o in machines or []] + self.applicationname = applicationname -class Address(Type): - _toSchema = {'spacename': 'SpaceName', 'value': 'Value', 'scope': 'Scope', 'type_': 'Type'} - _toPy = {'SpaceName': 'spacename', 'Type': 'type_', 'Scope': 'scope', 'Value': 'value'} - def __init__(self, scope=None, spacename=None, type_=None, value=None): +class GetConstraintsResults(Type): + _toSchema = {'root_disk': 'root-disk', 'mem': 'mem', 'container': 'container', 'virt_type': 'virt-type', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'instance_type': 'instance-type'} + _toPy = {'spaces': 'spaces', 'container': 'container', 'cpu-cores': 'cpu_cores', 'instance-type': 'instance_type', 'mem': 'mem', 'cpu-power': 'cpu_power', 'tags': 'tags', 'arch': 'arch', 'root-disk': 'root_disk', 'virt-type': 'virt_type'} + def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None): + ''' + arch : str + container : str + cpu_cores : int + cpu_power : int + instance_type : str + mem : int + root_disk : int + spaces : typing.Sequence[str] + tags : typing.Sequence[str] + virt_type : str + ''' + self.arch = arch + self.container = container + self.cpu_cores = cpu_cores + self.cpu_power = cpu_power + self.instance_type = instance_type + self.mem = mem + self.root_disk = root_disk + self.spaces = spaces + self.tags = tags + self.virt_type = virt_type + + +class Placement(Type): + _toSchema = {'directive': 'Directive', 'scope': 'Scope'} + _toPy = {'Directive': 'directive', 'Scope': 'scope'} + def __init__(self, directive=None, scope=None): ''' + directive : str scope : str - spacename : str - type_ : str - value : str ''' + self.directive = directive self.scope = scope - self.spacename = spacename - self.type_ = type_ - self.value = value -class AgentVersionResult(Type): - _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'} - _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): +class Relation(Type): + _toSchema = {'role': 'Role', 'limit': 'Limit', 'optional': 'Optional', 'name': 'Name', 'scope': 'Scope', 'interface': 'Interface'} + _toPy = {'Name': 'name', 'Role': 'role', 'Scope': 'scope', 'Limit': 'limit', 'Interface': 'interface', 'Optional': 'optional'} + def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None): ''' - build : int - major : int - minor : int - patch : int - tag : str + interface : str + limit : int + name : str + optional : bool + role : str + scope : str ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + self.interface = interface + self.limit = limit + self.name = name + self.optional = optional + self.role = role + self.scope = scope -class AllWatcherId(Type): - _toSchema = {'allwatcherid': 'AllWatcherId'} - _toPy = {'AllWatcherId': 'allwatcherid'} - def __init__(self, allwatcherid=None): +class SetConstraints(Type): + _toSchema = {'constraints': 'Constraints', 'applicationname': 'ApplicationName'} + _toPy = {'Constraints': 'constraints', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, constraints=None): ''' - allwatcherid : str + applicationname : str + constraints : Value ''' - self.allwatcherid = allwatcherid + self.applicationname = applicationname + self.constraints = Value.from_json(constraints) if constraints else None -class Binary(Type): - _toSchema = {'series': 'Series', 'arch': 'Arch', 'number': 'Number'} - _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'} - def __init__(self, arch=None, number=None, series=None): +class StringResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} + def __init__(self, error=None, result=None): + ''' + error : Error + result : str + ''' + self.error = Error.from_json(error) if error else None + self.result = result + + +class Value(Type): + _toSchema = {'root_disk': 'root-disk', 'mem': 'mem', 'container': 'container', 'virt_type': 'virt-type', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'instance_type': 'instance-type'} + _toPy = {'spaces': 'spaces', 'container': 'container', 'cpu-cores': 'cpu_cores', 'instance-type': 'instance_type', 'mem': 'mem', 'cpu-power': 'cpu_power', 'tags': 'tags', 'arch': 'arch', 'root-disk': 'root_disk', 'virt-type': 'virt_type'} + def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None): ''' arch : str - number : Number - series : str + container : str + cpu_cores : int + cpu_power : int + instance_type : str + mem : int + root_disk : int + spaces : typing.Sequence[str] + tags : typing.Sequence[str] + virt_type : str ''' self.arch = arch - self.number = Number.from_json(number) if number else None - self.series = series + self.container = container + self.cpu_cores = cpu_cores + self.cpu_power = cpu_power + self.instance_type = instance_type + self.mem = mem + self.root_disk = root_disk + self.spaces = spaces + self.tags = tags + self.virt_type = virt_type -class BundleChangesChange(Type): - _toSchema = {'requires': 'requires', 'args': 'args', 'id_': 'id', 'method': 'method'} - _toPy = {'args': 'args', 'id': 'id_', 'method': 'method', 'requires': 'requires'} - def __init__(self, args=None, id_=None, method=None, requires=None): +class StringsWatchResult(Type): + _toSchema = {'changes': 'Changes', 'stringswatcherid': 'StringsWatcherId', 'error': 'Error'} + _toPy = {'Changes': 'changes', 'Error': 'error', 'StringsWatcherId': 'stringswatcherid'} + def __init__(self, changes=None, error=None, stringswatcherid=None): + ''' + changes : typing.Sequence[str] + error : Error + stringswatcherid : str + ''' + self.changes = changes + self.error = Error.from_json(error) if error else None + self.stringswatcherid = stringswatcherid + + +class BackupsCreateArgs(Type): + _toSchema = {'notes': 'Notes'} + _toPy = {'Notes': 'notes'} + def __init__(self, notes=None): + ''' + notes : str + ''' + self.notes = notes + + +class BackupsInfoArgs(Type): + _toSchema = {'id_': 'ID'} + _toPy = {'ID': 'id_'} + def __init__(self, id_=None): ''' - args : typing.Sequence[typing.Any] id_ : str - method : str - requires : typing.Sequence[str] ''' - self.args = args self.id_ = id_ - self.method = method - self.requires = requires -class Constraints(Type): - _toSchema = {'pool': 'Pool', 'count': 'Count', 'size': 'Size'} - _toPy = {'Pool': 'pool', 'Count': 'count', 'Size': 'size'} - def __init__(self, count=None, pool=None, size=None): +class BackupsListArgs(Type): + _toSchema = {} + _toPy = {} + def __init__(self): ''' - count : int - pool : str - size : int + ''' - self.count = count - self.pool = pool - self.size = size + pass -class DestroyMachines(Type): - _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'} - _toPy = {'MachineNames': 'machinenames', 'Force': 'force'} - def __init__(self, force=None, machinenames=None): +class BackupsListResult(Type): + _toSchema = {'list_': 'List'} + _toPy = {'List': 'list_'} + def __init__(self, list_=None): ''' - force : bool - machinenames : typing.Sequence[str] + list_ : typing.Sequence[~BackupsMetadataResult] ''' - self.force = force - self.machinenames = machinenames + self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] -class DetailedStatus(Type): - _toSchema = {'info': 'Info', 'status': 'Status', 'version': 'Version', 'data': 'Data', 'kind': 'Kind', 'since': 'Since', 'err': 'Err', 'life': 'Life'} - _toPy = {'Status': 'status', 'Since': 'since', 'Version': 'version', 'Err': 'err', 'Info': 'info', 'Data': 'data', 'Life': 'life', 'Kind': 'kind'} - def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None): +class BackupsMetadataResult(Type): + _toSchema = {'checksumformat': 'ChecksumFormat', 'started': 'Started', 'stored': 'Stored', 'cacert': 'CACert', 'version': 'Version', 'machine': 'Machine', 'checksum': 'Checksum', 'series': 'Series', 'id_': 'ID', 'hostname': 'Hostname', 'size': 'Size', 'finished': 'Finished', 'caprivatekey': 'CAPrivateKey', 'model': 'Model', 'notes': 'Notes'} + _toPy = {'Finished': 'finished', 'ChecksumFormat': 'checksumformat', 'CAPrivateKey': 'caprivatekey', 'Started': 'started', 'ID': 'id_', 'Notes': 'notes', 'Stored': 'stored', 'Hostname': 'hostname', 'Model': 'model', 'Size': 'size', 'Checksum': 'checksum', 'Machine': 'machine', 'Version': 'version', 'CACert': 'cacert', 'Series': 'series'} + def __init__(self, cacert=None, caprivatekey=None, checksum=None, checksumformat=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, series=None, size=None, started=None, stored=None, version=None): ''' - data : typing.Mapping[str, typing.Any] - err : typing.Mapping[str, typing.Any] - info : str - kind : str - life : str - since : str - status : str - version : str + cacert : str + caprivatekey : str + checksum : str + checksumformat : str + finished : str + hostname : str + id_ : str + machine : str + model : str + notes : str + series : str + size : int + started : str + stored : str + version : Number ''' - self.data = data - self.err = err - self.info = info - self.kind = kind - self.life = life - self.since = since - self.status = status - self.version = version + self.cacert = cacert + self.caprivatekey = caprivatekey + self.checksum = checksum + self.checksumformat = checksumformat + self.finished = finished + self.hostname = hostname + self.id_ = id_ + self.machine = machine + self.model = model + self.notes = notes + self.series = series + self.size = size + self.started = started + self.stored = stored + self.version = Number.from_json(version) if version else None -class EndpointStatus(Type): - _toSchema = {'role': 'Role', 'subordinate': 'Subordinate', 'servicename': 'ServiceName', 'name': 'Name'} - _toPy = {'ServiceName': 'servicename', 'Subordinate': 'subordinate', 'Role': 'role', 'Name': 'name'} - def __init__(self, name=None, role=None, servicename=None, subordinate=None): +class BackupsRemoveArgs(Type): + _toSchema = {'id_': 'ID'} + _toPy = {'ID': 'id_'} + def __init__(self, id_=None): ''' - name : str - role : str - servicename : str - subordinate : bool + id_ : str ''' - self.name = name - self.role = role - self.servicename = servicename - self.subordinate = subordinate + self.id_ = id_ -class EntityStatus(Type): - _toSchema = {'info': 'Info', 'status': 'Status', 'since': 'Since', 'data': 'Data'} - _toPy = {'Info': 'info', 'Since': 'since', 'Status': 'status', 'Data': 'data'} - def __init__(self, data=None, info=None, since=None, status=None): +class Number(Type): + _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'} + _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'} + def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): ''' - data : typing.Mapping[str, typing.Any] - info : str - since : str - status : str + build : int + major : int + minor : int + patch : int + tag : str ''' - self.data = data - self.info = info - self.since = since - self.status = status + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class FindToolsParams(Type): - _toSchema = {'minorversion': 'MinorVersion', 'arch': 'Arch', 'number': 'Number', 'majorversion': 'MajorVersion', 'series': 'Series'} - _toPy = {'Arch': 'arch', 'MinorVersion': 'minorversion', 'MajorVersion': 'majorversion', 'Number': 'number', 'Series': 'series'} - def __init__(self, arch=None, majorversion=None, minorversion=None, number=None, series=None): +class RestoreArgs(Type): + _toSchema = {'backupid': 'BackupId'} + _toPy = {'BackupId': 'backupid'} + def __init__(self, backupid=None): ''' - arch : str - majorversion : int - minorversion : int - number : Number - series : str + backupid : str ''' - self.arch = arch - self.majorversion = majorversion - self.minorversion = minorversion - self.number = Number.from_json(number) if number else None - self.series = series + self.backupid = backupid -class FindToolsResult(Type): - _toSchema = {'error': 'Error', 'list_': 'List'} - _toPy = {'Error': 'error', 'List': 'list_'} - def __init__(self, error=None, list_=None): +class Block(Type): + _toSchema = {'type_': 'type', 'id_': 'id', 'message': 'message', 'tag': 'tag'} + _toPy = {'type': 'type_', 'id': 'id_', 'message': 'message', 'tag': 'tag'} + def __init__(self, id_=None, message=None, tag=None, type_=None): + ''' + id_ : str + message : str + tag : str + type_ : str + ''' + self.id_ = id_ + self.message = message + self.tag = tag + self.type_ = type_ + + +class BlockResult(Type): + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} + def __init__(self, error=None, result=None): ''' error : Error - list_ : typing.Sequence[~Tools] + result : Block ''' self.error = Error.from_json(error) if error else None - self.list_ = [Tools.from_json(o) for o in list_ or []] + self.result = Block.from_json(result) if result else None -class FullStatus(Type): - _toSchema = {'machines': 'Machines', 'modelname': 'ModelName', 'availableversion': 'AvailableVersion', 'relations': 'Relations', 'services': 'Services'} - _toPy = {'Services': 'services', 'Relations': 'relations', 'AvailableVersion': 'availableversion', 'ModelName': 'modelname', 'Machines': 'machines'} - def __init__(self, availableversion=None, machines=None, modelname=None, relations=None, services=None): +class BlockResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - availableversion : str - machines : typing.Mapping[str, ~MachineStatus] - modelname : str - relations : typing.Sequence[~RelationStatus] - services : typing.Mapping[str, ~ServiceStatus] + results : typing.Sequence[~BlockResult] ''' - self.availableversion = availableversion - self.machines = {k: MachineStatus.from_json(v) for k, v in (machines or dict()).items()} - self.modelname = modelname - self.relations = [RelationStatus.from_json(o) for o in relations or []] - self.services = {k: ServiceStatus.from_json(v) for k, v in (services or dict()).items()} + self.results = [BlockResult.from_json(o) for o in results or []] -class GetBundleChangesParams(Type): - _toSchema = {'yaml': 'yaml'} - _toPy = {'yaml': 'yaml'} - def __init__(self, yaml=None): +class BlockSwitchParams(Type): + _toSchema = {'type_': 'type', 'message': 'message'} + _toPy = {'type': 'type_', 'message': 'message'} + def __init__(self, message=None, type_=None): ''' - yaml : str + message : str + type_ : str ''' - self.yaml = yaml + self.message = message + self.type_ = type_ -class GetBundleChangesResults(Type): - _toSchema = {'errors': 'errors', 'changes': 'changes'} - _toPy = {'errors': 'errors', 'changes': 'changes'} - def __init__(self, changes=None, errors=None): +class CharmInfo(Type): + _toSchema = {'charmurl': 'CharmURL'} + _toPy = {'CharmURL': 'charmurl'} + def __init__(self, charmurl=None): ''' - changes : typing.Sequence[~BundleChangesChange] - errors : typing.Sequence[str] + charmurl : str ''' - self.changes = [BundleChangesChange.from_json(o) for o in changes or []] - self.errors = errors + self.charmurl = charmurl -class GetConstraintsResults(Type): - _toSchema = {'virt_type': 'virt-type', 'mem': 'mem', 'container': 'container', 'instance_type': 'instance-type', 'root_disk': 'root-disk', 'tags': 'tags', 'arch': 'arch', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'spaces': 'spaces'} - _toPy = {'instance-type': 'instance_type', 'root-disk': 'root_disk', 'cpu-power': 'cpu_power', 'mem': 'mem', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'virt-type': 'virt_type', 'container': 'container', 'cpu-cores': 'cpu_cores'} - def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None): +class CharmsList(Type): + _toSchema = {'names': 'Names'} + _toPy = {'Names': 'names'} + def __init__(self, names=None): ''' - arch : str - container : str - cpu_cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : typing.Sequence[str] - tags : typing.Sequence[str] - virt_type : str + names : typing.Sequence[str] ''' - self.arch = arch - self.container = container - self.cpu_cores = cpu_cores - self.cpu_power = cpu_power - self.instance_type = instance_type - self.mem = mem - self.root_disk = root_disk - self.spaces = spaces - self.tags = tags - self.virt_type = virt_type + self.names = names -class HardwareCharacteristics(Type): - _toSchema = {'tags': 'Tags', 'rootdisk': 'RootDisk', 'arch': 'Arch', 'cpupower': 'CpuPower', 'availabilityzone': 'AvailabilityZone', 'cpucores': 'CpuCores', 'mem': 'Mem'} - _toPy = {'RootDisk': 'rootdisk', 'Arch': 'arch', 'CpuCores': 'cpucores', 'Tags': 'tags', 'AvailabilityZone': 'availabilityzone', 'CpuPower': 'cpupower', 'Mem': 'mem'} - def __init__(self, arch=None, availabilityzone=None, cpucores=None, cpupower=None, mem=None, rootdisk=None, tags=None): +class CharmsListResult(Type): + _toSchema = {'charmurls': 'CharmURLs'} + _toPy = {'CharmURLs': 'charmurls'} + def __init__(self, charmurls=None): ''' - arch : str - availabilityzone : str - cpucores : int - cpupower : int - mem : int - rootdisk : int - tags : typing.Sequence[str] + charmurls : typing.Sequence[str] ''' - self.arch = arch - self.availabilityzone = availabilityzone - self.cpucores = cpucores - self.cpupower = cpupower - self.mem = mem - self.rootdisk = rootdisk - self.tags = tags + self.charmurls = charmurls -class HostPort(Type): - _toSchema = {'address': 'Address', 'port': 'Port'} - _toPy = {'Port': 'port', 'Address': 'address'} - def __init__(self, address=None, port=None): +class IsMeteredResult(Type): + _toSchema = {'metered': 'Metered'} + _toPy = {'Metered': 'metered'} + def __init__(self, metered=None): ''' - address : Address - port : int + metered : bool ''' - self.address = Address.from_json(address) if address else None - self.port = port + self.metered = metered -class MachineStatus(Type): - _toSchema = {'series': 'Series', 'jobs': 'Jobs', 'instanceid': 'InstanceId', 'instancestatus': 'InstanceStatus', 'hasvote': 'HasVote', 'wantsvote': 'WantsVote', 'containers': 'Containers', 'agentstatus': 'AgentStatus', 'dnsname': 'DNSName', 'hardware': 'Hardware', 'id_': 'Id'} - _toPy = {'AgentStatus': 'agentstatus', 'InstanceId': 'instanceid', 'HasVote': 'hasvote', 'Series': 'series', 'Hardware': 'hardware', 'DNSName': 'dnsname', 'WantsVote': 'wantsvote', 'Id': 'id_', 'Jobs': 'jobs', 'InstanceStatus': 'instancestatus', 'Containers': 'containers'} - def __init__(self, agentstatus=None, containers=None, dnsname=None, hardware=None, hasvote=None, id_=None, instanceid=None, instancestatus=None, jobs=None, series=None, wantsvote=None): +class APIHostPortsResult(Type): + _toSchema = {'servers': 'Servers'} + _toPy = {'Servers': 'servers'} + def __init__(self, servers=None): ''' - agentstatus : DetailedStatus - containers : typing.Mapping[str, ~MachineStatus] - dnsname : str - hardware : str - hasvote : bool - id_ : str - instanceid : str - instancestatus : DetailedStatus - jobs : typing.Sequence[str] - series : str - wantsvote : bool + servers : typing.Sequence[~HostPort] ''' - self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None - self.containers = {k: MachineStatus.from_json(v) for k, v in (containers or dict()).items()} - self.dnsname = dnsname - self.hardware = hardware - self.hasvote = hasvote - self.id_ = id_ - self.instanceid = instanceid - self.instancestatus = DetailedStatus.from_json(instancestatus) if instancestatus else None - self.jobs = jobs - self.series = series - self.wantsvote = wantsvote + self.servers = [HostPort.from_json(o) for o in servers or []] -class MeterStatus(Type): - _toSchema = {'message': 'Message', 'color': 'Color'} - _toPy = {'Message': 'message', 'Color': 'color'} - def __init__(self, color=None, message=None): - ''' - color : str - message : str - ''' - self.color = color - self.message = message - - -class ModelConfigResults(Type): - _toSchema = {'config': 'Config'} - _toPy = {'Config': 'config'} - def __init__(self, config=None): - ''' - config : typing.Mapping[str, typing.Any] - ''' - self.config = config - - -class ModelInfo(Type): - _toSchema = {'users': 'Users', 'status': 'Status', 'serveruuid': 'ServerUUID', 'uuid': 'UUID', 'name': 'Name', 'providertype': 'ProviderType', 'defaultseries': 'DefaultSeries', 'ownertag': 'OwnerTag', 'life': 'Life'} - _toPy = {'Status': 'status', 'UUID': 'uuid', 'OwnerTag': 'ownertag', 'Name': 'name', 'ServerUUID': 'serveruuid', 'DefaultSeries': 'defaultseries', 'Life': 'life', 'Users': 'users', 'ProviderType': 'providertype'} - def __init__(self, defaultseries=None, life=None, name=None, ownertag=None, providertype=None, serveruuid=None, status=None, uuid=None, users=None): +class AddCharm(Type): + _toSchema = {'url': 'URL', 'channel': 'Channel'} + _toPy = {'URL': 'url', 'Channel': 'channel'} + def __init__(self, channel=None, url=None): ''' - defaultseries : str - life : str - name : str - ownertag : str - providertype : str - serveruuid : str - status : EntityStatus - uuid : str - users : typing.Sequence[~ModelUserInfo] + channel : str + url : str ''' - self.defaultseries = defaultseries - self.life = life - self.name = name - self.ownertag = ownertag - self.providertype = providertype - self.serveruuid = serveruuid - self.status = EntityStatus.from_json(status) if status else None - self.uuid = uuid - self.users = [ModelUserInfo.from_json(o) for o in users or []] + self.channel = channel + self.url = url -class ModelSet(Type): - _toSchema = {'config': 'Config'} - _toPy = {'Config': 'config'} - def __init__(self, config=None): +class AddCharmWithAuthorization(Type): + _toSchema = {'url': 'URL', 'channel': 'Channel', 'charmstoremacaroon': 'CharmStoreMacaroon'} + _toPy = {'URL': 'url', 'CharmStoreMacaroon': 'charmstoremacaroon', 'Channel': 'channel'} + def __init__(self, channel=None, charmstoremacaroon=None, url=None): ''' - config : typing.Mapping[str, typing.Any] + channel : str + charmstoremacaroon : Macaroon + url : str ''' - self.config = config + self.channel = channel + self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None + self.url = url -class ModelUnset(Type): - _toSchema = {'keys': 'Keys'} - _toPy = {'Keys': 'keys'} - def __init__(self, keys=None): +class AddMachineParams(Type): + _toSchema = {'jobs': 'Jobs', 'series': 'Series', 'hardwarecharacteristics': 'HardwareCharacteristics', 'nonce': 'Nonce', 'containertype': 'ContainerType', 'constraints': 'Constraints', 'disks': 'Disks', 'placement': 'Placement', 'instanceid': 'InstanceId', 'parentid': 'ParentId', 'addrs': 'Addrs'} + _toPy = {'Constraints': 'constraints', 'InstanceId': 'instanceid', 'ContainerType': 'containertype', 'Nonce': 'nonce', 'Disks': 'disks', 'Addrs': 'addrs', 'HardwareCharacteristics': 'hardwarecharacteristics', 'Series': 'series', 'ParentId': 'parentid', 'Placement': 'placement', 'Jobs': 'jobs'} + def __init__(self, addrs=None, constraints=None, containertype=None, disks=None, hardwarecharacteristics=None, instanceid=None, jobs=None, nonce=None, parentid=None, placement=None, series=None): ''' - keys : typing.Sequence[str] + addrs : typing.Sequence[~Address] + constraints : Value + containertype : str + disks : typing.Sequence[~Constraints] + hardwarecharacteristics : HardwareCharacteristics + instanceid : str + jobs : typing.Sequence[str] + nonce : str + parentid : str + placement : Placement + series : str ''' - self.keys = keys + self.addrs = [Address.from_json(o) for o in addrs or []] + self.constraints = Value.from_json(constraints) if constraints else None + self.containertype = containertype + self.disks = [Constraints.from_json(o) for o in disks or []] + self.hardwarecharacteristics = HardwareCharacteristics.from_json(hardwarecharacteristics) if hardwarecharacteristics else None + self.instanceid = instanceid + self.jobs = jobs + self.nonce = nonce + self.parentid = parentid + self.placement = Placement.from_json(placement) if placement else None + self.series = series -class ModelUserInfo(Type): - _toSchema = {'displayname': 'displayname', 'access': 'access', 'user': 'user', 'lastconnection': 'lastconnection'} - _toPy = {'displayname': 'displayname', 'access': 'access', 'user': 'user', 'lastconnection': 'lastconnection'} - def __init__(self, access=None, displayname=None, lastconnection=None, user=None): +class AddMachines(Type): + _toSchema = {'machineparams': 'MachineParams'} + _toPy = {'MachineParams': 'machineparams'} + def __init__(self, machineparams=None): ''' - access : str - displayname : str - lastconnection : str - user : str + machineparams : typing.Sequence[~AddMachineParams] ''' - self.access = access - self.displayname = displayname - self.lastconnection = lastconnection - self.user = user + self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []] -class ModelUserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None): +class AddMachinesResult(Type): + _toSchema = {'error': 'Error', 'machine': 'Machine'} + _toPy = {'Error': 'error', 'Machine': 'machine'} + def __init__(self, error=None, machine=None): ''' error : Error - result : ModelUserInfo + machine : str ''' self.error = Error.from_json(error) if error else None - self.result = ModelUserInfo.from_json(result) if result else None + self.machine = machine -class ModelUserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class AddMachinesResults(Type): + _toSchema = {'machines': 'Machines'} + _toPy = {'Machines': 'machines'} + def __init__(self, machines=None): ''' - results : typing.Sequence[~ModelUserInfoResult] + machines : typing.Sequence[~AddMachinesResult] ''' - self.results = [ModelUserInfoResult.from_json(o) for o in results or []] + self.machines = [AddMachinesResult.from_json(o) for o in machines or []] -class Placement(Type): - _toSchema = {'scope': 'Scope', 'directive': 'Directive'} - _toPy = {'Directive': 'directive', 'Scope': 'scope'} - def __init__(self, directive=None, scope=None): +class Address(Type): + _toSchema = {'value': 'Value', 'type_': 'Type', 'spacename': 'SpaceName', 'scope': 'Scope'} + _toPy = {'Value': 'value', 'Type': 'type_', 'SpaceName': 'spacename', 'Scope': 'scope'} + def __init__(self, scope=None, spacename=None, type_=None, value=None): ''' - directive : str scope : str + spacename : str + type_ : str + value : str ''' - self.directive = directive self.scope = scope + self.spacename = spacename + self.type_ = type_ + self.value = value -class PrivateAddress(Type): - _toSchema = {'target': 'Target'} - _toPy = {'Target': 'target'} - def __init__(self, target=None): +class AgentVersionResult(Type): + _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'} + _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'} + def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): ''' - target : str + build : int + major : int + minor : int + patch : int + tag : str ''' - self.target = target + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class PrivateAddressResults(Type): - _toSchema = {'privateaddress': 'PrivateAddress'} - _toPy = {'PrivateAddress': 'privateaddress'} - def __init__(self, privateaddress=None): +class AllWatcherId(Type): + _toSchema = {'allwatcherid': 'AllWatcherId'} + _toPy = {'AllWatcherId': 'allwatcherid'} + def __init__(self, allwatcherid=None): ''' - privateaddress : str + allwatcherid : str ''' - self.privateaddress = privateaddress + self.allwatcherid = allwatcherid -class ProvisioningScriptParams(Type): - _toSchema = {'machineid': 'MachineId', 'disablepackagecommands': 'DisablePackageCommands', 'nonce': 'Nonce', 'datadir': 'DataDir'} - _toPy = {'Nonce': 'nonce', 'DisablePackageCommands': 'disablepackagecommands', 'MachineId': 'machineid', 'DataDir': 'datadir'} - def __init__(self, datadir=None, disablepackagecommands=None, machineid=None, nonce=None): +class ApplicationStatus(Type): + _toSchema = {'charm': 'Charm', 'exposed': 'Exposed', 'err': 'Err', 'meterstatuses': 'MeterStatuses', 'relations': 'Relations', 'units': 'Units', 'life': 'Life', 'canupgradeto': 'CanUpgradeTo', 'subordinateto': 'SubordinateTo', 'status': 'Status'} + _toPy = {'Charm': 'charm', 'Err': 'err', 'Units': 'units', 'MeterStatuses': 'meterstatuses', 'CanUpgradeTo': 'canupgradeto', 'Status': 'status', 'SubordinateTo': 'subordinateto', 'Life': 'life', 'Relations': 'relations', 'Exposed': 'exposed'} + def __init__(self, canupgradeto=None, charm=None, err=None, exposed=None, life=None, meterstatuses=None, relations=None, status=None, subordinateto=None, units=None): ''' - datadir : str - disablepackagecommands : bool - machineid : str - nonce : str + canupgradeto : str + charm : str + err : typing.Mapping[str, typing.Any] + exposed : bool + life : str + meterstatuses : typing.Mapping[str, ~MeterStatus] + relations : typing.Sequence[str] + status : DetailedStatus + subordinateto : typing.Sequence[str] + units : typing.Mapping[str, ~UnitStatus] ''' - self.datadir = datadir - self.disablepackagecommands = disablepackagecommands - self.machineid = machineid - self.nonce = nonce + self.canupgradeto = canupgradeto + self.charm = charm + self.err = err + self.exposed = exposed + self.life = life + self.meterstatuses = {k: MeterStatus.from_json(v) for k, v in (meterstatuses or dict()).items()} + self.relations = relations + self.status = DetailedStatus.from_json(status) if status else None + self.subordinateto = subordinateto + self.units = {k: UnitStatus.from_json(v) for k, v in (units or dict()).items()} -class ProvisioningScriptResult(Type): - _toSchema = {'script': 'Script'} - _toPy = {'Script': 'script'} - def __init__(self, script=None): +class Binary(Type): + _toSchema = {'number': 'Number', 'series': 'Series', 'arch': 'Arch'} + _toPy = {'Number': 'number', 'Arch': 'arch', 'Series': 'series'} + def __init__(self, arch=None, number=None, series=None): ''' - script : str + arch : str + number : Number + series : str ''' - self.script = script + self.arch = arch + self.number = Number.from_json(number) if number else None + self.series = series -class PublicAddress(Type): - _toSchema = {'target': 'Target'} - _toPy = {'Target': 'target'} - def __init__(self, target=None): +class BundleChangesChange(Type): + _toSchema = {'method': 'method', 'args': 'args', 'requires': 'requires', 'id_': 'id'} + _toPy = {'method': 'method', 'id': 'id_', 'args': 'args', 'requires': 'requires'} + def __init__(self, args=None, id_=None, method=None, requires=None): ''' - target : str + args : typing.Sequence[typing.Any] + id_ : str + method : str + requires : typing.Sequence[str] ''' - self.target = target + self.args = args + self.id_ = id_ + self.method = method + self.requires = requires -class PublicAddressResults(Type): - _toSchema = {'publicaddress': 'PublicAddress'} - _toPy = {'PublicAddress': 'publicaddress'} - def __init__(self, publicaddress=None): +class DestroyMachines(Type): + _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'} + _toPy = {'Force': 'force', 'MachineNames': 'machinenames'} + def __init__(self, force=None, machinenames=None): ''' - publicaddress : str + force : bool + machinenames : typing.Sequence[str] ''' - self.publicaddress = publicaddress + self.force = force + self.machinenames = machinenames -class RelationStatus(Type): - _toSchema = {'key': 'Key', 'interface': 'Interface', 'scope': 'Scope', 'endpoints': 'Endpoints', 'id_': 'Id'} - _toPy = {'Key': 'key', 'Id': 'id_', 'Scope': 'scope', 'Interface': 'interface', 'Endpoints': 'endpoints'} - def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None): - ''' - endpoints : typing.Sequence[~EndpointStatus] - id_ : int - interface : str - key : str - scope : str +class DetailedStatus(Type): + _toSchema = {'since': 'Since', 'data': 'Data', 'life': 'Life', 'version': 'Version', 'err': 'Err', 'kind': 'Kind', 'info': 'Info', 'status': 'Status'} + _toPy = {'Err': 'err', 'Data': 'data', 'Since': 'since', 'Status': 'status', 'Info': 'info', 'Life': 'life', 'Version': 'version', 'Kind': 'kind'} + def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None): ''' - self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] - self.id_ = id_ - self.interface = interface - self.key = key - self.scope = scope + data : typing.Mapping[str, typing.Any] + err : typing.Mapping[str, typing.Any] + info : str + kind : str + life : str + since : str + status : str + version : str + ''' + self.data = data + self.err = err + self.info = info + self.kind = kind + self.life = life + self.since = since + self.status = status + self.version = version -class ResolveCharmResult(Type): - _toSchema = {'error': 'Error', 'url': 'URL'} - _toPy = {'Error': 'error', 'URL': 'url'} - def __init__(self, error=None, url=None): +class EndpointStatus(Type): + _toSchema = {'role': 'Role', 'subordinate': 'Subordinate', 'applicationname': 'ApplicationName', 'name': 'Name'} + _toPy = {'Subordinate': 'subordinate', 'Name': 'name', 'Role': 'role', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, name=None, role=None, subordinate=None): ''' - error : str - url : URL + applicationname : str + name : str + role : str + subordinate : bool ''' - self.error = error - self.url = URL.from_json(url) if url else None + self.applicationname = applicationname + self.name = name + self.role = role + self.subordinate = subordinate -class ResolveCharmResults(Type): - _toSchema = {'urls': 'URLs'} - _toPy = {'URLs': 'urls'} - def __init__(self, urls=None): +class EntityStatus(Type): + _toSchema = {'since': 'Since', 'data': 'Data', 'info': 'Info', 'status': 'Status'} + _toPy = {'Since': 'since', 'Status': 'status', 'Data': 'data', 'Info': 'info'} + def __init__(self, data=None, info=None, since=None, status=None): ''' - urls : typing.Sequence[~ResolveCharmResult] + data : typing.Mapping[str, typing.Any] + info : str + since : str + status : str ''' - self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] + self.data = data + self.info = info + self.since = since + self.status = status -class ResolveCharms(Type): - _toSchema = {'references': 'References'} - _toPy = {'References': 'references'} - def __init__(self, references=None): +class FindToolsParams(Type): + _toSchema = {'minorversion': 'MinorVersion', 'number': 'Number', 'series': 'Series', 'arch': 'Arch', 'majorversion': 'MajorVersion'} + _toPy = {'Number': 'number', 'Series': 'series', 'Arch': 'arch', 'MinorVersion': 'minorversion', 'MajorVersion': 'majorversion'} + def __init__(self, arch=None, majorversion=None, minorversion=None, number=None, series=None): ''' - references : typing.Sequence[~URL] + arch : str + majorversion : int + minorversion : int + number : Number + series : str ''' - self.references = [URL.from_json(o) for o in references or []] + self.arch = arch + self.majorversion = majorversion + self.minorversion = minorversion + self.number = Number.from_json(number) if number else None + self.series = series -class Resolved(Type): - _toSchema = {'retry': 'Retry', 'unitname': 'UnitName'} - _toPy = {'UnitName': 'unitname', 'Retry': 'retry'} - def __init__(self, retry=None, unitname=None): +class FindToolsResult(Type): + _toSchema = {'error': 'Error', 'list_': 'List'} + _toPy = {'List': 'list_', 'Error': 'error'} + def __init__(self, error=None, list_=None): ''' - retry : bool - unitname : str + error : Error + list_ : typing.Sequence[~Tools] ''' - self.retry = retry - self.unitname = unitname + self.error = Error.from_json(error) if error else None + self.list_ = [Tools.from_json(o) for o in list_ or []] -class ServiceStatus(Type): - _toSchema = {'units': 'Units', 'charm': 'Charm', 'relations': 'Relations', 'status': 'Status', 'exposed': 'Exposed', 'canupgradeto': 'CanUpgradeTo', 'meterstatuses': 'MeterStatuses', 'subordinateto': 'SubordinateTo', 'life': 'Life', 'err': 'Err'} - _toPy = {'Status': 'status', 'Relations': 'relations', 'Exposed': 'exposed', 'Err': 'err', 'SubordinateTo': 'subordinateto', 'Charm': 'charm', 'CanUpgradeTo': 'canupgradeto', 'Units': 'units', 'Life': 'life', 'MeterStatuses': 'meterstatuses'} - def __init__(self, canupgradeto=None, charm=None, err=None, exposed=None, life=None, meterstatuses=None, relations=None, status=None, subordinateto=None, units=None): +class FullStatus(Type): + _toSchema = {'modelname': 'ModelName', 'availableversion': 'AvailableVersion', 'applications': 'Applications', 'relations': 'Relations', 'machines': 'Machines'} + _toPy = {'Applications': 'applications', 'Machines': 'machines', 'AvailableVersion': 'availableversion', 'ModelName': 'modelname', 'Relations': 'relations'} + def __init__(self, applications=None, availableversion=None, machines=None, modelname=None, relations=None): ''' - canupgradeto : str - charm : str - err : typing.Mapping[str, typing.Any] - exposed : bool - life : str - meterstatuses : typing.Mapping[str, ~MeterStatus] - relations : typing.Sequence[str] - status : DetailedStatus - subordinateto : typing.Sequence[str] - units : typing.Mapping[str, ~UnitStatus] + applications : typing.Mapping[str, ~ApplicationStatus] + availableversion : str + machines : typing.Mapping[str, ~MachineStatus] + modelname : str + relations : typing.Sequence[~RelationStatus] ''' - self.canupgradeto = canupgradeto - self.charm = charm - self.err = err - self.exposed = exposed - self.life = life - self.meterstatuses = {k: MeterStatus.from_json(v) for k, v in (meterstatuses or dict()).items()} - self.relations = relations - self.status = DetailedStatus.from_json(status) if status else None - self.subordinateto = subordinateto - self.units = {k: UnitStatus.from_json(v) for k, v in (units or dict()).items()} + self.applications = {k: ApplicationStatus.from_json(v) for k, v in (applications or dict()).items()} + self.availableversion = availableversion + self.machines = {k: MachineStatus.from_json(v) for k, v in (machines or dict()).items()} + self.modelname = modelname + self.relations = [RelationStatus.from_json(o) for o in relations or []] -class SetConstraints(Type): - _toSchema = {'constraints': 'Constraints', 'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints'} - def __init__(self, constraints=None, servicename=None): +class GetBundleChangesParams(Type): + _toSchema = {'yaml': 'yaml'} + _toPy = {'yaml': 'yaml'} + def __init__(self, yaml=None): ''' - constraints : Value - servicename : str + yaml : str ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.servicename = servicename + self.yaml = yaml -class SetModelAgentVersion(Type): - _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'} - _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): +class GetBundleChangesResults(Type): + _toSchema = {'changes': 'changes', 'errors': 'errors'} + _toPy = {'changes': 'changes', 'errors': 'errors'} + def __init__(self, changes=None, errors=None): ''' - build : int - major : int - minor : int - patch : int - tag : str + changes : typing.Sequence[~BundleChangesChange] + errors : typing.Sequence[str] ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + self.changes = [BundleChangesChange.from_json(o) for o in changes or []] + self.errors = errors -class StatusHistoryArgs(Type): - _toSchema = {'kind': 'Kind', 'size': 'Size', 'name': 'Name'} - _toPy = {'Size': 'size', 'Kind': 'kind', 'Name': 'name'} - def __init__(self, kind=None, name=None, size=None): +class HardwareCharacteristics(Type): + _toSchema = {'rootdisk': 'RootDisk', 'cpucores': 'CpuCores', 'mem': 'Mem', 'tags': 'Tags', 'arch': 'Arch', 'availabilityzone': 'AvailabilityZone', 'cpupower': 'CpuPower'} + _toPy = {'CpuPower': 'cpupower', 'RootDisk': 'rootdisk', 'AvailabilityZone': 'availabilityzone', 'Mem': 'mem', 'CpuCores': 'cpucores', 'Tags': 'tags', 'Arch': 'arch'} + def __init__(self, arch=None, availabilityzone=None, cpucores=None, cpupower=None, mem=None, rootdisk=None, tags=None): ''' - kind : str - name : str - size : int + arch : str + availabilityzone : str + cpucores : int + cpupower : int + mem : int + rootdisk : int + tags : typing.Sequence[str] ''' - self.kind = kind - self.name = name - self.size = size + self.arch = arch + self.availabilityzone = availabilityzone + self.cpucores = cpucores + self.cpupower = cpupower + self.mem = mem + self.rootdisk = rootdisk + self.tags = tags -class StatusHistoryResults(Type): - _toSchema = {'statuses': 'Statuses'} - _toPy = {'Statuses': 'statuses'} - def __init__(self, statuses=None): +class History(Type): + _toSchema = {'error': 'Error', 'statuses': 'Statuses'} + _toPy = {'Error': 'error', 'Statuses': 'statuses'} + def __init__(self, error=None, statuses=None): ''' + error : Error statuses : typing.Sequence[~DetailedStatus] ''' + self.error = Error.from_json(error) if error else None self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] -class StatusParams(Type): - _toSchema = {'patterns': 'Patterns'} - _toPy = {'Patterns': 'patterns'} - def __init__(self, patterns=None): +class HostPort(Type): + _toSchema = {'address': 'Address', 'port': 'Port'} + _toPy = {'Port': 'port', 'Address': 'address'} + def __init__(self, address=None, port=None): ''' - patterns : typing.Sequence[str] + address : Address + port : int ''' - self.patterns = patterns + self.address = Address.from_json(address) if address else None + self.port = port -class Tools(Type): - _toSchema = {'url': 'url', 'version': 'version', 'size': 'size', 'sha256': 'sha256'} - _toPy = {'url': 'url', 'version': 'version', 'size': 'size', 'sha256': 'sha256'} - def __init__(self, sha256=None, size=None, url=None, version=None): +class MachineStatus(Type): + _toSchema = {'dnsname': 'DNSName', 'hardware': 'Hardware', 'series': 'Series', 'id_': 'Id', 'hasvote': 'HasVote', 'jobs': 'Jobs', 'containers': 'Containers', 'agentstatus': 'AgentStatus', 'instanceid': 'InstanceId', 'wantsvote': 'WantsVote', 'instancestatus': 'InstanceStatus'} + _toPy = {'AgentStatus': 'agentstatus', 'InstanceId': 'instanceid', 'Hardware': 'hardware', 'HasVote': 'hasvote', 'Containers': 'containers', 'Id': 'id_', 'WantsVote': 'wantsvote', 'Series': 'series', 'DNSName': 'dnsname', 'InstanceStatus': 'instancestatus', 'Jobs': 'jobs'} + def __init__(self, agentstatus=None, containers=None, dnsname=None, hardware=None, hasvote=None, id_=None, instanceid=None, instancestatus=None, jobs=None, series=None, wantsvote=None): ''' - sha256 : str - size : int - url : str - version : Binary + agentstatus : DetailedStatus + containers : typing.Mapping[str, ~MachineStatus] + dnsname : str + hardware : str + hasvote : bool + id_ : str + instanceid : str + instancestatus : DetailedStatus + jobs : typing.Sequence[str] + series : str + wantsvote : bool ''' - self.sha256 = sha256 - self.size = size - self.url = url - self.version = Binary.from_json(version) if version else None + self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None + self.containers = {k: MachineStatus.from_json(v) for k, v in (containers or dict()).items()} + self.dnsname = dnsname + self.hardware = hardware + self.hasvote = hasvote + self.id_ = id_ + self.instanceid = instanceid + self.instancestatus = DetailedStatus.from_json(instancestatus) if instancestatus else None + self.jobs = jobs + self.series = series + self.wantsvote = wantsvote -class URL(Type): - _toSchema = {'series': 'Series', 'channel': 'Channel', 'schema': 'Schema', 'revision': 'Revision', 'name': 'Name', 'user': 'User'} - _toPy = {'Schema': 'schema', 'Name': 'name', 'Channel': 'channel', 'User': 'user', 'Revision': 'revision', 'Series': 'series'} - def __init__(self, channel=None, name=None, revision=None, schema=None, series=None, user=None): +class MeterStatus(Type): + _toSchema = {'color': 'Color', 'message': 'Message'} + _toPy = {'Message': 'message', 'Color': 'color'} + def __init__(self, color=None, message=None): ''' - channel : str - name : str - revision : int - schema : str - series : str - user : str + color : str + message : str ''' - self.channel = channel - self.name = name - self.revision = revision - self.schema = schema - self.series = series - self.user = user + self.color = color + self.message = message -class UnitStatus(Type): - _toSchema = {'charm': 'Charm', 'subordinates': 'Subordinates', 'workloadstatus': 'WorkloadStatus', 'machine': 'Machine', 'openedports': 'OpenedPorts', 'agentstatus': 'AgentStatus', 'publicaddress': 'PublicAddress'} - _toPy = {'AgentStatus': 'agentstatus', 'Machine': 'machine', 'Charm': 'charm', 'Subordinates': 'subordinates', 'PublicAddress': 'publicaddress', 'WorkloadStatus': 'workloadstatus', 'OpenedPorts': 'openedports'} - def __init__(self, agentstatus=None, charm=None, machine=None, openedports=None, publicaddress=None, subordinates=None, workloadstatus=None): +class ModelConfigResults(Type): + _toSchema = {'config': 'Config'} + _toPy = {'Config': 'config'} + def __init__(self, config=None): ''' - agentstatus : DetailedStatus - charm : str - machine : str - openedports : typing.Sequence[str] - publicaddress : str - subordinates : typing.Mapping[str, ~UnitStatus] - workloadstatus : DetailedStatus + config : typing.Mapping[str, typing.Any] ''' - self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None - self.charm = charm - self.machine = machine - self.openedports = openedports - self.publicaddress = publicaddress - self.subordinates = {k: UnitStatus.from_json(v) for k, v in (subordinates or dict()).items()} - self.workloadstatus = DetailedStatus.from_json(workloadstatus) if workloadstatus else None + self.config = config -class Value(Type): - _toSchema = {'virt_type': 'virt-type', 'mem': 'mem', 'container': 'container', 'instance_type': 'instance-type', 'root_disk': 'root-disk', 'tags': 'tags', 'arch': 'arch', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'spaces': 'spaces'} - _toPy = {'instance-type': 'instance_type', 'root-disk': 'root_disk', 'cpu-power': 'cpu_power', 'mem': 'mem', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'virt-type': 'virt_type', 'container': 'container', 'cpu-cores': 'cpu_cores'} - def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None): +class ModelInfo(Type): + _toSchema = {'uuid': 'UUID', 'cloud': 'Cloud', 'life': 'Life', 'users': 'Users', 'name': 'Name', 'serveruuid': 'ServerUUID', 'defaultseries': 'DefaultSeries', 'ownertag': 'OwnerTag', 'providertype': 'ProviderType', 'status': 'Status'} + _toPy = {'OwnerTag': 'ownertag', 'Cloud': 'cloud', 'DefaultSeries': 'defaultseries', 'Name': 'name', 'UUID': 'uuid', 'Status': 'status', 'ServerUUID': 'serveruuid', 'Users': 'users', 'Life': 'life', 'ProviderType': 'providertype'} + def __init__(self, cloud=None, defaultseries=None, life=None, name=None, ownertag=None, providertype=None, serveruuid=None, status=None, uuid=None, users=None): ''' - arch : str - container : str - cpu_cores : int - cpu_power : int - instance_type : str - mem : int - root_disk : int - spaces : typing.Sequence[str] - tags : typing.Sequence[str] - virt_type : str + cloud : str + defaultseries : str + life : str + name : str + ownertag : str + providertype : str + serveruuid : str + status : EntityStatus + uuid : str + users : typing.Sequence[~ModelUserInfo] ''' - self.arch = arch - self.container = container - self.cpu_cores = cpu_cores - self.cpu_power = cpu_power - self.instance_type = instance_type - self.mem = mem - self.root_disk = root_disk - self.spaces = spaces - self.tags = tags - self.virt_type = virt_type + self.cloud = cloud + self.defaultseries = defaultseries + self.life = life + self.name = name + self.ownertag = ownertag + self.providertype = providertype + self.serveruuid = serveruuid + self.status = EntityStatus.from_json(status) if status else None + self.uuid = uuid + self.users = [ModelUserInfo.from_json(o) for o in users or []] -class DestroyControllerArgs(Type): - _toSchema = {'destroy_models': 'destroy-models'} - _toPy = {'destroy-models': 'destroy_models'} - def __init__(self, destroy_models=None): +class ModelSet(Type): + _toSchema = {'config': 'Config'} + _toPy = {'Config': 'config'} + def __init__(self, config=None): ''' - destroy_models : bool + config : typing.Mapping[str, typing.Any] ''' - self.destroy_models = destroy_models + self.config = config -class InitiateModelMigrationArgs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None): +class ModelUnset(Type): + _toSchema = {'keys': 'Keys'} + _toPy = {'Keys': 'keys'} + def __init__(self, keys=None): ''' - specs : typing.Sequence[~ModelMigrationSpec] + keys : typing.Sequence[str] ''' - self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []] + self.keys = keys -class InitiateModelMigrationResult(Type): - _toSchema = {'error': 'error', 'id_': 'id', 'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag', 'error': 'error', 'id': 'id_'} - def __init__(self, error=None, id_=None, model_tag=None): +class ModelUserInfo(Type): + _toSchema = {'displayname': 'displayname', 'user': 'user', 'lastconnection': 'lastconnection', 'access': 'access'} + _toPy = {'displayname': 'displayname', 'user': 'user', 'lastconnection': 'lastconnection', 'access': 'access'} + def __init__(self, access=None, displayname=None, lastconnection=None, user=None): + ''' + access : str + displayname : str + lastconnection : str + user : str + ''' + self.access = access + self.displayname = displayname + self.lastconnection = lastconnection + self.user = user + + +class ModelUserInfoResult(Type): + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} + def __init__(self, error=None, result=None): ''' error : Error - id_ : str - model_tag : str + result : ModelUserInfo ''' self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.model_tag = model_tag + self.result = ModelUserInfo.from_json(result) if result else None -class InitiateModelMigrationResults(Type): +class ModelUserInfoResults(Type): _toSchema = {'results': 'results'} _toPy = {'results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~InitiateModelMigrationResult] + results : typing.Sequence[~ModelUserInfoResult] ''' - self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []] + self.results = [ModelUserInfoResult.from_json(o) for o in results or []] -class Model(Type): - _toSchema = {'ownertag': 'OwnerTag', 'uuid': 'UUID', 'name': 'Name'} - _toPy = {'UUID': 'uuid', 'OwnerTag': 'ownertag', 'Name': 'name'} - def __init__(self, name=None, ownertag=None, uuid=None): +class PrivateAddress(Type): + _toSchema = {'target': 'Target'} + _toPy = {'Target': 'target'} + def __init__(self, target=None): ''' - name : str - ownertag : str - uuid : str + target : str ''' - self.name = name - self.ownertag = ownertag - self.uuid = uuid + self.target = target -class ModelBlockInfo(Type): - _toSchema = {'model_uuid': 'model-uuid', 'owner_tag': 'owner-tag', 'blocks': 'blocks', 'name': 'name'} - _toPy = {'model-uuid': 'model_uuid', 'blocks': 'blocks', 'owner-tag': 'owner_tag', 'name': 'name'} - def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None): +class PrivateAddressResults(Type): + _toSchema = {'privateaddress': 'PrivateAddress'} + _toPy = {'PrivateAddress': 'privateaddress'} + def __init__(self, privateaddress=None): ''' - blocks : typing.Sequence[str] - model_uuid : str - name : str - owner_tag : str + privateaddress : str ''' - self.blocks = blocks - self.model_uuid = model_uuid - self.name = name - self.owner_tag = owner_tag + self.privateaddress = privateaddress -class ModelBlockInfoList(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None): +class ProvisioningScriptParams(Type): + _toSchema = {'disablepackagecommands': 'DisablePackageCommands', 'machineid': 'MachineId', 'datadir': 'DataDir', 'nonce': 'Nonce'} + _toPy = {'MachineId': 'machineid', 'DisablePackageCommands': 'disablepackagecommands', 'DataDir': 'datadir', 'Nonce': 'nonce'} + def __init__(self, datadir=None, disablepackagecommands=None, machineid=None, nonce=None): ''' - models : typing.Sequence[~ModelBlockInfo] + datadir : str + disablepackagecommands : bool + machineid : str + nonce : str ''' - self.models = [ModelBlockInfo.from_json(o) for o in models or []] + self.datadir = datadir + self.disablepackagecommands = disablepackagecommands + self.machineid = machineid + self.nonce = nonce -class ModelMigrationSpec(Type): - _toSchema = {'model_tag': 'model-tag', 'target_info': 'target-info'} - _toPy = {'model-tag': 'model_tag', 'target-info': 'target_info'} - def __init__(self, model_tag=None, target_info=None): +class ProvisioningScriptResult(Type): + _toSchema = {'script': 'Script'} + _toPy = {'Script': 'script'} + def __init__(self, script=None): ''' - model_tag : str - target_info : ModelMigrationTargetInfo + script : str ''' - self.model_tag = model_tag - self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None + self.script = script -class ModelMigrationTargetInfo(Type): - _toSchema = {'auth_tag': 'auth-tag', 'password': 'password', 'controller_tag': 'controller-tag', 'ca_cert': 'ca-cert', 'addrs': 'addrs'} - _toPy = {'password': 'password', 'auth-tag': 'auth_tag', 'ca-cert': 'ca_cert', 'controller-tag': 'controller_tag', 'addrs': 'addrs'} - def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, password=None): +class PublicAddress(Type): + _toSchema = {'target': 'Target'} + _toPy = {'Target': 'target'} + def __init__(self, target=None): ''' - addrs : typing.Sequence[str] - auth_tag : str - ca_cert : str - controller_tag : str - password : str + target : str ''' - self.addrs = addrs - self.auth_tag = auth_tag - self.ca_cert = ca_cert - self.controller_tag = controller_tag - self.password = password + self.target = target -class ModelStatus(Type): - _toSchema = {'hosted_machine_count': 'hosted-machine-count', 'service_count': 'service-count', 'life': 'life', 'model_tag': 'model-tag', 'owner_tag': 'owner-tag'} - _toPy = {'model-tag': 'model_tag', 'service-count': 'service_count', 'life': 'life', 'hosted-machine-count': 'hosted_machine_count', 'owner-tag': 'owner_tag'} - def __init__(self, hosted_machine_count=None, life=None, model_tag=None, owner_tag=None, service_count=None): +class PublicAddressResults(Type): + _toSchema = {'publicaddress': 'PublicAddress'} + _toPy = {'PublicAddress': 'publicaddress'} + def __init__(self, publicaddress=None): ''' - hosted_machine_count : int - life : str - model_tag : str - owner_tag : str - service_count : int + publicaddress : str ''' - self.hosted_machine_count = hosted_machine_count - self.life = life - self.model_tag = model_tag - self.owner_tag = owner_tag - self.service_count = service_count + self.publicaddress = publicaddress -class ModelStatusResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None): +class RelationStatus(Type): + _toSchema = {'key': 'Key', 'endpoints': 'Endpoints', 'scope': 'Scope', 'id_': 'Id', 'interface': 'Interface'} + _toPy = {'Key': 'key', 'Interface': 'interface', 'Id': 'id_', 'Endpoints': 'endpoints', 'Scope': 'scope'} + def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None): ''' - models : typing.Sequence[~ModelStatus] + endpoints : typing.Sequence[~EndpointStatus] + id_ : int + interface : str + key : str + scope : str ''' - self.models = [ModelStatus.from_json(o) for o in models or []] + self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] + self.id_ = id_ + self.interface = interface + self.key = key + self.scope = scope -class RemoveBlocksArgs(Type): - _toSchema = {'all_': 'all'} - _toPy = {'all': 'all_'} - def __init__(self, all_=None): +class ResolveCharmResult(Type): + _toSchema = {'error': 'Error', 'url': 'URL'} + _toPy = {'URL': 'url', 'Error': 'error'} + def __init__(self, error=None, url=None): ''' - all_ : bool + error : str + url : URL ''' - self.all_ = all_ + self.error = error + self.url = URL.from_json(url) if url else None -class UserModel(Type): - _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'} - _toPy = {'LastConnection': 'lastconnection', 'Model': 'model'} - def __init__(self, lastconnection=None, model=None): +class ResolveCharmResults(Type): + _toSchema = {'urls': 'URLs'} + _toPy = {'URLs': 'urls'} + def __init__(self, urls=None): ''' - lastconnection : str - model : Model + urls : typing.Sequence[~ResolveCharmResult] ''' - self.lastconnection = lastconnection - self.model = Model.from_json(model) if model else None + self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] -class UserModelList(Type): - _toSchema = {'usermodels': 'UserModels'} - _toPy = {'UserModels': 'usermodels'} - def __init__(self, usermodels=None): +class ResolveCharms(Type): + _toSchema = {'references': 'References'} + _toPy = {'References': 'references'} + def __init__(self, references=None): ''' - usermodels : typing.Sequence[~UserModel] + references : typing.Sequence[~URL] ''' - self.usermodels = [UserModel.from_json(o) for o in usermodels or []] + self.references = [URL.from_json(o) for o in references or []] -class BytesResult(Type): - _toSchema = {'result': 'Result'} - _toPy = {'Result': 'result'} - def __init__(self, result=None): +class Resolved(Type): + _toSchema = {'unitname': 'UnitName', 'retry': 'Retry'} + _toPy = {'UnitName': 'unitname', 'Retry': 'retry'} + def __init__(self, retry=None, unitname=None): ''' - result : typing.Sequence[int] + retry : bool + unitname : str ''' - self.result = result + self.retry = retry + self.unitname = unitname -class DeployerConnectionValues(Type): - _toSchema = {'apiaddresses': 'APIAddresses', 'stateaddresses': 'StateAddresses'} - _toPy = {'StateAddresses': 'stateaddresses', 'APIAddresses': 'apiaddresses'} - def __init__(self, apiaddresses=None, stateaddresses=None): - ''' - apiaddresses : typing.Sequence[str] - stateaddresses : typing.Sequence[str] - ''' - self.apiaddresses = apiaddresses - self.stateaddresses = stateaddresses - - -class LifeResult(Type): - _toSchema = {'error': 'Error', 'life': 'Life'} - _toPy = {'Error': 'error', 'Life': 'life'} - def __init__(self, error=None, life=None): +class SetModelAgentVersion(Type): + _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'} + _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'} + def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): ''' - error : Error - life : str + build : int + major : int + minor : int + patch : int + tag : str ''' - self.error = Error.from_json(error) if error else None - self.life = life + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class LifeResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class StatusHistoryFilter(Type): + _toSchema = {'delta': 'Delta', 'date': 'Date', 'size': 'Size'} + _toPy = {'Delta': 'delta', 'Date': 'date', 'Size': 'size'} + def __init__(self, date=None, delta=None, size=None): ''' - results : typing.Sequence[~LifeResult] + date : str + delta : int + size : int ''' - self.results = [LifeResult.from_json(o) for o in results or []] + self.date = date + self.delta = delta + self.size = size -class StringResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} - def __init__(self, error=None, result=None): +class StatusHistoryRequest(Type): + _toSchema = {'historykind': 'HistoryKind', 'filter_': 'Filter', 'tag': 'Tag', 'size': 'Size'} + _toPy = {'Tag': 'tag', 'Size': 'size', 'Filter': 'filter_', 'HistoryKind': 'historykind'} + def __init__(self, filter_=None, historykind=None, size=None, tag=None): ''' - error : Error - result : str + filter_ : StatusHistoryFilter + historykind : str + size : int + tag : str ''' - self.error = Error.from_json(error) if error else None - self.result = result + self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None + self.historykind = historykind + self.size = size + self.tag = tag -class StringsResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} - def __init__(self, error=None, result=None): +class StatusHistoryRequests(Type): + _toSchema = {'requests': 'Requests'} + _toPy = {'Requests': 'requests'} + def __init__(self, requests=None): ''' - error : Error - result : typing.Sequence[str] + requests : typing.Sequence[~StatusHistoryRequest] ''' - self.error = Error.from_json(error) if error else None - self.result = result + self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] -class StringsWatchResult(Type): - _toSchema = {'changes': 'Changes', 'stringswatcherid': 'StringsWatcherId', 'error': 'Error'} - _toPy = {'Changes': 'changes', 'Error': 'error', 'StringsWatcherId': 'stringswatcherid'} - def __init__(self, changes=None, error=None, stringswatcherid=None): +class StatusHistoryResult(Type): + _toSchema = {'history': 'History', 'error': 'Error'} + _toPy = {'History': 'history', 'Error': 'error'} + def __init__(self, error=None, history=None): ''' - changes : typing.Sequence[str] error : Error - stringswatcherid : str + history : History ''' - self.changes = changes self.error = Error.from_json(error) if error else None - self.stringswatcherid = stringswatcherid + self.history = History.from_json(history) if history else None -class StringsWatchResults(Type): +class StatusHistoryResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StringsWatchResult] + results : typing.Sequence[~StatusHistoryResult] ''' - self.results = [StringsWatchResult.from_json(o) for o in results or []] + self.results = [StatusHistoryResult.from_json(o) for o in results or []] -class AddSubnetParams(Type): - _toSchema = {'subnettag': 'SubnetTag', 'zones': 'Zones', 'subnetproviderid': 'SubnetProviderId', 'spacetag': 'SpaceTag'} - _toPy = {'SpaceTag': 'spacetag', 'SubnetProviderId': 'subnetproviderid', 'SubnetTag': 'subnettag', 'Zones': 'zones'} - def __init__(self, spacetag=None, subnetproviderid=None, subnettag=None, zones=None): +class StatusParams(Type): + _toSchema = {'patterns': 'Patterns'} + _toPy = {'Patterns': 'patterns'} + def __init__(self, patterns=None): ''' - spacetag : str - subnetproviderid : str - subnettag : str - zones : typing.Sequence[str] + patterns : typing.Sequence[str] ''' - self.spacetag = spacetag - self.subnetproviderid = subnetproviderid - self.subnettag = subnettag - self.zones = zones + self.patterns = patterns -class AddSubnetsParams(Type): - _toSchema = {'subnets': 'Subnets'} - _toPy = {'Subnets': 'subnets'} - def __init__(self, subnets=None): +class Tools(Type): + _toSchema = {'sha256': 'sha256', 'url': 'url', 'size': 'size', 'version': 'version'} + _toPy = {'sha256': 'sha256', 'url': 'url', 'size': 'size', 'version': 'version'} + def __init__(self, sha256=None, size=None, url=None, version=None): ''' - subnets : typing.Sequence[~AddSubnetParams] + sha256 : str + size : int + url : str + version : Binary ''' - self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] + self.sha256 = sha256 + self.size = size + self.url = url + self.version = Binary.from_json(version) if version else None -class CreateSpaceParams(Type): - _toSchema = {'public': 'Public', 'subnettags': 'SubnetTags', 'providerid': 'ProviderId', 'spacetag': 'SpaceTag'} - _toPy = {'ProviderId': 'providerid', 'Public': 'public', 'SpaceTag': 'spacetag', 'SubnetTags': 'subnettags'} - def __init__(self, providerid=None, public=None, spacetag=None, subnettags=None): +class URL(Type): + _toSchema = {'revision': 'Revision', 'series': 'Series', 'schema': 'Schema', 'channel': 'Channel', 'name': 'Name', 'user': 'User'} + _toPy = {'Name': 'name', 'Revision': 'revision', 'User': 'user', 'Schema': 'schema', 'Channel': 'channel', 'Series': 'series'} + def __init__(self, channel=None, name=None, revision=None, schema=None, series=None, user=None): ''' - providerid : str - public : bool - spacetag : str - subnettags : typing.Sequence[str] + channel : str + name : str + revision : int + schema : str + series : str + user : str ''' - self.providerid = providerid - self.public = public - self.spacetag = spacetag - self.subnettags = subnettags + self.channel = channel + self.name = name + self.revision = revision + self.schema = schema + self.series = series + self.user = user -class CreateSpacesParams(Type): - _toSchema = {'spaces': 'Spaces'} - _toPy = {'Spaces': 'spaces'} - def __init__(self, spaces=None): +class UnitStatus(Type): + _toSchema = {'charm': 'Charm', 'publicaddress': 'PublicAddress', 'openedports': 'OpenedPorts', 'agentstatus': 'AgentStatus', 'subordinates': 'Subordinates', 'workloadstatus': 'WorkloadStatus', 'machine': 'Machine'} + _toPy = {'AgentStatus': 'agentstatus', 'Charm': 'charm', 'OpenedPorts': 'openedports', 'WorkloadStatus': 'workloadstatus', 'PublicAddress': 'publicaddress', 'Machine': 'machine', 'Subordinates': 'subordinates'} + def __init__(self, agentstatus=None, charm=None, machine=None, openedports=None, publicaddress=None, subordinates=None, workloadstatus=None): ''' - spaces : typing.Sequence[~CreateSpaceParams] + agentstatus : DetailedStatus + charm : str + machine : str + openedports : typing.Sequence[str] + publicaddress : str + subordinates : typing.Mapping[str, ~UnitStatus] + workloadstatus : DetailedStatus ''' - self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] + self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None + self.charm = charm + self.machine = machine + self.openedports = openedports + self.publicaddress = publicaddress + self.subordinates = {k: UnitStatus.from_json(v) for k, v in (subordinates or dict()).items()} + self.workloadstatus = DetailedStatus.from_json(workloadstatus) if workloadstatus else None -class DiscoverSpacesResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class DestroyControllerArgs(Type): + _toSchema = {'destroy_models': 'destroy-models'} + _toPy = {'destroy-models': 'destroy_models'} + def __init__(self, destroy_models=None): ''' - results : typing.Sequence[~ProviderSpace] + destroy_models : bool ''' - self.results = [ProviderSpace.from_json(o) for o in results or []] + self.destroy_models = destroy_models -class ListSubnetsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class InitiateModelMigrationArgs(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None): ''' - results : typing.Sequence[~Subnet] + specs : typing.Sequence[~ModelMigrationSpec] ''' - self.results = [Subnet.from_json(o) for o in results or []] + self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []] -class ProviderSpace(Type): - _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'providerid': 'ProviderId', 'name': 'Name'} - _toPy = {'ProviderId': 'providerid', 'Error': 'error', 'Subnets': 'subnets', 'Name': 'name'} - def __init__(self, error=None, name=None, providerid=None, subnets=None): +class InitiateModelMigrationResult(Type): + _toSchema = {'id_': 'id', 'model_tag': 'model-tag', 'error': 'error'} + _toPy = {'id': 'id_', 'error': 'error', 'model-tag': 'model_tag'} + def __init__(self, error=None, id_=None, model_tag=None): ''' error : Error - name : str - providerid : str - subnets : typing.Sequence[~Subnet] + id_ : str + model_tag : str ''' self.error = Error.from_json(error) if error else None - self.name = name - self.providerid = providerid - self.subnets = [Subnet.from_json(o) for o in subnets or []] - - -class Subnet(Type): - _toSchema = {'zones': 'Zones', 'vlantag': 'VLANTag', 'staticrangelowip': 'StaticRangeLowIP', 'providerid': 'ProviderId', 'spacetag': 'SpaceTag', 'status': 'Status', 'staticrangehighip': 'StaticRangeHighIP', 'life': 'Life', 'cidr': 'CIDR'} - _toPy = {'ProviderId': 'providerid', 'SpaceTag': 'spacetag', 'StaticRangeLowIP': 'staticrangelowip', 'StaticRangeHighIP': 'staticrangehighip', 'Status': 'status', 'CIDR': 'cidr', 'Life': 'life', 'VLANTag': 'vlantag', 'Zones': 'zones'} - def __init__(self, cidr=None, life=None, providerid=None, spacetag=None, staticrangehighip=None, staticrangelowip=None, status=None, vlantag=None, zones=None): - ''' - cidr : str - life : str - providerid : str - spacetag : str - staticrangehighip : typing.Sequence[int] - staticrangelowip : typing.Sequence[int] - status : str - vlantag : int - zones : typing.Sequence[str] - ''' - self.cidr = cidr - self.life = life - self.providerid = providerid - self.spacetag = spacetag - self.staticrangehighip = staticrangehighip - self.staticrangelowip = staticrangelowip - self.status = status - self.vlantag = vlantag - self.zones = zones + self.id_ = id_ + self.model_tag = model_tag -class SubnetsFilters(Type): - _toSchema = {'zone': 'Zone', 'spacetag': 'SpaceTag'} - _toPy = {'SpaceTag': 'spacetag', 'Zone': 'zone'} - def __init__(self, spacetag=None, zone=None): +class InitiateModelMigrationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - spacetag : str - zone : str + results : typing.Sequence[~InitiateModelMigrationResult] ''' - self.spacetag = spacetag - self.zone = zone + self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []] -class BlockDevice(Type): - _toSchema = {'devicename': 'DeviceName', 'hardwareid': 'HardwareId', 'inuse': 'InUse', 'uuid': 'UUID', 'mountpoint': 'MountPoint', 'filesystemtype': 'FilesystemType', 'label': 'Label', 'devicelinks': 'DeviceLinks', 'size': 'Size', 'busaddress': 'BusAddress'} - _toPy = {'DeviceLinks': 'devicelinks', 'BusAddress': 'busaddress', 'Size': 'size', 'Label': 'label', 'InUse': 'inuse', 'HardwareId': 'hardwareid', 'UUID': 'uuid', 'DeviceName': 'devicename', 'FilesystemType': 'filesystemtype', 'MountPoint': 'mountpoint'} - def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None): +class Model(Type): + _toSchema = {'uuid': 'UUID', 'ownertag': 'OwnerTag', 'name': 'Name'} + _toPy = {'OwnerTag': 'ownertag', 'Name': 'name', 'UUID': 'uuid'} + def __init__(self, name=None, ownertag=None, uuid=None): ''' - busaddress : str - devicelinks : typing.Sequence[str] - devicename : str - filesystemtype : str - hardwareid : str - inuse : bool - label : str - mountpoint : str - size : int + name : str + ownertag : str uuid : str ''' - self.busaddress = busaddress - self.devicelinks = devicelinks - self.devicename = devicename - self.filesystemtype = filesystemtype - self.hardwareid = hardwareid - self.inuse = inuse - self.label = label - self.mountpoint = mountpoint - self.size = size + self.name = name + self.ownertag = ownertag self.uuid = uuid -class MachineBlockDevices(Type): - _toSchema = {'machine': 'machine', 'blockdevices': 'blockdevices'} - _toPy = {'machine': 'machine', 'blockdevices': 'blockdevices'} - def __init__(self, blockdevices=None, machine=None): +class ModelBlockInfo(Type): + _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'owner_tag': 'owner-tag', 'name': 'name'} + _toPy = {'owner-tag': 'owner_tag', 'blocks': 'blocks', 'model-uuid': 'model_uuid', 'name': 'name'} + def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None): ''' - blockdevices : typing.Sequence[~BlockDevice] - machine : str + blocks : typing.Sequence[str] + model_uuid : str + name : str + owner_tag : str ''' - self.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []] - self.machine = machine - - -class SetMachineBlockDevices(Type): - _toSchema = {'machineblockdevices': 'machineblockdevices'} - _toPy = {'machineblockdevices': 'machineblockdevices'} - def __init__(self, machineblockdevices=None): - ''' - machineblockdevices : typing.Sequence[~MachineBlockDevices] - ''' - self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []] + self.blocks = blocks + self.model_uuid = model_uuid + self.name = name + self.owner_tag = owner_tag -class MachineStorageId(Type): - _toSchema = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} - _toPy = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} - def __init__(self, attachmenttag=None, machinetag=None): +class ModelBlockInfoList(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None): ''' - attachmenttag : str - machinetag : str + models : typing.Sequence[~ModelBlockInfo] ''' - self.attachmenttag = attachmenttag - self.machinetag = machinetag + self.models = [ModelBlockInfo.from_json(o) for o in models or []] -class MachineStorageIdsWatchResult(Type): - _toSchema = {'machinestorageidswatcherid': 'MachineStorageIdsWatcherId', 'changes': 'Changes', 'error': 'Error'} - _toPy = {'Changes': 'changes', 'Error': 'error', 'MachineStorageIdsWatcherId': 'machinestorageidswatcherid'} - def __init__(self, changes=None, error=None, machinestorageidswatcherid=None): +class ModelMigrationSpec(Type): + _toSchema = {'model_tag': 'model-tag', 'target_info': 'target-info'} + _toPy = {'model-tag': 'model_tag', 'target-info': 'target_info'} + def __init__(self, model_tag=None, target_info=None): ''' - changes : typing.Sequence[~MachineStorageId] - error : Error - machinestorageidswatcherid : str + model_tag : str + target_info : ModelMigrationTargetInfo ''' - self.changes = [MachineStorageId.from_json(o) for o in changes or []] - self.error = Error.from_json(error) if error else None - self.machinestorageidswatcherid = machinestorageidswatcherid + self.model_tag = model_tag + self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None -class BoolResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ModelMigrationTargetInfo(Type): + _toSchema = {'auth_tag': 'auth-tag', 'ca_cert': 'ca-cert', 'controller_tag': 'controller-tag', 'password': 'password', 'addrs': 'addrs'} + _toPy = {'ca-cert': 'ca_cert', 'auth-tag': 'auth_tag', 'password': 'password', 'controller-tag': 'controller_tag', 'addrs': 'addrs'} + def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, password=None): ''' - results : typing.Sequence[~BoolResult] + addrs : typing.Sequence[str] + auth_tag : str + ca_cert : str + controller_tag : str + password : str ''' - self.results = [BoolResult.from_json(o) for o in results or []] + self.addrs = addrs + self.auth_tag = auth_tag + self.ca_cert = ca_cert + self.controller_tag = controller_tag + self.password = password -class MachinePortRange(Type): - _toSchema = {'unittag': 'UnitTag', 'relationtag': 'RelationTag', 'portrange': 'PortRange'} - _toPy = {'RelationTag': 'relationtag', 'UnitTag': 'unittag', 'PortRange': 'portrange'} - def __init__(self, portrange=None, relationtag=None, unittag=None): +class ModelStatus(Type): + _toSchema = {'model_tag': 'model-tag', 'life': 'life', 'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'owner_tag': 'owner-tag'} + _toPy = {'life': 'life', 'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'model-tag': 'model_tag', 'owner-tag': 'owner_tag'} + def __init__(self, application_count=None, hosted_machine_count=None, life=None, model_tag=None, owner_tag=None): ''' - portrange : PortRange - relationtag : str - unittag : str + application_count : int + hosted_machine_count : int + life : str + model_tag : str + owner_tag : str ''' - self.portrange = PortRange.from_json(portrange) if portrange else None - self.relationtag = relationtag - self.unittag = unittag + self.application_count = application_count + self.hosted_machine_count = hosted_machine_count + self.life = life + self.model_tag = model_tag + self.owner_tag = owner_tag -class MachinePorts(Type): - _toSchema = {'machinetag': 'MachineTag', 'subnettag': 'SubnetTag'} - _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'} - def __init__(self, machinetag=None, subnettag=None): +class ModelStatusResults(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None): ''' - machinetag : str - subnettag : str + models : typing.Sequence[~ModelStatus] ''' - self.machinetag = machinetag - self.subnettag = subnettag + self.models = [ModelStatus.from_json(o) for o in models or []] -class MachinePortsParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class RemoveBlocksArgs(Type): + _toSchema = {'all_': 'all'} + _toPy = {'all': 'all_'} + def __init__(self, all_=None): ''' - params : typing.Sequence[~MachinePorts] + all_ : bool ''' - self.params = [MachinePorts.from_json(o) for o in params or []] + self.all_ = all_ -class MachinePortsResult(Type): - _toSchema = {'error': 'Error', 'ports': 'Ports'} - _toPy = {'Error': 'error', 'Ports': 'ports'} - def __init__(self, error=None, ports=None): +class UserModel(Type): + _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'} + _toPy = {'Model': 'model', 'LastConnection': 'lastconnection'} + def __init__(self, lastconnection=None, model=None): ''' - error : Error - ports : typing.Sequence[~MachinePortRange] + lastconnection : str + model : Model ''' - self.error = Error.from_json(error) if error else None - self.ports = [MachinePortRange.from_json(o) for o in ports or []] + self.lastconnection = lastconnection + self.model = Model.from_json(model) if model else None -class MachinePortsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class UserModelList(Type): + _toSchema = {'usermodels': 'UserModels'} + _toPy = {'UserModels': 'usermodels'} + def __init__(self, usermodels=None): ''' - results : typing.Sequence[~MachinePortsResult] + usermodels : typing.Sequence[~UserModel] ''' - self.results = [MachinePortsResult.from_json(o) for o in results or []] + self.usermodels = [UserModel.from_json(o) for o in usermodels or []] -class NotifyWatchResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class BytesResult(Type): + _toSchema = {'result': 'Result'} + _toPy = {'Result': 'result'} + def __init__(self, result=None): ''' - results : typing.Sequence[~NotifyWatchResult] + result : typing.Sequence[int] ''' - self.results = [NotifyWatchResult.from_json(o) for o in results or []] + self.result = result -class PortRange(Type): - _toSchema = {'protocol': 'Protocol', 'fromport': 'FromPort', 'toport': 'ToPort'} - _toPy = {'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'} - def __init__(self, fromport=None, protocol=None, toport=None): +class DeployerConnectionValues(Type): + _toSchema = {'stateaddresses': 'StateAddresses', 'apiaddresses': 'APIAddresses'} + _toPy = {'StateAddresses': 'stateaddresses', 'APIAddresses': 'apiaddresses'} + def __init__(self, apiaddresses=None, stateaddresses=None): ''' - fromport : int - protocol : str - toport : int + apiaddresses : typing.Sequence[str] + stateaddresses : typing.Sequence[str] ''' - self.fromport = fromport - self.protocol = protocol - self.toport = toport + self.apiaddresses = apiaddresses + self.stateaddresses = stateaddresses -class StringResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class LifeResult(Type): + _toSchema = {'life': 'Life', 'error': 'Error'} + _toPy = {'Life': 'life', 'Error': 'error'} + def __init__(self, error=None, life=None): ''' - results : typing.Sequence[~StringResult] + error : Error + life : str ''' - self.results = [StringResult.from_json(o) for o in results or []] + self.error = Error.from_json(error) if error else None + self.life = life -class StringsResults(Type): +class LifeResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StringsResult] + results : typing.Sequence[~LifeResult] ''' - self.results = [StringsResult.from_json(o) for o in results or []] + self.results = [LifeResult.from_json(o) for o in results or []] -class ControllersChangeResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} +class StringsResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} def __init__(self, error=None, result=None): ''' error : Error - result : ControllersChanges + result : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None - self.result = ControllersChanges.from_json(result) if result else None + self.result = result -class ControllersChangeResults(Type): +class StringsWatchResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ControllersChangeResult] + results : typing.Sequence[~StringsWatchResult] ''' - self.results = [ControllersChangeResult.from_json(o) for o in results or []] + self.results = [StringsWatchResult.from_json(o) for o in results or []] -class ControllersChanges(Type): - _toSchema = {'added': 'added', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed', 'demoted': 'demoted', 'converted': 'converted'} - _toPy = {'added': 'added', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed', 'demoted': 'demoted', 'converted': 'converted'} - def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None): +class AddSubnetParams(Type): + _toSchema = {'subnetproviderid': 'SubnetProviderId', 'spacetag': 'SpaceTag', 'subnettag': 'SubnetTag', 'zones': 'Zones'} + _toPy = {'SubnetTag': 'subnettag', 'SpaceTag': 'spacetag', 'Zones': 'zones', 'SubnetProviderId': 'subnetproviderid'} + def __init__(self, spacetag=None, subnetproviderid=None, subnettag=None, zones=None): ''' - added : typing.Sequence[str] - converted : typing.Sequence[str] - demoted : typing.Sequence[str] - maintained : typing.Sequence[str] - promoted : typing.Sequence[str] - removed : typing.Sequence[str] + spacetag : str + subnetproviderid : str + subnettag : str + zones : typing.Sequence[str] ''' - self.added = added - self.converted = converted - self.demoted = demoted - self.maintained = maintained - self.promoted = promoted - self.removed = removed + self.spacetag = spacetag + self.subnetproviderid = subnetproviderid + self.subnettag = subnettag + self.zones = zones -class ControllersSpec(Type): - _toSchema = {'modeltag': 'ModelTag', 'num_controllers': 'num-controllers', 'constraints': 'constraints', 'placement': 'placement', 'series': 'series'} - _toPy = {'num-controllers': 'num_controllers', 'ModelTag': 'modeltag', 'constraints': 'constraints', 'placement': 'placement', 'series': 'series'} - def __init__(self, modeltag=None, constraints=None, num_controllers=None, placement=None, series=None): +class AddSubnetsParams(Type): + _toSchema = {'subnets': 'Subnets'} + _toPy = {'Subnets': 'subnets'} + def __init__(self, subnets=None): ''' - modeltag : str - constraints : Value - num_controllers : int - placement : typing.Sequence[str] - series : str + subnets : typing.Sequence[~AddSubnetParams] ''' - self.modeltag = modeltag - self.constraints = Value.from_json(constraints) if constraints else None - self.num_controllers = num_controllers - self.placement = placement - self.series = series + self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] -class ControllersSpecs(Type): - _toSchema = {'specs': 'Specs'} - _toPy = {'Specs': 'specs'} - def __init__(self, specs=None): +class CreateSpaceParams(Type): + _toSchema = {'providerid': 'ProviderId', 'public': 'Public', 'spacetag': 'SpaceTag', 'subnettags': 'SubnetTags'} + _toPy = {'Public': 'public', 'SpaceTag': 'spacetag', 'SubnetTags': 'subnettags', 'ProviderId': 'providerid'} + def __init__(self, providerid=None, public=None, spacetag=None, subnettags=None): ''' - specs : typing.Sequence[~ControllersSpec] + providerid : str + public : bool + spacetag : str + subnettags : typing.Sequence[str] ''' - self.specs = [ControllersSpec.from_json(o) for o in specs or []] + self.providerid = providerid + self.public = public + self.spacetag = spacetag + self.subnettags = subnettags -class HAMember(Type): - _toSchema = {'series': 'Series', 'publicaddress': 'PublicAddress', 'tag': 'Tag'} - _toPy = {'Tag': 'tag', 'PublicAddress': 'publicaddress', 'Series': 'series'} - def __init__(self, publicaddress=None, series=None, tag=None): +class CreateSpacesParams(Type): + _toSchema = {'spaces': 'Spaces'} + _toPy = {'Spaces': 'spaces'} + def __init__(self, spaces=None): ''' - publicaddress : Address - series : str - tag : str + spaces : typing.Sequence[~CreateSpaceParams] ''' - self.publicaddress = Address.from_json(publicaddress) if publicaddress else None - self.series = series - self.tag = tag + self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] -class Member(Type): - _toSchema = {'hidden': 'Hidden', 'tags': 'Tags', 'buildindexes': 'BuildIndexes', 'address': 'Address', 'slavedelay': 'SlaveDelay', 'votes': 'Votes', 'id_': 'Id', 'arbiter': 'Arbiter', 'priority': 'Priority'} - _toPy = {'Tags': 'tags', 'SlaveDelay': 'slavedelay', 'Votes': 'votes', 'Arbiter': 'arbiter', 'Address': 'address', 'Hidden': 'hidden', 'Priority': 'priority', 'BuildIndexes': 'buildindexes', 'Id': 'id_'} - def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None): +class DiscoverSpacesResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - address : str - arbiter : bool - buildindexes : bool - hidden : bool - id_ : int - priority : float - slavedelay : int - tags : typing.Mapping[str, str] - votes : int + results : typing.Sequence[~ProviderSpace] ''' - self.address = address - self.arbiter = arbiter - self.buildindexes = buildindexes - self.hidden = hidden - self.id_ = id_ - self.priority = priority - self.slavedelay = slavedelay - self.tags = tags - self.votes = votes + self.results = [ProviderSpace.from_json(o) for o in results or []] -class MongoUpgradeResults(Type): - _toSchema = {'members': 'Members', 'master': 'Master', 'rsmembers': 'RsMembers'} - _toPy = {'Master': 'master', 'Members': 'members', 'RsMembers': 'rsmembers'} - def __init__(self, master=None, members=None, rsmembers=None): +class ListSubnetsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - master : HAMember - members : typing.Sequence[~HAMember] - rsmembers : typing.Sequence[~Member] + results : typing.Sequence[~Subnet] ''' - self.master = HAMember.from_json(master) if master else None - self.members = [HAMember.from_json(o) for o in members or []] - self.rsmembers = [Member.from_json(o) for o in rsmembers or []] + self.results = [Subnet.from_json(o) for o in results or []] -class ResumeReplicationParams(Type): - _toSchema = {'members': 'Members'} - _toPy = {'Members': 'members'} - def __init__(self, members=None): +class ProviderSpace(Type): + _toSchema = {'providerid': 'ProviderId', 'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'} + _toPy = {'ProviderId': 'providerid', 'Subnets': 'subnets', 'Error': 'error', 'Name': 'name'} + def __init__(self, error=None, name=None, providerid=None, subnets=None): ''' - members : typing.Sequence[~Member] + error : Error + name : str + providerid : str + subnets : typing.Sequence[~Subnet] ''' - self.members = [Member.from_json(o) for o in members or []] + self.error = Error.from_json(error) if error else None + self.name = name + self.providerid = providerid + self.subnets = [Subnet.from_json(o) for o in subnets or []] -class UpgradeMongoParams(Type): - _toSchema = {'minor': 'Minor', 'major': 'Major', 'storageengine': 'StorageEngine', 'patch': 'Patch'} - _toPy = {'StorageEngine': 'storageengine', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'} - def __init__(self, major=None, minor=None, patch=None, storageengine=None): +class Subnet(Type): + _toSchema = {'staticrangelowip': 'StaticRangeLowIP', 'spacetag': 'SpaceTag', 'cidr': 'CIDR', 'providerid': 'ProviderId', 'life': 'Life', 'staticrangehighip': 'StaticRangeHighIP', 'zones': 'Zones', 'vlantag': 'VLANTag', 'status': 'Status'} + _toPy = {'StaticRangeHighIP': 'staticrangehighip', 'VLANTag': 'vlantag', 'Zones': 'zones', 'SpaceTag': 'spacetag', 'Life': 'life', 'Status': 'status', 'ProviderId': 'providerid', 'StaticRangeLowIP': 'staticrangelowip', 'CIDR': 'cidr'} + def __init__(self, cidr=None, life=None, providerid=None, spacetag=None, staticrangehighip=None, staticrangelowip=None, status=None, vlantag=None, zones=None): ''' - major : int - minor : int - patch : str - storageengine : str + cidr : str + life : str + providerid : str + spacetag : str + staticrangehighip : typing.Sequence[int] + staticrangelowip : typing.Sequence[int] + status : str + vlantag : int + zones : typing.Sequence[str] ''' - self.major = major - self.minor = minor - self.patch = patch - self.storageengine = storageengine + self.cidr = cidr + self.life = life + self.providerid = providerid + self.spacetag = spacetag + self.staticrangehighip = staticrangehighip + self.staticrangelowip = staticrangelowip + self.status = status + self.vlantag = vlantag + self.zones = zones -class Version(Type): - _toSchema = {'minor': 'Minor', 'major': 'Major', 'storageengine': 'StorageEngine', 'patch': 'Patch'} - _toPy = {'StorageEngine': 'storageengine', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'} - def __init__(self, major=None, minor=None, patch=None, storageengine=None): +class SubnetsFilters(Type): + _toSchema = {'spacetag': 'SpaceTag', 'zone': 'Zone'} + _toPy = {'SpaceTag': 'spacetag', 'Zone': 'zone'} + def __init__(self, spacetag=None, zone=None): ''' - major : int - minor : int - patch : str - storageengine : str + spacetag : str + zone : str ''' - self.major = major - self.minor = minor - self.patch = patch - self.storageengine = storageengine + self.spacetag = spacetag + self.zone = zone -class SSHHostKeySet(Type): - _toSchema = {'entity_keys': 'entity-keys'} - _toPy = {'entity-keys': 'entity_keys'} - def __init__(self, entity_keys=None): +class BlockDevice(Type): + _toSchema = {'inuse': 'InUse', 'busaddress': 'BusAddress', 'devicename': 'DeviceName', 'size': 'Size', 'filesystemtype': 'FilesystemType', 'uuid': 'UUID', 'hardwareid': 'HardwareId', 'label': 'Label', 'mountpoint': 'MountPoint', 'devicelinks': 'DeviceLinks'} + _toPy = {'FilesystemType': 'filesystemtype', 'Label': 'label', 'Size': 'size', 'UUID': 'uuid', 'MountPoint': 'mountpoint', 'BusAddress': 'busaddress', 'InUse': 'inuse', 'DeviceName': 'devicename', 'DeviceLinks': 'devicelinks', 'HardwareId': 'hardwareid'} + def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None): ''' - entity_keys : typing.Sequence[~SSHHostKeys] + busaddress : str + devicelinks : typing.Sequence[str] + devicename : str + filesystemtype : str + hardwareid : str + inuse : bool + label : str + mountpoint : str + size : int + uuid : str ''' - self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] + self.busaddress = busaddress + self.devicelinks = devicelinks + self.devicename = devicename + self.filesystemtype = filesystemtype + self.hardwareid = hardwareid + self.inuse = inuse + self.label = label + self.mountpoint = mountpoint + self.size = size + self.uuid = uuid -class SSHHostKeys(Type): - _toSchema = {'tag': 'tag', 'public_keys': 'public-keys'} - _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} - def __init__(self, public_keys=None, tag=None): +class MachineBlockDevices(Type): + _toSchema = {'blockdevices': 'blockdevices', 'machine': 'machine'} + _toPy = {'blockdevices': 'blockdevices', 'machine': 'machine'} + def __init__(self, blockdevices=None, machine=None): ''' - public_keys : typing.Sequence[str] - tag : str + blockdevices : typing.Sequence[~BlockDevice] + machine : str ''' - self.public_keys = public_keys - self.tag = tag + self.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []] + self.machine = machine -class ImageFilterParams(Type): - _toSchema = {'images': 'images'} - _toPy = {'images': 'images'} - def __init__(self, images=None): +class SetMachineBlockDevices(Type): + _toSchema = {'machineblockdevices': 'machineblockdevices'} + _toPy = {'machineblockdevices': 'machineblockdevices'} + def __init__(self, machineblockdevices=None): ''' - images : typing.Sequence[~ImageSpec] + machineblockdevices : typing.Sequence[~MachineBlockDevices] ''' - self.images = [ImageSpec.from_json(o) for o in images or []] + self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []] -class ImageMetadata(Type): - _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind', 'created': 'created', 'url': 'url'} - _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind', 'created': 'created', 'url': 'url'} - def __init__(self, arch=None, created=None, kind=None, series=None, url=None): +class MachineStorageId(Type): + _toSchema = {'attachmenttag': 'attachmenttag', 'machinetag': 'machinetag'} + _toPy = {'attachmenttag': 'attachmenttag', 'machinetag': 'machinetag'} + def __init__(self, attachmenttag=None, machinetag=None): ''' - arch : str - created : str - kind : str - series : str - url : str + attachmenttag : str + machinetag : str ''' - self.arch = arch - self.created = created - self.kind = kind - self.series = series - self.url = url + self.attachmenttag = attachmenttag + self.machinetag = machinetag -class ImageSpec(Type): - _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind'} - _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind'} - def __init__(self, arch=None, kind=None, series=None): +class MachineStorageIdsWatchResult(Type): + _toSchema = {'changes': 'Changes', 'machinestorageidswatcherid': 'MachineStorageIdsWatcherId', 'error': 'Error'} + _toPy = {'Changes': 'changes', 'Error': 'error', 'MachineStorageIdsWatcherId': 'machinestorageidswatcherid'} + def __init__(self, changes=None, error=None, machinestorageidswatcherid=None): ''' - arch : str - kind : str - series : str + changes : typing.Sequence[~MachineStorageId] + error : Error + machinestorageidswatcherid : str ''' - self.arch = arch - self.kind = kind - self.series = series + self.changes = [MachineStorageId.from_json(o) for o in changes or []] + self.error = Error.from_json(error) if error else None + self.machinestorageidswatcherid = machinestorageidswatcherid -class ListImageResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None): +class BoolResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - result : typing.Sequence[~ImageMetadata] + results : typing.Sequence[~BoolResult] ''' - self.result = [ImageMetadata.from_json(o) for o in result or []] + self.results = [BoolResult.from_json(o) for o in results or []] -class CloudImageMetadata(Type): - _toSchema = {'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'image_id': 'image_id', 'series': 'series', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'stream': 'stream', 'region': 'region', 'priority': 'priority'} - _toPy = {'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'image_id': 'image_id', 'series': 'series', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'stream': 'stream', 'region': 'region', 'priority': 'priority'} - def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None): +class MachinePortRange(Type): + _toSchema = {'unittag': 'UnitTag', 'portrange': 'PortRange', 'relationtag': 'RelationTag'} + _toPy = {'RelationTag': 'relationtag', 'UnitTag': 'unittag', 'PortRange': 'portrange'} + def __init__(self, portrange=None, relationtag=None, unittag=None): ''' - arch : str - image_id : str - priority : int - region : str - root_storage_size : int - root_storage_type : str - series : str - source : str - stream : str - version : str - virt_type : str + portrange : PortRange + relationtag : str + unittag : str ''' - self.arch = arch - self.image_id = image_id - self.priority = priority - self.region = region - self.root_storage_size = root_storage_size - self.root_storage_type = root_storage_type - self.series = series - self.source = source - self.stream = stream - self.version = version - self.virt_type = virt_type + self.portrange = PortRange.from_json(portrange) if portrange else None + self.relationtag = relationtag + self.unittag = unittag -class CloudImageMetadataList(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None): +class MachinePorts(Type): + _toSchema = {'subnettag': 'SubnetTag', 'machinetag': 'MachineTag'} + _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'} + def __init__(self, machinetag=None, subnettag=None): ''' - metadata : typing.Sequence[~CloudImageMetadata] + machinetag : str + subnettag : str ''' - self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] - - -class ImageMetadataFilter(Type): - _toSchema = {'series': 'series', 'virt_type': 'virt_type', 'stream': 'stream', 'arches': 'arches', 'root_storage_type': 'root-storage-type', 'region': 'region'} - _toPy = {'arches': 'arches', 'virt_type': 'virt_type', 'stream': 'stream', 'series': 'series', 'root-storage-type': 'root_storage_type', 'region': 'region'} - def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None): - ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str - ''' - self.arches = arches - self.region = region - self.root_storage_type = root_storage_type - self.series = series - self.stream = stream - self.virt_type = virt_type - - -class ListCloudImageMetadataResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None): - ''' - result : typing.Sequence[~CloudImageMetadata] - ''' - self.result = [CloudImageMetadata.from_json(o) for o in result or []] + self.machinetag = machinetag + self.subnettag = subnettag -class MetadataImageIds(Type): - _toSchema = {'image_ids': 'image_ids'} - _toPy = {'image_ids': 'image_ids'} - def __init__(self, image_ids=None): +class MachinePortsParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - image_ids : typing.Sequence[str] + params : typing.Sequence[~MachinePorts] ''' - self.image_ids = image_ids + self.params = [MachinePorts.from_json(o) for o in params or []] -class MetadataSaveParams(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None): +class MachinePortsResult(Type): + _toSchema = {'ports': 'Ports', 'error': 'Error'} + _toPy = {'Error': 'error', 'Ports': 'ports'} + def __init__(self, error=None, ports=None): ''' - metadata : typing.Sequence[~CloudImageMetadataList] + error : Error + ports : typing.Sequence[~MachinePortRange] ''' - self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] + self.error = Error.from_json(error) if error else None + self.ports = [MachinePortRange.from_json(o) for o in ports or []] -class EntityStatusArgs(Type): - _toSchema = {'info': 'Info', 'status': 'Status', 'tag': 'Tag', 'data': 'Data'} - _toPy = {'Info': 'info', 'Status': 'status', 'Tag': 'tag', 'Data': 'data'} - def __init__(self, data=None, info=None, status=None, tag=None): +class MachinePortsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - data : typing.Mapping[str, typing.Any] - info : str - status : str - tag : str + results : typing.Sequence[~MachinePortsResult] ''' - self.data = data - self.info = info - self.status = status - self.tag = tag + self.results = [MachinePortsResult.from_json(o) for o in results or []] -class MachineAddresses(Type): - _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'} - _toPy = {'Tag': 'tag', 'Addresses': 'addresses'} - def __init__(self, addresses=None, tag=None): +class NotifyWatchResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - addresses : typing.Sequence[~Address] - tag : str + results : typing.Sequence[~NotifyWatchResult] ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.tag = tag + self.results = [NotifyWatchResult.from_json(o) for o in results or []] -class MachineAddressesResult(Type): - _toSchema = {'addresses': 'Addresses', 'error': 'Error'} - _toPy = {'Error': 'error', 'Addresses': 'addresses'} - def __init__(self, addresses=None, error=None): +class PortRange(Type): + _toSchema = {'toport': 'ToPort', 'fromport': 'FromPort', 'protocol': 'Protocol'} + _toPy = {'FromPort': 'fromport', 'Protocol': 'protocol', 'ToPort': 'toport'} + def __init__(self, fromport=None, protocol=None, toport=None): ''' - addresses : typing.Sequence[~Address] - error : Error + fromport : int + protocol : str + toport : int ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.error = Error.from_json(error) if error else None + self.fromport = fromport + self.protocol = protocol + self.toport = toport -class MachineAddressesResults(Type): +class StringResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~MachineAddressesResult] - ''' - self.results = [MachineAddressesResult.from_json(o) for o in results or []] - - -class SetMachinesAddresses(Type): - _toSchema = {'machineaddresses': 'MachineAddresses'} - _toPy = {'MachineAddresses': 'machineaddresses'} - def __init__(self, machineaddresses=None): - ''' - machineaddresses : typing.Sequence[~MachineAddresses] + results : typing.Sequence[~StringResult] ''' - self.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []] + self.results = [StringResult.from_json(o) for o in results or []] -class SetStatus(Type): - _toSchema = {'entities': 'Entities'} - _toPy = {'Entities': 'entities'} - def __init__(self, entities=None): +class StringsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - entities : typing.Sequence[~EntityStatusArgs] + results : typing.Sequence[~StringsResult] ''' - self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] + self.results = [StringsResult.from_json(o) for o in results or []] -class StatusResult(Type): - _toSchema = {'info': 'Info', 'status': 'Status', 'data': 'Data', 'error': 'Error', 'since': 'Since', 'id_': 'Id', 'life': 'Life'} - _toPy = {'Status': 'status', 'Since': 'since', 'Life': 'life', 'Info': 'info', 'Error': 'error', 'Data': 'data', 'Id': 'id_'} - def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None): +class ControllersChangeResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} + def __init__(self, error=None, result=None): ''' - data : typing.Mapping[str, typing.Any] error : Error - id_ : str - info : str - life : str - since : str - status : str + result : ControllersChanges ''' - self.data = data self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.info = info - self.life = life - self.since = since - self.status = status + self.result = ControllersChanges.from_json(result) if result else None -class StatusResults(Type): +class ControllersChangeResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StatusResult] + results : typing.Sequence[~ControllersChangeResult] ''' - self.results = [StatusResult.from_json(o) for o in results or []] + self.results = [ControllersChangeResult.from_json(o) for o in results or []] -class ListSSHKeys(Type): - _toSchema = {'mode': 'Mode', 'entities': 'Entities'} - _toPy = {'Mode': 'mode', 'Entities': 'entities'} - def __init__(self, entities=None, mode=None): +class ControllersChanges(Type): + _toSchema = {'maintained': 'maintained', 'added': 'added', 'removed': 'removed', 'promoted': 'promoted', 'converted': 'converted', 'demoted': 'demoted'} + _toPy = {'maintained': 'maintained', 'added': 'added', 'removed': 'removed', 'promoted': 'promoted', 'converted': 'converted', 'demoted': 'demoted'} + def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None): ''' - entities : Entities - mode : bool + 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.entities = Entities.from_json(entities) if entities else None - self.mode = mode + self.added = added + self.converted = converted + self.demoted = demoted + self.maintained = maintained + self.promoted = promoted + self.removed = removed -class ModifyUserSSHKeys(Type): - _toSchema = {'keys': 'Keys', 'user': 'User'} - _toPy = {'Keys': 'keys', 'User': 'user'} - def __init__(self, keys=None, user=None): +class ControllersSpec(Type): + _toSchema = {'constraints': 'constraints', 'modeltag': 'ModelTag', 'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series'} + _toPy = {'ModelTag': 'modeltag', 'series': 'series', 'num-controllers': 'num_controllers', 'placement': 'placement', 'constraints': 'constraints'} + def __init__(self, modeltag=None, constraints=None, num_controllers=None, placement=None, series=None): ''' - keys : typing.Sequence[str] - user : str + modeltag : str + constraints : Value + num_controllers : int + placement : typing.Sequence[str] + series : str ''' - self.keys = keys - self.user = user + self.modeltag = modeltag + self.constraints = Value.from_json(constraints) if constraints else None + self.num_controllers = num_controllers + self.placement = placement + self.series = series -class ClaimLeadershipBulkParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class ControllersSpecs(Type): + _toSchema = {'specs': 'Specs'} + _toPy = {'Specs': 'specs'} + def __init__(self, specs=None): ''' - params : typing.Sequence[~ClaimLeadershipParams] + specs : typing.Sequence[~ControllersSpec] ''' - self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] + self.specs = [ControllersSpec.from_json(o) for o in specs or []] -class ClaimLeadershipBulkResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class HAMember(Type): + _toSchema = {'publicaddress': 'PublicAddress', 'series': 'Series', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'PublicAddress': 'publicaddress', 'Series': 'series'} + def __init__(self, publicaddress=None, series=None, tag=None): ''' - results : typing.Sequence[~ErrorResult] + publicaddress : Address + series : str + tag : str ''' - self.results = [ErrorResult.from_json(o) for o in results or []] + self.publicaddress = Address.from_json(publicaddress) if publicaddress else None + self.series = series + self.tag = tag -class ClaimLeadershipParams(Type): - _toSchema = {'unittag': 'UnitTag', 'durationseconds': 'DurationSeconds', 'servicetag': 'ServiceTag'} - _toPy = {'UnitTag': 'unittag', 'DurationSeconds': 'durationseconds', 'ServiceTag': 'servicetag'} - def __init__(self, durationseconds=None, servicetag=None, unittag=None): +class Member(Type): + _toSchema = {'priority': 'Priority', 'slavedelay': 'SlaveDelay', 'id_': 'Id', 'hidden': 'Hidden', 'votes': 'Votes', 'buildindexes': 'BuildIndexes', 'address': 'Address', 'tags': 'Tags', 'arbiter': 'Arbiter'} + _toPy = {'Hidden': 'hidden', 'Priority': 'priority', 'SlaveDelay': 'slavedelay', 'Id': 'id_', 'Arbiter': 'arbiter', 'Votes': 'votes', 'Tags': 'tags', 'Address': 'address', 'BuildIndexes': 'buildindexes'} + def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None): ''' - durationseconds : float - servicetag : str - unittag : str + address : str + arbiter : bool + buildindexes : bool + hidden : bool + id_ : int + priority : float + slavedelay : int + tags : typing.Mapping[str, str] + votes : int ''' - self.durationseconds = durationseconds - self.servicetag = servicetag - self.unittag = unittag + self.address = address + self.arbiter = arbiter + self.buildindexes = buildindexes + self.hidden = hidden + self.id_ = id_ + self.priority = priority + self.slavedelay = slavedelay + self.tags = tags + self.votes = votes -class ServiceTag(Type): - _toSchema = {'name': 'Name'} - _toPy = {'Name': 'name'} - def __init__(self, name=None): +class MongoUpgradeResults(Type): + _toSchema = {'members': 'Members', 'master': 'Master', 'rsmembers': 'RsMembers'} + _toPy = {'Master': 'master', 'Members': 'members', 'RsMembers': 'rsmembers'} + def __init__(self, master=None, members=None, rsmembers=None): ''' - name : str + master : HAMember + members : typing.Sequence[~HAMember] + rsmembers : typing.Sequence[~Member] ''' - self.name = name - - -class ActionExecutionResult(Type): - _toSchema = {'message': 'message', 'results': 'results', 'status': 'status', 'actiontag': 'actiontag'} - _toPy = {'message': 'message', 'results': 'results', 'status': 'status', 'actiontag': 'actiontag'} - def __init__(self, actiontag=None, message=None, results=None, status=None): - ''' - actiontag : str - message : str - results : typing.Mapping[str, typing.Any] - status : str - ''' - self.actiontag = actiontag - self.message = message - self.results = results - self.status = status + self.master = HAMember.from_json(master) if master else None + self.members = [HAMember.from_json(o) for o in members or []] + self.rsmembers = [Member.from_json(o) for o in rsmembers or []] -class ActionExecutionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ResumeReplicationParams(Type): + _toSchema = {'members': 'Members'} + _toPy = {'Members': 'members'} + def __init__(self, members=None): ''' - results : typing.Sequence[~ActionExecutionResult] + members : typing.Sequence[~Member] ''' - self.results = [ActionExecutionResult.from_json(o) for o in results or []] + self.members = [Member.from_json(o) for o in members or []] -class JobsResult(Type): - _toSchema = {'jobs': 'Jobs', 'error': 'Error'} - _toPy = {'Error': 'error', 'Jobs': 'jobs'} - def __init__(self, error=None, jobs=None): +class UpgradeMongoParams(Type): + _toSchema = {'minor': 'Minor', 'storageengine': 'StorageEngine', 'patch': 'Patch', 'major': 'Major'} + _toPy = {'Patch': 'patch', 'Major': 'major', 'StorageEngine': 'storageengine', 'Minor': 'minor'} + def __init__(self, major=None, minor=None, patch=None, storageengine=None): ''' - error : Error - jobs : typing.Sequence[str] + major : int + minor : int + patch : str + storageengine : str ''' - self.error = Error.from_json(error) if error else None - self.jobs = jobs + self.major = major + self.minor = minor + self.patch = patch + self.storageengine = storageengine -class JobsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class Version(Type): + _toSchema = {'minor': 'Minor', 'storageengine': 'StorageEngine', 'patch': 'Patch', 'major': 'Major'} + _toPy = {'Patch': 'patch', 'Major': 'major', 'StorageEngine': 'storageengine', 'Minor': 'minor'} + def __init__(self, major=None, minor=None, patch=None, storageengine=None): ''' - results : typing.Sequence[~JobsResult] + major : int + minor : int + patch : str + storageengine : str ''' - self.results = [JobsResult.from_json(o) for o in results or []] + self.major = major + self.minor = minor + self.patch = patch + self.storageengine = storageengine -class NetworkConfig(Type): - _toSchema = {'dnssearchdomains': 'DNSSearchDomains', 'gatewayaddress': 'GatewayAddress', 'providerspaceid': 'ProviderSpaceId', 'providersubnetid': 'ProviderSubnetId', 'noautostart': 'NoAutoStart', 'mtu': 'MTU', 'providervlanid': 'ProviderVLANId', 'provideraddressid': 'ProviderAddressId', 'dnsservers': 'DNSServers', 'interfacename': 'InterfaceName', 'providerid': 'ProviderId', 'vlantag': 'VLANTag', 'cidr': 'CIDR', 'address': 'Address', 'parentinterfacename': 'ParentInterfaceName', 'interfacetype': 'InterfaceType', 'disabled': 'Disabled', 'deviceindex': 'DeviceIndex', 'configtype': 'ConfigType', 'macaddress': 'MACAddress'} - _toPy = {'DeviceIndex': 'deviceindex', 'MTU': 'mtu', 'Disabled': 'disabled', 'ProviderId': 'providerid', 'CIDR': 'cidr', 'MACAddress': 'macaddress', 'InterfaceType': 'interfacetype', 'GatewayAddress': 'gatewayaddress', 'InterfaceName': 'interfacename', 'NoAutoStart': 'noautostart', 'DNSServers': 'dnsservers', 'ParentInterfaceName': 'parentinterfacename', 'VLANTag': 'vlantag', 'ProviderVLANId': 'providervlanid', 'ProviderSubnetId': 'providersubnetid', 'ProviderSpaceId': 'providerspaceid', 'Address': 'address', 'ConfigType': 'configtype', 'ProviderAddressId': 'provideraddressid', 'DNSSearchDomains': 'dnssearchdomains'} - def __init__(self, address=None, cidr=None, configtype=None, dnssearchdomains=None, dnsservers=None, deviceindex=None, disabled=None, gatewayaddress=None, interfacename=None, interfacetype=None, macaddress=None, mtu=None, noautostart=None, parentinterfacename=None, provideraddressid=None, providerid=None, providerspaceid=None, providersubnetid=None, providervlanid=None, vlantag=None): +class SSHHostKeySet(Type): + _toSchema = {'entity_keys': 'entity-keys'} + _toPy = {'entity-keys': 'entity_keys'} + def __init__(self, entity_keys=None): ''' - address : str - cidr : str - configtype : str - dnssearchdomains : typing.Sequence[str] - dnsservers : typing.Sequence[str] - deviceindex : int - disabled : bool - gatewayaddress : str - interfacename : str - interfacetype : str - macaddress : str - mtu : int - noautostart : bool - parentinterfacename : str - provideraddressid : str - providerid : str - providerspaceid : str - providersubnetid : str - providervlanid : str - vlantag : int + entity_keys : typing.Sequence[~SSHHostKeys] ''' - self.address = address - self.cidr = cidr - self.configtype = configtype - self.dnssearchdomains = dnssearchdomains - self.dnsservers = dnsservers - self.deviceindex = deviceindex - self.disabled = disabled - self.gatewayaddress = gatewayaddress - self.interfacename = interfacename - self.interfacetype = interfacetype - self.macaddress = macaddress - self.mtu = mtu - self.noautostart = noautostart - self.parentinterfacename = parentinterfacename - self.provideraddressid = provideraddressid - self.providerid = providerid - self.providerspaceid = providerspaceid - self.providersubnetid = providersubnetid - self.providervlanid = providervlanid - self.vlantag = vlantag + self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] -class SetMachineNetworkConfig(Type): - _toSchema = {'config': 'Config', 'tag': 'Tag'} - _toPy = {'Tag': 'tag', 'Config': 'config'} - def __init__(self, config=None, tag=None): +class SSHHostKeys(Type): + _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'} + _toPy = {'public-keys': 'public_keys', 'tag': 'tag'} + def __init__(self, public_keys=None, tag=None): ''' - config : typing.Sequence[~NetworkConfig] + public_keys : typing.Sequence[str] tag : str ''' - self.config = [NetworkConfig.from_json(o) for o in config or []] + self.public_keys = public_keys self.tag = tag -class MeterStatusResult(Type): - _toSchema = {'info': 'Info', 'error': 'Error', 'code': 'Code'} - _toPy = {'Info': 'info', 'Error': 'error', 'Code': 'code'} - def __init__(self, code=None, error=None, info=None): +class ImageFilterParams(Type): + _toSchema = {'images': 'images'} + _toPy = {'images': 'images'} + def __init__(self, images=None): ''' - code : str - error : Error - info : str + images : typing.Sequence[~ImageSpec] ''' - self.code = code - self.error = Error.from_json(error) if error else None - self.info = info + self.images = [ImageSpec.from_json(o) for o in images or []] -class MeterStatusResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ImageMetadata(Type): + _toSchema = {'created': 'created', 'arch': 'arch', 'kind': 'kind', 'series': 'series', 'url': 'url'} + _toPy = {'created': 'created', 'arch': 'arch', 'kind': 'kind', 'series': 'series', 'url': 'url'} + def __init__(self, arch=None, created=None, kind=None, series=None, url=None): ''' - results : typing.Sequence[~MeterStatusResult] + arch : str + created : str + kind : str + series : str + url : str ''' - self.results = [MeterStatusResult.from_json(o) for o in results or []] + self.arch = arch + self.created = created + self.kind = kind + self.series = series + self.url = url -class Metric(Type): - _toSchema = {'key': 'Key', 'time': 'Time', 'value': 'Value'} - _toPy = {'Time': 'time', 'Value': 'value', 'Key': 'key'} - def __init__(self, key=None, time=None, value=None): +class ImageSpec(Type): + _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind'} + _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind'} + def __init__(self, arch=None, kind=None, series=None): ''' - key : str - time : str - value : str + arch : str + kind : str + series : str ''' - self.key = key - self.time = time - self.value = value + self.arch = arch + self.kind = kind + self.series = series -class MetricBatch(Type): - _toSchema = {'charmurl': 'CharmURL', 'metrics': 'Metrics', 'created': 'Created', 'uuid': 'UUID'} - _toPy = {'Metrics': 'metrics', 'CharmURL': 'charmurl', 'Created': 'created', 'UUID': 'uuid'} - def __init__(self, charmurl=None, created=None, metrics=None, uuid=None): +class ListImageResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None): ''' - charmurl : str - created : str - metrics : typing.Sequence[~Metric] - uuid : str + result : typing.Sequence[~ImageMetadata] ''' - self.charmurl = charmurl - self.created = created - self.metrics = [Metric.from_json(o) for o in metrics or []] - self.uuid = uuid + self.result = [ImageMetadata.from_json(o) for o in result or []] -class MetricBatchParam(Type): - _toSchema = {'batch': 'Batch', 'tag': 'Tag'} - _toPy = {'Tag': 'tag', 'Batch': 'batch'} - def __init__(self, batch=None, tag=None): +class CloudImageMetadata(Type): + _toSchema = {'image_id': 'image_id', 'priority': 'priority', 'series': 'series', 'region': 'region', 'virt_type': 'virt_type', 'version': 'version', 'root_storage_size': 'root_storage_size', 'stream': 'stream', 'arch': 'arch', 'source': 'source', 'root_storage_type': 'root_storage_type'} + _toPy = {'image_id': 'image_id', 'priority': 'priority', 'series': 'series', 'region': 'region', 'virt_type': 'virt_type', 'version': 'version', 'root_storage_size': 'root_storage_size', 'stream': 'stream', 'arch': 'arch', 'source': 'source', 'root_storage_type': 'root_storage_type'} + def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None): ''' - batch : MetricBatch - tag : str + arch : str + image_id : str + priority : int + region : str + root_storage_size : int + root_storage_type : str + series : str + source : str + stream : str + version : str + virt_type : str ''' - self.batch = MetricBatch.from_json(batch) if batch else None - self.tag = tag + self.arch = arch + self.image_id = image_id + self.priority = priority + self.region = region + self.root_storage_size = root_storage_size + self.root_storage_type = root_storage_type + self.series = series + self.source = source + self.stream = stream + self.version = version + self.virt_type = virt_type -class MetricBatchParams(Type): - _toSchema = {'batches': 'Batches'} - _toPy = {'Batches': 'batches'} - def __init__(self, batches=None): +class CloudImageMetadataList(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None): ''' - batches : typing.Sequence[~MetricBatchParam] + metadata : typing.Sequence[~CloudImageMetadata] ''' - self.batches = [MetricBatchParam.from_json(o) for o in batches or []] + self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] -class EntityMetrics(Type): - _toSchema = {'error': 'error', 'metrics': 'metrics'} - _toPy = {'error': 'error', 'metrics': 'metrics'} - def __init__(self, error=None, metrics=None): +class ImageMetadataFilter(Type): + _toSchema = {'virt_type': 'virt_type', 'series': 'series', 'region': 'region', 'arches': 'arches', 'stream': 'stream', 'root_storage_type': 'root-storage-type'} + _toPy = {'virt_type': 'virt_type', 'series': 'series', 'region': 'region', 'arches': 'arches', 'stream': 'stream', 'root-storage-type': 'root_storage_type'} + def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None): ''' - error : Error - metrics : typing.Sequence[~MetricResult] + arches : typing.Sequence[str] + region : str + root_storage_type : str + series : typing.Sequence[str] + stream : str + virt_type : str ''' - self.error = Error.from_json(error) if error else None - self.metrics = [MetricResult.from_json(o) for o in metrics or []] + self.arches = arches + self.region = region + self.root_storage_type = root_storage_type + self.series = series + self.stream = stream + self.virt_type = virt_type -class MeterStatusParam(Type): - _toSchema = {'info': 'info', 'tag': 'tag', 'code': 'code'} - _toPy = {'info': 'info', 'tag': 'tag', 'code': 'code'} - def __init__(self, code=None, info=None, tag=None): - ''' - code : str - info : str - tag : str +class ListCloudImageMetadataResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None): ''' - self.code = code - self.info = info - self.tag = tag + result : typing.Sequence[~CloudImageMetadata] + ''' + self.result = [CloudImageMetadata.from_json(o) for o in result or []] -class MeterStatusParams(Type): - _toSchema = {'statues': 'statues'} - _toPy = {'statues': 'statues'} - def __init__(self, statues=None): +class MetadataImageIds(Type): + _toSchema = {'image_ids': 'image_ids'} + _toPy = {'image_ids': 'image_ids'} + def __init__(self, image_ids=None): ''' - statues : typing.Sequence[~MeterStatusParam] + image_ids : typing.Sequence[str] ''' - self.statues = [MeterStatusParam.from_json(o) for o in statues or []] + self.image_ids = image_ids -class MetricResult(Type): - _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'} - _toPy = {'key': 'key', 'time': 'time', 'value': 'value'} - def __init__(self, key=None, time=None, value=None): +class MetadataSaveParams(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None): ''' - key : str - time : str - value : str + metadata : typing.Sequence[~CloudImageMetadataList] ''' - self.key = key - self.time = time - self.value = value + self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] -class MetricResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class EntityStatusArgs(Type): + _toSchema = {'data': 'Data', 'tag': 'Tag', 'info': 'Info', 'status': 'Status'} + _toPy = {'Tag': 'tag', 'Status': 'status', 'Data': 'data', 'Info': 'info'} + def __init__(self, data=None, info=None, status=None, tag=None): ''' - results : typing.Sequence[~EntityMetrics] + data : typing.Mapping[str, typing.Any] + info : str + status : str + tag : str ''' - self.results = [EntityMetrics.from_json(o) for o in results or []] + self.data = data + self.info = info + self.status = status + self.tag = tag -class PhaseResult(Type): - _toSchema = {'error': 'Error', 'phase': 'phase'} - _toPy = {'Error': 'error', 'phase': 'phase'} - def __init__(self, error=None, phase=None): +class MachineAddresses(Type): + _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'} + _toPy = {'Addresses': 'addresses', 'Tag': 'tag'} + def __init__(self, addresses=None, tag=None): ''' + addresses : typing.Sequence[~Address] + tag : str + ''' + self.addresses = [Address.from_json(o) for o in addresses or []] + self.tag = tag + + +class MachineAddressesResult(Type): + _toSchema = {'addresses': 'Addresses', 'error': 'Error'} + _toPy = {'Addresses': 'addresses', 'Error': 'error'} + def __init__(self, addresses=None, error=None): + ''' + addresses : typing.Sequence[~Address] error : Error - phase : str ''' + self.addresses = [Address.from_json(o) for o in addresses or []] self.error = Error.from_json(error) if error else None - self.phase = phase -class PhaseResults(Type): +class MachineAddressesResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~PhaseResult] + results : typing.Sequence[~MachineAddressesResult] ''' - self.results = [PhaseResult.from_json(o) for o in results or []] + self.results = [MachineAddressesResult.from_json(o) for o in results or []] -class FullMigrationStatus(Type): - _toSchema = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'} - _toPy = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'} - def __init__(self, attempt=None, phase=None, spec=None): +class SetMachinesAddresses(Type): + _toSchema = {'machineaddresses': 'MachineAddresses'} + _toPy = {'MachineAddresses': 'machineaddresses'} + def __init__(self, machineaddresses=None): ''' - attempt : int - phase : str - spec : ModelMigrationSpec + machineaddresses : typing.Sequence[~MachineAddresses] ''' - self.attempt = attempt - self.phase = phase - self.spec = ModelMigrationSpec.from_json(spec) if spec else None + self.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []] -class SerializedModel(Type): - _toSchema = {'bytes_': 'bytes'} - _toPy = {'bytes': 'bytes_'} - def __init__(self, bytes_=None): +class SetStatus(Type): + _toSchema = {'entities': 'Entities'} + _toPy = {'Entities': 'entities'} + def __init__(self, entities=None): ''' - bytes_ : typing.Sequence[int] + entities : typing.Sequence[~EntityStatusArgs] ''' - self.bytes_ = bytes_ + self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] -class SetMigrationPhaseArgs(Type): - _toSchema = {'phase': 'phase'} - _toPy = {'phase': 'phase'} - def __init__(self, phase=None): +class StatusResult(Type): + _toSchema = {'since': 'Since', 'data': 'Data', 'info': 'Info', 'life': 'Life', 'error': 'Error', 'id_': 'Id', 'status': 'Status'} + _toPy = {'Id': 'id_', 'Data': 'data', 'Since': 'since', 'Error': 'error', 'Life': 'life', 'Status': 'status', 'Info': 'info'} + def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None): ''' - phase : str + data : typing.Mapping[str, typing.Any] + error : Error + id_ : str + info : str + life : str + since : str + status : str ''' - self.phase = phase + self.data = data + self.error = Error.from_json(error) if error else None + self.id_ = id_ + self.info = info + self.life = life + self.since = since + self.status = status -class MigrationStatus(Type): - _toSchema = {'source_api_addrs': 'source-api-addrs', 'attempt': 'attempt', 'target_api_addrs': 'target-api-addrs', 'source_ca_cert': 'source-ca-cert', 'phase': 'phase', 'target_ca_cert': 'target-ca-cert'} - _toPy = {'attempt': 'attempt', 'target-api-addrs': 'target_api_addrs', 'target-ca-cert': 'target_ca_cert', 'phase': 'phase', 'source-ca-cert': 'source_ca_cert', 'source-api-addrs': 'source_api_addrs'} - def __init__(self, attempt=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None): +class StatusResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - attempt : int - phase : str - source_api_addrs : typing.Sequence[str] - source_ca_cert : str - target_api_addrs : typing.Sequence[str] - target_ca_cert : str + results : typing.Sequence[~StatusResult] ''' - self.attempt = attempt - self.phase = phase - self.source_api_addrs = source_api_addrs - self.source_ca_cert = source_ca_cert - self.target_api_addrs = target_api_addrs - self.target_ca_cert = target_ca_cert + self.results = [StatusResult.from_json(o) for o in results or []] -class ModelArgs(Type): - _toSchema = {'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag'} - def __init__(self, model_tag=None): +class ListSSHKeys(Type): + _toSchema = {'mode': 'Mode', 'entities': 'Entities'} + _toPy = {'Entities': 'entities', 'Mode': 'mode'} + def __init__(self, entities=None, mode=None): ''' - model_tag : str + entities : Entities + mode : bool ''' - self.model_tag = model_tag + self.entities = Entities.from_json(entities) if entities else None + self.mode = mode -class ModelCreateArgs(Type): - _toSchema = {'config': 'Config', 'account': 'Account', 'ownertag': 'OwnerTag'} - _toPy = {'Account': 'account', 'Config': 'config', 'OwnerTag': 'ownertag'} - def __init__(self, account=None, config=None, ownertag=None): +class ModifyUserSSHKeys(Type): + _toSchema = {'keys': 'Keys', 'user': 'User'} + _toPy = {'User': 'user', 'Keys': 'keys'} + def __init__(self, keys=None, user=None): ''' - account : typing.Mapping[str, typing.Any] - config : typing.Mapping[str, typing.Any] - ownertag : str + keys : typing.Sequence[str] + user : str ''' - self.account = account - self.config = config - self.ownertag = ownertag + self.keys = keys + self.user = user -class ModelInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None): +class ApplicationTag(Type): + _toSchema = {'name': 'Name'} + _toPy = {'Name': 'name'} + def __init__(self, name=None): ''' - error : Error - result : ModelInfo + name : str ''' - self.error = Error.from_json(error) if error else None - self.result = ModelInfo.from_json(result) if result else None + self.name = name -class ModelInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ClaimLeadershipBulkParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - results : typing.Sequence[~ModelInfoResult] + params : typing.Sequence[~ClaimLeadershipParams] ''' - self.results = [ModelInfoResult.from_json(o) for o in results or []] + self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] -class ModelSkeletonConfigArgs(Type): - _toSchema = {'provider': 'Provider', 'region': 'Region'} - _toPy = {'Region': 'region', 'Provider': 'provider'} - def __init__(self, provider=None, region=None): +class ClaimLeadershipBulkResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - provider : str - region : str + results : typing.Sequence[~ErrorResult] ''' - self.provider = provider - self.region = region + self.results = [ErrorResult.from_json(o) for o in results or []] -class ModifyModelAccess(Type): - _toSchema = {'user_tag': 'user-tag', 'access': 'access', 'action': 'action', 'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag', 'access': 'access', 'action': 'action', 'user-tag': 'user_tag'} - def __init__(self, access=None, action=None, model_tag=None, user_tag=None): +class ClaimLeadershipParams(Type): + _toSchema = {'unittag': 'UnitTag', 'applicationtag': 'ApplicationTag', 'durationseconds': 'DurationSeconds'} + _toPy = {'UnitTag': 'unittag', 'DurationSeconds': 'durationseconds', 'ApplicationTag': 'applicationtag'} + def __init__(self, applicationtag=None, durationseconds=None, unittag=None): ''' - access : str - action : str - model_tag : str - user_tag : str + applicationtag : str + durationseconds : float + unittag : str ''' - self.access = access - self.action = action - self.model_tag = model_tag - self.user_tag = user_tag + self.applicationtag = applicationtag + self.durationseconds = durationseconds + self.unittag = unittag -class ModifyModelAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None): +class ActionExecutionResult(Type): + _toSchema = {'message': 'message', 'results': 'results', 'actiontag': 'actiontag', 'status': 'status'} + _toPy = {'message': 'message', 'results': 'results', 'actiontag': 'actiontag', 'status': 'status'} + def __init__(self, actiontag=None, message=None, results=None, status=None): ''' - changes : typing.Sequence[~ModifyModelAccess] + actiontag : str + message : str + results : typing.Mapping[str, typing.Any] + status : str ''' - self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] + self.actiontag = actiontag + self.message = message + self.results = results + self.status = status -class ConstraintsResult(Type): - _toSchema = {'error': 'Error', 'constraints': 'Constraints'} - _toPy = {'Constraints': 'constraints', 'Error': 'error'} - def __init__(self, constraints=None, error=None): +class ActionExecutionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~ActionExecutionResult] + ''' + self.results = [ActionExecutionResult.from_json(o) for o in results or []] + + +class JobsResult(Type): + _toSchema = {'jobs': 'Jobs', 'error': 'Error'} + _toPy = {'Error': 'error', 'Jobs': 'jobs'} + def __init__(self, error=None, jobs=None): ''' - constraints : Value error : Error + jobs : typing.Sequence[str] ''' - self.constraints = Value.from_json(constraints) if constraints else None self.error = Error.from_json(error) if error else None + self.jobs = jobs -class ConstraintsResults(Type): +class JobsResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ConstraintsResult] - ''' - self.results = [ConstraintsResult.from_json(o) for o in results or []] - - -class ContainerConfig(Type): - _toSchema = {'sslhostnameverification': 'SSLHostnameVerification', 'authorizedkeys': 'AuthorizedKeys', 'aptproxy': 'AptProxy', 'updatebehavior': 'UpdateBehavior', 'providertype': 'ProviderType', 'allowlxcloopmounts': 'AllowLXCLoopMounts', 'proxy': 'Proxy', 'aptmirror': 'AptMirror', 'preferipv6': 'PreferIPv6'} - _toPy = {'AuthorizedKeys': 'authorizedkeys', 'AptMirror': 'aptmirror', 'AptProxy': 'aptproxy', 'SSLHostnameVerification': 'sslhostnameverification', 'PreferIPv6': 'preferipv6', 'AllowLXCLoopMounts': 'allowlxcloopmounts', 'UpdateBehavior': 'updatebehavior', 'Proxy': 'proxy', 'ProviderType': 'providertype'} - def __init__(self, allowlxcloopmounts=None, aptmirror=None, aptproxy=None, authorizedkeys=None, preferipv6=None, providertype=None, proxy=None, sslhostnameverification=None, updatebehavior=None): - ''' - allowlxcloopmounts : bool - aptmirror : str - aptproxy : Settings - authorizedkeys : str - preferipv6 : bool - providertype : str - proxy : Settings - sslhostnameverification : bool - updatebehavior : UpdateBehavior + results : typing.Sequence[~JobsResult] ''' - self.allowlxcloopmounts = allowlxcloopmounts - self.aptmirror = aptmirror - self.aptproxy = Settings.from_json(aptproxy) if aptproxy else None - self.authorizedkeys = authorizedkeys - self.preferipv6 = preferipv6 - self.providertype = providertype - self.proxy = Settings.from_json(proxy) if proxy else None - self.sslhostnameverification = sslhostnameverification - self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None + self.results = [JobsResult.from_json(o) for o in results or []] -class ContainerManagerConfig(Type): - _toSchema = {'managerconfig': 'ManagerConfig'} - _toPy = {'ManagerConfig': 'managerconfig'} - def __init__(self, managerconfig=None): +class NetworkConfig(Type): + _toSchema = {'mtu': 'MTU', 'disabled': 'Disabled', 'interfacename': 'InterfaceName', 'dnsservers': 'DNSServers', 'providerid': 'ProviderId', 'providersubnetid': 'ProviderSubnetId', 'deviceindex': 'DeviceIndex', 'vlantag': 'VLANTag', 'provideraddressid': 'ProviderAddressId', 'dnssearchdomains': 'DNSSearchDomains', 'noautostart': 'NoAutoStart', 'macaddress': 'MACAddress', 'address': 'Address', 'cidr': 'CIDR', 'interfacetype': 'InterfaceType', 'parentinterfacename': 'ParentInterfaceName', 'gatewayaddress': 'GatewayAddress', 'providervlanid': 'ProviderVLANId', 'configtype': 'ConfigType', 'providerspaceid': 'ProviderSpaceId'} + _toPy = {'InterfaceType': 'interfacetype', 'ConfigType': 'configtype', 'ProviderVLANId': 'providervlanid', 'ProviderAddressId': 'provideraddressid', 'Disabled': 'disabled', 'ProviderSpaceId': 'providerspaceid', 'GatewayAddress': 'gatewayaddress', 'InterfaceName': 'interfacename', 'ProviderSubnetId': 'providersubnetid', 'MTU': 'mtu', 'VLANTag': 'vlantag', 'NoAutoStart': 'noautostart', 'DNSServers': 'dnsservers', 'DNSSearchDomains': 'dnssearchdomains', 'DeviceIndex': 'deviceindex', 'Address': 'address', 'ProviderId': 'providerid', 'MACAddress': 'macaddress', 'CIDR': 'cidr', 'ParentInterfaceName': 'parentinterfacename'} + def __init__(self, address=None, cidr=None, configtype=None, dnssearchdomains=None, dnsservers=None, deviceindex=None, disabled=None, gatewayaddress=None, interfacename=None, interfacetype=None, macaddress=None, mtu=None, noautostart=None, parentinterfacename=None, provideraddressid=None, providerid=None, providerspaceid=None, providersubnetid=None, providervlanid=None, vlantag=None): ''' - managerconfig : typing.Mapping[str, str] + address : str + cidr : str + configtype : str + dnssearchdomains : typing.Sequence[str] + dnsservers : typing.Sequence[str] + deviceindex : int + disabled : bool + gatewayaddress : str + interfacename : str + interfacetype : str + macaddress : str + mtu : int + noautostart : bool + parentinterfacename : str + provideraddressid : str + providerid : str + providerspaceid : str + providersubnetid : str + providervlanid : str + vlantag : int ''' - self.managerconfig = managerconfig + self.address = address + self.cidr = cidr + self.configtype = configtype + self.dnssearchdomains = dnssearchdomains + self.dnsservers = dnsservers + self.deviceindex = deviceindex + self.disabled = disabled + self.gatewayaddress = gatewayaddress + self.interfacename = interfacename + self.interfacetype = interfacetype + self.macaddress = macaddress + self.mtu = mtu + self.noautostart = noautostart + self.parentinterfacename = parentinterfacename + self.provideraddressid = provideraddressid + self.providerid = providerid + self.providerspaceid = providerspaceid + self.providersubnetid = providersubnetid + self.providervlanid = providervlanid + self.vlantag = vlantag -class ContainerManagerConfigParams(Type): - _toSchema = {'type_': 'Type'} - _toPy = {'Type': 'type_'} - def __init__(self, type_=None): +class SetMachineNetworkConfig(Type): + _toSchema = {'config': 'Config', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'Config': 'config'} + def __init__(self, config=None, tag=None): ''' - type_ : str + config : typing.Sequence[~NetworkConfig] + tag : str ''' - self.type_ = type_ + self.config = [NetworkConfig.from_json(o) for o in config or []] + self.tag = tag -class DistributionGroupResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} - def __init__(self, error=None, result=None): +class MeterStatusResult(Type): + _toSchema = {'code': 'Code', 'error': 'Error', 'info': 'Info'} + _toPy = {'Code': 'code', 'Error': 'error', 'Info': 'info'} + def __init__(self, code=None, error=None, info=None): ''' + code : str error : Error - result : typing.Sequence[str] + info : str ''' + self.code = code self.error = Error.from_json(error) if error else None - self.result = result + self.info = info -class DistributionGroupResults(Type): +class MeterStatusResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~DistributionGroupResult] + results : typing.Sequence[~MeterStatusResult] ''' - self.results = [DistributionGroupResult.from_json(o) for o in results or []] + self.results = [MeterStatusResult.from_json(o) for o in results or []] -class InstanceInfo(Type): - _toSchema = {'nonce': 'Nonce', 'networkconfig': 'NetworkConfig', 'tag': 'Tag', 'characteristics': 'Characteristics', 'volumeattachments': 'VolumeAttachments', 'volumes': 'Volumes', 'instanceid': 'InstanceId'} - _toPy = {'Tag': 'tag', 'InstanceId': 'instanceid', 'Volumes': 'volumes', 'Characteristics': 'characteristics', 'Nonce': 'nonce', 'NetworkConfig': 'networkconfig', 'VolumeAttachments': 'volumeattachments'} - def __init__(self, characteristics=None, instanceid=None, networkconfig=None, nonce=None, tag=None, volumeattachments=None, volumes=None): +class Metric(Type): + _toSchema = {'key': 'Key', 'time': 'Time', 'value': 'Value'} + _toPy = {'Value': 'value', 'Key': 'key', 'Time': 'time'} + def __init__(self, key=None, time=None, value=None): ''' - characteristics : HardwareCharacteristics - instanceid : str - networkconfig : typing.Sequence[~NetworkConfig] - nonce : str - tag : str - volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo] - volumes : typing.Sequence[~Volume] + key : str + time : str + value : str ''' - self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None - self.instanceid = instanceid - self.networkconfig = [NetworkConfig.from_json(o) for o in networkconfig or []] - self.nonce = nonce - self.tag = tag - self.volumeattachments = {k: VolumeAttachmentInfo.from_json(v) for k, v in (volumeattachments or dict()).items()} - self.volumes = [Volume.from_json(o) for o in volumes or []] + self.key = key + self.time = time + self.value = value -class InstancesInfo(Type): - _toSchema = {'machines': 'Machines'} - _toPy = {'Machines': 'machines'} - def __init__(self, machines=None): +class MetricBatch(Type): + _toSchema = {'charmurl': 'CharmURL', 'uuid': 'UUID', 'created': 'Created', 'metrics': 'Metrics'} + _toPy = {'CharmURL': 'charmurl', 'Metrics': 'metrics', 'Created': 'created', 'UUID': 'uuid'} + def __init__(self, charmurl=None, created=None, metrics=None, uuid=None): ''' - machines : typing.Sequence[~InstanceInfo] + charmurl : str + created : str + metrics : typing.Sequence[~Metric] + uuid : str ''' - self.machines = [InstanceInfo.from_json(o) for o in machines or []] + self.charmurl = charmurl + self.created = created + self.metrics = [Metric.from_json(o) for o in metrics or []] + self.uuid = uuid -class MachineContainers(Type): - _toSchema = {'machinetag': 'MachineTag', 'containertypes': 'ContainerTypes'} - _toPy = {'ContainerTypes': 'containertypes', 'MachineTag': 'machinetag'} - def __init__(self, containertypes=None, machinetag=None): +class MetricBatchParam(Type): + _toSchema = {'batch': 'Batch', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'Batch': 'batch'} + def __init__(self, batch=None, tag=None): ''' - containertypes : typing.Sequence[str] - machinetag : str + batch : MetricBatch + tag : str ''' - self.containertypes = containertypes - self.machinetag = machinetag + self.batch = MetricBatch.from_json(batch) if batch else None + self.tag = tag -class MachineContainersParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class MetricBatchParams(Type): + _toSchema = {'batches': 'Batches'} + _toPy = {'Batches': 'batches'} + def __init__(self, batches=None): ''' - params : typing.Sequence[~MachineContainers] + batches : typing.Sequence[~MetricBatchParam] ''' - self.params = [MachineContainers.from_json(o) for o in params or []] + self.batches = [MetricBatchParam.from_json(o) for o in batches or []] -class MachineNetworkConfigResult(Type): - _toSchema = {'info': 'Info', 'error': 'Error'} - _toPy = {'Info': 'info', 'Error': 'error'} - def __init__(self, error=None, info=None): +class EntityMetrics(Type): + _toSchema = {'error': 'error', 'metrics': 'metrics'} + _toPy = {'error': 'error', 'metrics': 'metrics'} + def __init__(self, error=None, metrics=None): ''' error : Error - info : typing.Sequence[~NetworkConfig] + metrics : typing.Sequence[~MetricResult] ''' self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] + self.metrics = [MetricResult.from_json(o) for o in metrics or []] -class MachineNetworkConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class MeterStatusParam(Type): + _toSchema = {'code': 'code', 'tag': 'tag', 'info': 'info'} + _toPy = {'code': 'code', 'tag': 'tag', 'info': 'info'} + def __init__(self, code=None, info=None, tag=None): ''' - results : typing.Sequence[~MachineNetworkConfigResult] + code : str + info : str + tag : str ''' - self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] + self.code = code + self.info = info + self.tag = tag -class ProvisioningInfo(Type): - _toSchema = {'jobs': 'Jobs', 'volumes': 'Volumes', 'tags': 'Tags', 'endpointbindings': 'EndpointBindings', 'placement': 'Placement', 'series': 'Series', 'constraints': 'Constraints', 'subnetstozones': 'SubnetsToZones', 'imagemetadata': 'ImageMetadata'} - _toPy = {'Constraints': 'constraints', 'EndpointBindings': 'endpointbindings', 'Volumes': 'volumes', 'Placement': 'placement', 'SubnetsToZones': 'subnetstozones', 'Tags': 'tags', 'Jobs': 'jobs', 'ImageMetadata': 'imagemetadata', 'Series': 'series'} - def __init__(self, constraints=None, endpointbindings=None, imagemetadata=None, jobs=None, placement=None, series=None, subnetstozones=None, tags=None, volumes=None): +class MeterStatusParams(Type): + _toSchema = {'statues': 'statues'} + _toPy = {'statues': 'statues'} + def __init__(self, statues=None): ''' - constraints : Value - endpointbindings : typing.Mapping[str, str] - imagemetadata : typing.Sequence[~CloudImageMetadata] - jobs : typing.Sequence[str] - placement : str - series : str - subnetstozones : typing.Sequence[str] - tags : typing.Mapping[str, str] - volumes : typing.Sequence[~VolumeParams] + statues : typing.Sequence[~MeterStatusParam] ''' - self.constraints = Value.from_json(constraints) if constraints else None - self.endpointbindings = endpointbindings - self.imagemetadata = [CloudImageMetadata.from_json(o) for o in imagemetadata or []] - self.jobs = jobs - self.placement = placement - self.series = series - self.subnetstozones = subnetstozones - self.tags = tags - self.volumes = [VolumeParams.from_json(o) for o in volumes or []] + self.statues = [MeterStatusParam.from_json(o) for o in statues or []] -class ProvisioningInfoResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} - def __init__(self, error=None, result=None): +class MetricResult(Type): + _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'} + _toPy = {'key': 'key', 'time': 'time', 'value': 'value'} + def __init__(self, key=None, time=None, value=None): ''' - error : Error - result : ProvisioningInfo + key : str + time : str + value : str ''' - self.error = Error.from_json(error) if error else None - self.result = ProvisioningInfo.from_json(result) if result else None + self.key = key + self.time = time + self.value = value -class ProvisioningInfoResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} +class MetricResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ProvisioningInfoResult] - ''' - self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] - - -class Settings(Type): - _toSchema = {'https': 'Https', 'noproxy': 'NoProxy', 'ftp': 'Ftp', 'http': 'Http'} - _toPy = {'Http': 'http', 'Ftp': 'ftp', 'Https': 'https', 'NoProxy': 'noproxy'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None): - ''' - ftp : str - http : str - https : str - noproxy : str + results : typing.Sequence[~EntityMetrics] ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy + self.results = [EntityMetrics.from_json(o) for o in results or []] -class ToolsResult(Type): - _toSchema = {'error': 'Error', 'disablesslhostnameverification': 'DisableSSLHostnameVerification', 'toolslist': 'ToolsList'} - _toPy = {'Error': 'error', 'ToolsList': 'toolslist', 'DisableSSLHostnameVerification': 'disablesslhostnameverification'} - def __init__(self, disablesslhostnameverification=None, error=None, toolslist=None): +class PhaseResult(Type): + _toSchema = {'error': 'Error', 'phase': 'phase'} + _toPy = {'Error': 'error', 'phase': 'phase'} + def __init__(self, error=None, phase=None): ''' - disablesslhostnameverification : bool error : Error - toolslist : typing.Sequence[~Tools] + phase : str ''' - self.disablesslhostnameverification = disablesslhostnameverification self.error = Error.from_json(error) if error else None - self.toolslist = [Tools.from_json(o) for o in toolslist or []] + self.phase = phase -class ToolsResults(Type): +class PhaseResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ToolsResult] + results : typing.Sequence[~PhaseResult] ''' - self.results = [ToolsResult.from_json(o) for o in results or []] + self.results = [PhaseResult.from_json(o) for o in results or []] -class UpdateBehavior(Type): - _toSchema = {'enableosupgrade': 'EnableOSUpgrade', 'enableosrefreshupdate': 'EnableOSRefreshUpdate'} - _toPy = {'EnableOSUpgrade': 'enableosupgrade', 'EnableOSRefreshUpdate': 'enableosrefreshupdate'} - def __init__(self, enableosrefreshupdate=None, enableosupgrade=None): +class FullMigrationStatus(Type): + _toSchema = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'} + _toPy = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'} + def __init__(self, attempt=None, phase=None, spec=None): ''' - enableosrefreshupdate : bool - enableosupgrade : bool + attempt : int + phase : str + spec : ModelMigrationSpec ''' - self.enableosrefreshupdate = enableosrefreshupdate - self.enableosupgrade = enableosupgrade + self.attempt = attempt + self.phase = phase + self.spec = ModelMigrationSpec.from_json(spec) if spec else None -class Volume(Type): - _toSchema = {'info': 'info', 'volumetag': 'volumetag'} - _toPy = {'info': 'info', 'volumetag': 'volumetag'} - def __init__(self, info=None, volumetag=None): +class SerializedModel(Type): + _toSchema = {'bytes_': 'bytes'} + _toPy = {'bytes': 'bytes_'} + def __init__(self, bytes_=None): ''' - info : VolumeInfo - volumetag : str + bytes_ : typing.Sequence[int] ''' - self.info = VolumeInfo.from_json(info) if info else None - self.volumetag = volumetag + self.bytes_ = bytes_ -class VolumeAttachmentInfo(Type): - _toSchema = {'devicename': 'devicename', 'devicelink': 'devicelink', 'read_only': 'read-only', 'busaddress': 'busaddress'} - _toPy = {'read-only': 'read_only', 'devicename': 'devicename', 'devicelink': 'devicelink', 'busaddress': 'busaddress'} - def __init__(self, busaddress=None, devicelink=None, devicename=None, read_only=None): +class SetMigrationPhaseArgs(Type): + _toSchema = {'phase': 'phase'} + _toPy = {'phase': 'phase'} + def __init__(self, phase=None): ''' - busaddress : str - devicelink : str - devicename : str - read_only : bool + phase : str ''' - self.busaddress = busaddress - self.devicelink = devicelink - self.devicename = devicename - self.read_only = read_only + self.phase = phase -class VolumeAttachmentParams(Type): - _toSchema = {'volumeid': 'volumeid', 'instanceid': 'instanceid', 'volumetag': 'volumetag', 'machinetag': 'machinetag', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'volumeid': 'volumeid', 'instanceid': 'instanceid', 'read-only': 'read_only', 'volumetag': 'volumetag', 'machinetag': 'machinetag', 'provider': 'provider'} - def __init__(self, instanceid=None, machinetag=None, provider=None, read_only=None, volumeid=None, volumetag=None): +class MigrationStatus(Type): + _toSchema = {'attempt': 'attempt', 'source_api_addrs': 'source-api-addrs', 'target_api_addrs': 'target-api-addrs', 'source_ca_cert': 'source-ca-cert', 'phase': 'phase', 'target_ca_cert': 'target-ca-cert'} + _toPy = {'target-ca-cert': 'target_ca_cert', 'source-ca-cert': 'source_ca_cert', 'attempt': 'attempt', 'source-api-addrs': 'source_api_addrs', 'phase': 'phase', 'target-api-addrs': 'target_api_addrs'} + def __init__(self, attempt=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None): ''' - instanceid : str - machinetag : str - provider : str - read_only : bool - volumeid : str - volumetag : str + attempt : int + phase : str + source_api_addrs : typing.Sequence[str] + source_ca_cert : str + target_api_addrs : typing.Sequence[str] + target_ca_cert : str ''' - self.instanceid = instanceid - self.machinetag = machinetag - self.provider = provider - self.read_only = read_only - self.volumeid = volumeid - self.volumetag = volumetag + self.attempt = attempt + self.phase = phase + self.source_api_addrs = source_api_addrs + self.source_ca_cert = source_ca_cert + self.target_api_addrs = target_api_addrs + self.target_ca_cert = target_ca_cert -class VolumeInfo(Type): - _toSchema = {'volumeid': 'volumeid', 'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size'} - _toPy = {'volumeid': 'volumeid', 'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size'} - def __init__(self, hardwareid=None, persistent=None, size=None, volumeid=None): +class ModelArgs(Type): + _toSchema = {'model_tag': 'model-tag'} + _toPy = {'model-tag': 'model_tag'} + def __init__(self, model_tag=None): ''' - hardwareid : str - persistent : bool - size : int - volumeid : str + model_tag : str ''' - self.hardwareid = hardwareid - self.persistent = persistent - self.size = size - self.volumeid = volumeid + self.model_tag = model_tag -class VolumeParams(Type): - _toSchema = {'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'} - _toPy = {'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volumetag=None): +class ModelCreateArgs(Type): + _toSchema = {'account': 'Account', 'ownertag': 'OwnerTag', 'config': 'Config'} + _toPy = {'Account': 'account', 'OwnerTag': 'ownertag', 'Config': 'config'} + def __init__(self, account=None, config=None, ownertag=None): ''' - attachment : VolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - tags : typing.Mapping[str, str] - volumetag : str + account : typing.Mapping[str, typing.Any] + config : typing.Mapping[str, typing.Any] + ownertag : str ''' - self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None - self.attributes = attributes - self.provider = provider - self.size = size - self.tags = tags - self.volumetag = volumetag + self.account = account + self.config = config + self.ownertag = ownertag -class WatchContainer(Type): - _toSchema = {'containertype': 'ContainerType', 'machinetag': 'MachineTag'} - _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'} - def __init__(self, containertype=None, machinetag=None): +class ModelInfoResult(Type): + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} + def __init__(self, error=None, result=None): ''' - containertype : str - machinetag : str + error : Error + result : ModelInfo ''' - self.containertype = containertype - self.machinetag = machinetag + self.error = Error.from_json(error) if error else None + self.result = ModelInfo.from_json(result) if result else None -class WatchContainers(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class ModelInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - params : typing.Sequence[~WatchContainer] + results : typing.Sequence[~ModelInfoResult] ''' - self.params = [WatchContainer.from_json(o) for o in params or []] + self.results = [ModelInfoResult.from_json(o) for o in results or []] -class ProxyConfig(Type): - _toSchema = {'https': 'HTTPS', 'noproxy': 'NoProxy', 'ftp': 'FTP', 'http': 'HTTP'} - _toPy = {'HTTP': 'http', 'HTTPS': 'https', 'NoProxy': 'noproxy', 'FTP': 'ftp'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None): +class ModelSkeletonConfigArgs(Type): + _toSchema = {'region': 'Region', 'provider': 'Provider'} + _toPy = {'Provider': 'provider', 'Region': 'region'} + def __init__(self, provider=None, region=None): ''' - ftp : str - http : str - https : str - noproxy : str + provider : str + region : str ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy + self.provider = provider + self.region = region -class ProxyConfigResult(Type): - _toSchema = {'proxysettings': 'ProxySettings', 'error': 'Error', 'aptproxysettings': 'APTProxySettings'} - _toPy = {'Error': 'error', 'APTProxySettings': 'aptproxysettings', 'ProxySettings': 'proxysettings'} - def __init__(self, aptproxysettings=None, error=None, proxysettings=None): +class ModifyModelAccess(Type): + _toSchema = {'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag', 'access': 'access'} + _toPy = {'user-tag': 'user_tag', 'action': 'action', 'model-tag': 'model_tag', 'access': 'access'} + def __init__(self, access=None, action=None, model_tag=None, user_tag=None): ''' - aptproxysettings : ProxyConfig - error : Error - proxysettings : ProxyConfig + access : str + action : str + model_tag : str + user_tag : str ''' - self.aptproxysettings = ProxyConfig.from_json(aptproxysettings) if aptproxysettings else None - self.error = Error.from_json(error) if error else None - self.proxysettings = ProxyConfig.from_json(proxysettings) if proxysettings else None + self.access = access + self.action = action + self.model_tag = model_tag + self.user_tag = user_tag -class ProxyConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ModifyModelAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None): ''' - results : typing.Sequence[~ProxyConfigResult] + changes : typing.Sequence[~ModifyModelAccess] ''' - self.results = [ProxyConfigResult.from_json(o) for o in results or []] + self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] -class RebootActionResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} - def __init__(self, error=None, result=None): +class ConstraintsResult(Type): + _toSchema = {'constraints': 'Constraints', 'error': 'Error'} + _toPy = {'Constraints': 'constraints', 'Error': 'error'} + def __init__(self, constraints=None, error=None): ''' + constraints : Value error : Error - result : str ''' + self.constraints = Value.from_json(constraints) if constraints else None self.error = Error.from_json(error) if error else None - self.result = result -class RebootActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} +class ConstraintsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~RebootActionResult] + results : typing.Sequence[~ConstraintsResult] ''' - self.results = [RebootActionResult.from_json(o) for o in results or []] + self.results = [ConstraintsResult.from_json(o) for o in results or []] -class RelationUnitsChange(Type): - _toSchema = {'departed': 'Departed', 'changed': 'Changed'} - _toPy = {'Departed': 'departed', 'Changed': 'changed'} - def __init__(self, changed=None, departed=None): +class ContainerConfig(Type): + _toSchema = {'allowlxcloopmounts': 'AllowLXCLoopMounts', 'updatebehavior': 'UpdateBehavior', 'aptmirror': 'AptMirror', 'authorizedkeys': 'AuthorizedKeys', 'sslhostnameverification': 'SSLHostnameVerification', 'aptproxy': 'AptProxy', 'providertype': 'ProviderType', 'proxy': 'Proxy'} + _toPy = {'UpdateBehavior': 'updatebehavior', 'SSLHostnameVerification': 'sslhostnameverification', 'AptMirror': 'aptmirror', 'Proxy': 'proxy', 'AptProxy': 'aptproxy', 'AuthorizedKeys': 'authorizedkeys', 'AllowLXCLoopMounts': 'allowlxcloopmounts', 'ProviderType': 'providertype'} + def __init__(self, allowlxcloopmounts=None, aptmirror=None, aptproxy=None, authorizedkeys=None, providertype=None, proxy=None, sslhostnameverification=None, updatebehavior=None): ''' - changed : typing.Mapping[str, ~UnitSettings] - departed : typing.Sequence[str] + allowlxcloopmounts : bool + aptmirror : str + aptproxy : Settings + authorizedkeys : str + providertype : str + proxy : Settings + sslhostnameverification : bool + updatebehavior : UpdateBehavior ''' - self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()} - self.departed = departed - - -class RelationUnitsWatchResult(Type): - _toSchema = {'changes': 'Changes', 'error': 'Error', 'relationunitswatcherid': 'RelationUnitsWatcherId'} - _toPy = {'Changes': 'changes', 'Error': 'error', 'RelationUnitsWatcherId': 'relationunitswatcherid'} - def __init__(self, changes=None, error=None, relationunitswatcherid=None): - ''' - changes : RelationUnitsChange - error : Error - relationunitswatcherid : str - ''' - self.changes = RelationUnitsChange.from_json(changes) if changes else None - self.error = Error.from_json(error) if error else None - self.relationunitswatcherid = relationunitswatcherid + self.allowlxcloopmounts = allowlxcloopmounts + self.aptmirror = aptmirror + self.aptproxy = Settings.from_json(aptproxy) if aptproxy else None + self.authorizedkeys = authorizedkeys + self.providertype = providertype + self.proxy = Settings.from_json(proxy) if proxy else None + self.sslhostnameverification = sslhostnameverification + self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None -class UnitSettings(Type): - _toSchema = {'version': 'Version'} - _toPy = {'Version': 'version'} - def __init__(self, version=None): +class ContainerManagerConfig(Type): + _toSchema = {'managerconfig': 'ManagerConfig'} + _toPy = {'ManagerConfig': 'managerconfig'} + def __init__(self, managerconfig=None): ''' - version : int + managerconfig : typing.Mapping[str, str] ''' - self.version = version + self.managerconfig = managerconfig -class RetryStrategy(Type): - _toSchema = {'maxretrytime': 'MaxRetryTime', 'minretrytime': 'MinRetryTime', 'jitterretrytime': 'JitterRetryTime', 'shouldretry': 'ShouldRetry', 'retrytimefactor': 'RetryTimeFactor'} - _toPy = {'MinRetryTime': 'minretrytime', 'ShouldRetry': 'shouldretry', 'MaxRetryTime': 'maxretrytime', 'RetryTimeFactor': 'retrytimefactor', 'JitterRetryTime': 'jitterretrytime'} - def __init__(self, jitterretrytime=None, maxretrytime=None, minretrytime=None, retrytimefactor=None, shouldretry=None): +class ContainerManagerConfigParams(Type): + _toSchema = {'type_': 'Type'} + _toPy = {'Type': 'type_'} + def __init__(self, type_=None): ''' - jitterretrytime : bool - maxretrytime : int - minretrytime : int - retrytimefactor : int - shouldretry : bool + type_ : str ''' - self.jitterretrytime = jitterretrytime - self.maxretrytime = maxretrytime - self.minretrytime = minretrytime - self.retrytimefactor = retrytimefactor - self.shouldretry = shouldretry + self.type_ = type_ -class RetryStrategyResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} +class DistributionGroupResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} def __init__(self, error=None, result=None): ''' error : Error - result : RetryStrategy + result : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None - self.result = RetryStrategy.from_json(result) if result else None + self.result = result -class RetryStrategyResults(Type): +class DistributionGroupResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~RetryStrategyResult] + results : typing.Sequence[~DistributionGroupResult] ''' - self.results = [RetryStrategyResult.from_json(o) for o in results or []] + self.results = [DistributionGroupResult.from_json(o) for o in results or []] -class SSHAddressResult(Type): - _toSchema = {'error': 'error', 'address': 'address'} - _toPy = {'error': 'error', 'address': 'address'} - def __init__(self, address=None, error=None): +class InstanceInfo(Type): + _toSchema = {'networkconfig': 'NetworkConfig', 'nonce': 'Nonce', 'characteristics': 'Characteristics', 'volumeattachments': 'VolumeAttachments', 'instanceid': 'InstanceId', 'tag': 'Tag', 'volumes': 'Volumes'} + _toPy = {'Characteristics': 'characteristics', 'InstanceId': 'instanceid', 'Volumes': 'volumes', 'Nonce': 'nonce', 'VolumeAttachments': 'volumeattachments', 'Tag': 'tag', 'NetworkConfig': 'networkconfig'} + def __init__(self, characteristics=None, instanceid=None, networkconfig=None, nonce=None, tag=None, volumeattachments=None, volumes=None): ''' - address : str - error : Error + characteristics : HardwareCharacteristics + instanceid : str + networkconfig : typing.Sequence[~NetworkConfig] + nonce : str + tag : str + volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo] + volumes : typing.Sequence[~Volume] ''' - self.address = address - self.error = Error.from_json(error) if error else None + self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None + self.instanceid = instanceid + self.networkconfig = [NetworkConfig.from_json(o) for o in networkconfig or []] + self.nonce = nonce + self.tag = tag + self.volumeattachments = {k: VolumeAttachmentInfo.from_json(v) for k, v in (volumeattachments or dict()).items()} + self.volumes = [Volume.from_json(o) for o in volumes or []] -class SSHAddressResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class InstancesInfo(Type): + _toSchema = {'machines': 'Machines'} + _toPy = {'Machines': 'machines'} + def __init__(self, machines=None): ''' - results : typing.Sequence[~SSHAddressResult] + machines : typing.Sequence[~InstanceInfo] ''' - self.results = [SSHAddressResult.from_json(o) for o in results or []] + self.machines = [InstanceInfo.from_json(o) for o in machines or []] -class SSHProxyResult(Type): - _toSchema = {'use_proxy': 'use-proxy'} - _toPy = {'use-proxy': 'use_proxy'} - def __init__(self, use_proxy=None): +class MachineContainers(Type): + _toSchema = {'containertypes': 'ContainerTypes', 'machinetag': 'MachineTag'} + _toPy = {'MachineTag': 'machinetag', 'ContainerTypes': 'containertypes'} + def __init__(self, containertypes=None, machinetag=None): ''' - use_proxy : bool + containertypes : typing.Sequence[str] + machinetag : str ''' - self.use_proxy = use_proxy + self.containertypes = containertypes + self.machinetag = machinetag -class SSHPublicKeysResult(Type): - _toSchema = {'error': 'error', 'public_keys': 'public-keys'} - _toPy = {'error': 'error', 'public-keys': 'public_keys'} - def __init__(self, error=None, public_keys=None): +class MachineContainersParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - error : Error - public_keys : typing.Sequence[str] + params : typing.Sequence[~MachineContainers] ''' - self.error = Error.from_json(error) if error else None - self.public_keys = public_keys + self.params = [MachineContainers.from_json(o) for o in params or []] -class SSHPublicKeysResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class MachineNetworkConfigResult(Type): + _toSchema = {'info': 'Info', 'error': 'Error'} + _toPy = {'Error': 'error', 'Info': 'info'} + def __init__(self, error=None, info=None): ''' - results : typing.Sequence[~SSHPublicKeysResult] + error : Error + info : typing.Sequence[~NetworkConfig] ''' - self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] + self.error = Error.from_json(error) if error else None + self.info = [NetworkConfig.from_json(o) for o in info or []] -class AddRelation(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +class MachineNetworkConfigResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - endpoints : typing.Sequence[str] + results : typing.Sequence[~MachineNetworkConfigResult] ''' - self.endpoints = endpoints + self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] -class AddRelationResults(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +class ProvisioningInfo(Type): + _toSchema = {'jobs': 'Jobs', 'series': 'Series', 'imagemetadata': 'ImageMetadata', 'placement': 'Placement', 'subnetstozones': 'SubnetsToZones', 'constraints': 'Constraints', 'tags': 'Tags', 'endpointbindings': 'EndpointBindings', 'volumes': 'Volumes'} + _toPy = {'Constraints': 'constraints', 'ImageMetadata': 'imagemetadata', 'SubnetsToZones': 'subnetstozones', 'Series': 'series', 'Volumes': 'volumes', 'Tags': 'tags', 'EndpointBindings': 'endpointbindings', 'Placement': 'placement', 'Jobs': 'jobs'} + def __init__(self, constraints=None, endpointbindings=None, imagemetadata=None, jobs=None, placement=None, series=None, subnetstozones=None, tags=None, volumes=None): ''' - endpoints : typing.Mapping[str, ~Relation] + constraints : Value + endpointbindings : typing.Mapping[str, str] + imagemetadata : typing.Sequence[~CloudImageMetadata] + jobs : typing.Sequence[str] + placement : str + series : str + subnetstozones : typing.Sequence[str] + tags : typing.Mapping[str, str] + volumes : typing.Sequence[~VolumeParams] ''' - self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()} + self.constraints = Value.from_json(constraints) if constraints else None + self.endpointbindings = endpointbindings + self.imagemetadata = [CloudImageMetadata.from_json(o) for o in imagemetadata or []] + self.jobs = jobs + self.placement = placement + self.series = series + self.subnetstozones = subnetstozones + self.tags = tags + self.volumes = [VolumeParams.from_json(o) for o in volumes or []] -class AddServiceUnits(Type): - _toSchema = {'servicename': 'ServiceName', 'placement': 'Placement', 'numunits': 'NumUnits'} - _toPy = {'ServiceName': 'servicename', 'Placement': 'placement', 'NumUnits': 'numunits'} - def __init__(self, numunits=None, placement=None, servicename=None): +class ProvisioningInfoResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} + def __init__(self, error=None, result=None): ''' - numunits : int - placement : typing.Sequence[~Placement] - servicename : str + error : Error + result : ProvisioningInfo ''' - self.numunits = numunits - self.placement = [Placement.from_json(o) for o in placement or []] - self.servicename = servicename + self.error = Error.from_json(error) if error else None + self.result = ProvisioningInfo.from_json(result) if result else None -class AddServiceUnitsResults(Type): - _toSchema = {'units': 'Units'} - _toPy = {'Units': 'units'} - def __init__(self, units=None): +class ProvisioningInfoResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - units : typing.Sequence[str] + results : typing.Sequence[~ProvisioningInfoResult] ''' - self.units = units + self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] -class DestroyRelation(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +class Settings(Type): + _toSchema = {'ftp': 'Ftp', 'noproxy': 'NoProxy', 'http': 'Http', 'https': 'Https'} + _toPy = {'Http': 'http', 'Https': 'https', 'NoProxy': 'noproxy', 'Ftp': 'ftp'} + def __init__(self, ftp=None, http=None, https=None, noproxy=None): ''' - endpoints : typing.Sequence[str] + ftp : str + http : str + https : str + noproxy : str ''' - self.endpoints = endpoints + self.ftp = ftp + self.http = http + self.https = https + self.noproxy = noproxy -class DestroyServiceUnits(Type): - _toSchema = {'unitnames': 'UnitNames'} - _toPy = {'UnitNames': 'unitnames'} - def __init__(self, unitnames=None): +class ToolsResult(Type): + _toSchema = {'toolslist': 'ToolsList', 'disablesslhostnameverification': 'DisableSSLHostnameVerification', 'error': 'Error'} + _toPy = {'Error': 'error', 'DisableSSLHostnameVerification': 'disablesslhostnameverification', 'ToolsList': 'toolslist'} + def __init__(self, disablesslhostnameverification=None, error=None, toolslist=None): ''' - unitnames : typing.Sequence[str] + disablesslhostnameverification : bool + error : Error + toolslist : typing.Sequence[~Tools] ''' - self.unitnames = unitnames + self.disablesslhostnameverification = disablesslhostnameverification + self.error = Error.from_json(error) if error else None + self.toolslist = [Tools.from_json(o) for o in toolslist or []] -class GetServiceConstraints(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class ToolsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - servicename : str + results : typing.Sequence[~ToolsResult] ''' - self.servicename = servicename + self.results = [ToolsResult.from_json(o) for o in results or []] -class Relation(Type): - _toSchema = {'name': 'Name', 'limit': 'Limit', 'role': 'Role', 'optional': 'Optional', 'scope': 'Scope', 'interface': 'Interface'} - _toPy = {'Optional': 'optional', 'Limit': 'limit', 'Scope': 'scope', 'Name': 'name', 'Role': 'role', 'Interface': 'interface'} - def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None): +class UpdateBehavior(Type): + _toSchema = {'enableosupgrade': 'EnableOSUpgrade', 'enableosrefreshupdate': 'EnableOSRefreshUpdate'} + _toPy = {'EnableOSRefreshUpdate': 'enableosrefreshupdate', 'EnableOSUpgrade': 'enableosupgrade'} + def __init__(self, enableosrefreshupdate=None, enableosupgrade=None): ''' - interface : str - limit : int - name : str - optional : bool - role : str - scope : str + enableosrefreshupdate : bool + enableosupgrade : bool ''' - self.interface = interface - self.limit = limit - self.name = name - self.optional = optional - self.role = role - self.scope = scope + self.enableosrefreshupdate = enableosrefreshupdate + self.enableosupgrade = enableosupgrade -class ServiceCharmRelations(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class Volume(Type): + _toSchema = {'volumetag': 'volumetag', 'info': 'info'} + _toPy = {'volumetag': 'volumetag', 'info': 'info'} + def __init__(self, info=None, volumetag=None): ''' - servicename : str + info : VolumeInfo + volumetag : str ''' - self.servicename = servicename + self.info = VolumeInfo.from_json(info) if info else None + self.volumetag = volumetag -class ServiceCharmRelationsResults(Type): - _toSchema = {'charmrelations': 'CharmRelations'} - _toPy = {'CharmRelations': 'charmrelations'} - def __init__(self, charmrelations=None): +class VolumeAttachmentInfo(Type): + _toSchema = {'read_only': 'read-only', 'devicelink': 'devicelink', 'busaddress': 'busaddress', 'devicename': 'devicename'} + _toPy = {'devicelink': 'devicelink', 'busaddress': 'busaddress', 'devicename': 'devicename', 'read-only': 'read_only'} + def __init__(self, busaddress=None, devicelink=None, devicename=None, read_only=None): ''' - charmrelations : typing.Sequence[str] + busaddress : str + devicelink : str + devicename : str + read_only : bool ''' - self.charmrelations = charmrelations + self.busaddress = busaddress + self.devicelink = devicelink + self.devicename = devicename + self.read_only = read_only -class ServiceDeploy(Type): - _toSchema = {'configyaml': 'ConfigYAML', 'storage': 'Storage', 'endpointbindings': 'EndpointBindings', 'resources': 'Resources', 'servicename': 'ServiceName', 'series': 'Series', 'charmurl': 'CharmUrl', 'config': 'Config', 'channel': 'Channel', 'placement': 'Placement', 'numunits': 'NumUnits', 'constraints': 'Constraints'} - _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints', 'ConfigYAML': 'configyaml', 'Resources': 'resources', 'Channel': 'channel', 'Storage': 'storage', 'Config': 'config', 'Placement': 'placement', 'EndpointBindings': 'endpointbindings', 'NumUnits': 'numunits', 'CharmUrl': 'charmurl', 'Series': 'series'} - def __init__(self, channel=None, charmurl=None, config=None, configyaml=None, constraints=None, endpointbindings=None, numunits=None, placement=None, resources=None, series=None, servicename=None, storage=None): +class VolumeAttachmentParams(Type): + _toSchema = {'volumetag': 'volumetag', 'read_only': 'read-only', 'provider': 'provider', 'volumeid': 'volumeid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'} + _toPy = {'volumetag': 'volumetag', 'provider': 'provider', 'read-only': 'read_only', 'volumeid': 'volumeid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'} + def __init__(self, instanceid=None, machinetag=None, provider=None, read_only=None, volumeid=None, volumetag=None): ''' - channel : str - charmurl : str - config : typing.Mapping[str, str] - configyaml : str - constraints : Value - endpointbindings : typing.Mapping[str, str] - numunits : int - placement : typing.Sequence[~Placement] - resources : typing.Mapping[str, str] - series : str - servicename : str - storage : typing.Mapping[str, ~Constraints] + instanceid : str + machinetag : str + provider : str + read_only : bool + volumeid : str + volumetag : str ''' - self.channel = channel - self.charmurl = charmurl - self.config = config - self.configyaml = configyaml - self.constraints = Value.from_json(constraints) if constraints else None - self.endpointbindings = endpointbindings - self.numunits = numunits - self.placement = [Placement.from_json(o) for o in placement or []] - self.resources = resources - self.series = series - self.servicename = servicename - self.storage = {k: Constraints.from_json(v) for k, v in (storage or dict()).items()} + self.instanceid = instanceid + self.machinetag = machinetag + self.provider = provider + self.read_only = read_only + self.volumeid = volumeid + self.volumetag = volumetag -class ServiceDestroy(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class VolumeInfo(Type): + _toSchema = {'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size', 'volumeid': 'volumeid'} + _toPy = {'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size', 'volumeid': 'volumeid'} + def __init__(self, hardwareid=None, persistent=None, size=None, volumeid=None): ''' - servicename : str + hardwareid : str + persistent : bool + size : int + volumeid : str ''' - self.servicename = servicename + self.hardwareid = hardwareid + self.persistent = persistent + self.size = size + self.volumeid = volumeid -class ServiceExpose(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class VolumeParams(Type): + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'tags': 'tags', 'provider': 'provider'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'tags': 'tags', 'provider': 'provider'} + def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volumetag=None): ''' - servicename : str + attachment : VolumeAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + tags : typing.Mapping[str, str] + volumetag : str ''' - self.servicename = servicename + self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None + self.attributes = attributes + self.provider = provider + self.size = size + self.tags = tags + self.volumetag = volumetag -class ServiceGet(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class WatchContainer(Type): + _toSchema = {'machinetag': 'MachineTag', 'containertype': 'ContainerType'} + _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'} + def __init__(self, containertype=None, machinetag=None): ''' - servicename : str + containertype : str + machinetag : str ''' - self.servicename = servicename + self.containertype = containertype + self.machinetag = machinetag -class ServiceGetResults(Type): - _toSchema = {'config': 'Config', 'charm': 'Charm', 'constraints': 'Constraints', 'service': 'Service'} - _toPy = {'Charm': 'charm', 'Constraints': 'constraints', 'Config': 'config', 'Service': 'service'} - def __init__(self, charm=None, config=None, constraints=None, service=None): +class WatchContainers(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - charm : str - config : typing.Mapping[str, typing.Any] - constraints : Value - service : str + params : typing.Sequence[~WatchContainer] ''' - self.charm = charm - self.config = config - self.constraints = Value.from_json(constraints) if constraints else None - self.service = service + self.params = [WatchContainer.from_json(o) for o in params or []] -class ServiceMetricCredential(Type): - _toSchema = {'metriccredentials': 'MetricCredentials', 'servicename': 'ServiceName'} - _toPy = {'MetricCredentials': 'metriccredentials', 'ServiceName': 'servicename'} - def __init__(self, metriccredentials=None, servicename=None): +class ProxyConfig(Type): + _toSchema = {'ftp': 'FTP', 'noproxy': 'NoProxy', 'http': 'HTTP', 'https': 'HTTPS'} + _toPy = {'NoProxy': 'noproxy', 'FTP': 'ftp', 'HTTPS': 'https', 'HTTP': 'http'} + def __init__(self, ftp=None, http=None, https=None, noproxy=None): ''' - metriccredentials : typing.Sequence[int] - servicename : str + ftp : str + http : str + https : str + noproxy : str ''' - self.metriccredentials = metriccredentials - self.servicename = servicename + self.ftp = ftp + self.http = http + self.https = https + self.noproxy = noproxy -class ServiceMetricCredentials(Type): - _toSchema = {'creds': 'Creds'} - _toPy = {'Creds': 'creds'} - def __init__(self, creds=None): +class ProxyConfigResult(Type): + _toSchema = {'proxysettings': 'ProxySettings', 'aptproxysettings': 'APTProxySettings', 'error': 'Error'} + _toPy = {'ProxySettings': 'proxysettings', 'APTProxySettings': 'aptproxysettings', 'Error': 'error'} + def __init__(self, aptproxysettings=None, error=None, proxysettings=None): ''' - creds : typing.Sequence[~ServiceMetricCredential] + aptproxysettings : ProxyConfig + error : Error + proxysettings : ProxyConfig ''' - self.creds = [ServiceMetricCredential.from_json(o) for o in creds or []] + self.aptproxysettings = ProxyConfig.from_json(aptproxysettings) if aptproxysettings else None + self.error = Error.from_json(error) if error else None + self.proxysettings = ProxyConfig.from_json(proxysettings) if proxysettings else None -class ServiceSet(Type): - _toSchema = {'options': 'Options', 'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename', 'Options': 'options'} - def __init__(self, options=None, servicename=None): +class ProxyConfigResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - options : typing.Mapping[str, str] - servicename : str + results : typing.Sequence[~ProxyConfigResult] ''' - self.options = options - self.servicename = servicename + self.results = [ProxyConfigResult.from_json(o) for o in results or []] -class ServiceSetCharm(Type): - _toSchema = {'charmurl': 'charmurl', 'forceseries': 'forceseries', 'forceunits': 'forceunits', 'resourceids': 'resourceids', 'cs_channel': 'cs-channel', 'servicename': 'servicename'} - _toPy = {'charmurl': 'charmurl', 'forceseries': 'forceseries', 'forceunits': 'forceunits', 'cs-channel': 'cs_channel', 'resourceids': 'resourceids', 'servicename': 'servicename'} - def __init__(self, charmurl=None, cs_channel=None, forceseries=None, forceunits=None, resourceids=None, servicename=None): +class RebootActionResult(Type): + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} + def __init__(self, error=None, result=None): ''' - charmurl : str - cs_channel : str - forceseries : bool - forceunits : bool - resourceids : typing.Mapping[str, str] - servicename : str + error : Error + result : str ''' - self.charmurl = charmurl - self.cs_channel = cs_channel - self.forceseries = forceseries - self.forceunits = forceunits - self.resourceids = resourceids - self.servicename = servicename + self.error = Error.from_json(error) if error else None + self.result = result -class ServiceUnexpose(Type): - _toSchema = {'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename'} - def __init__(self, servicename=None): +class RebootActionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - servicename : str + results : typing.Sequence[~RebootActionResult] ''' - self.servicename = servicename + self.results = [RebootActionResult.from_json(o) for o in results or []] -class ServiceUnset(Type): - _toSchema = {'options': 'Options', 'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename', 'Options': 'options'} - def __init__(self, options=None, servicename=None): +class RelationUnitsChange(Type): + _toSchema = {'departed': 'Departed', 'changed': 'Changed'} + _toPy = {'Changed': 'changed', 'Departed': 'departed'} + def __init__(self, changed=None, departed=None): ''' - options : typing.Sequence[str] - servicename : str + changed : typing.Mapping[str, ~UnitSettings] + departed : typing.Sequence[str] ''' - self.options = options - self.servicename = servicename + self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()} + self.departed = departed -class ServiceUpdate(Type): - _toSchema = {'charmurl': 'CharmUrl', 'forceseries': 'ForceSeries', 'minunits': 'MinUnits', 'forcecharmurl': 'ForceCharmUrl', 'settingsyaml': 'SettingsYAML', 'settingsstrings': 'SettingsStrings', 'constraints': 'Constraints', 'servicename': 'ServiceName'} - _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints', 'SettingsStrings': 'settingsstrings', 'ForceSeries': 'forceseries', 'CharmUrl': 'charmurl', 'SettingsYAML': 'settingsyaml', 'MinUnits': 'minunits', 'ForceCharmUrl': 'forcecharmurl'} - def __init__(self, charmurl=None, constraints=None, forcecharmurl=None, forceseries=None, minunits=None, servicename=None, settingsstrings=None, settingsyaml=None): +class RelationUnitsWatchResult(Type): + _toSchema = {'changes': 'Changes', 'relationunitswatcherid': 'RelationUnitsWatcherId', 'error': 'Error'} + _toPy = {'Changes': 'changes', 'RelationUnitsWatcherId': 'relationunitswatcherid', 'Error': 'error'} + def __init__(self, changes=None, error=None, relationunitswatcherid=None): ''' - charmurl : str - constraints : Value - forcecharmurl : bool - forceseries : bool - minunits : int - servicename : str - settingsstrings : typing.Mapping[str, str] - settingsyaml : str + changes : RelationUnitsChange + error : Error + relationunitswatcherid : str ''' - self.charmurl = charmurl - self.constraints = Value.from_json(constraints) if constraints else None - self.forcecharmurl = forcecharmurl - self.forceseries = forceseries - self.minunits = minunits - self.servicename = servicename - self.settingsstrings = settingsstrings - self.settingsyaml = settingsyaml + self.changes = RelationUnitsChange.from_json(changes) if changes else None + self.error = Error.from_json(error) if error else None + self.relationunitswatcherid = relationunitswatcherid -class ServicesDeploy(Type): - _toSchema = {'services': 'Services'} - _toPy = {'Services': 'services'} - def __init__(self, services=None): +class UnitSettings(Type): + _toSchema = {'version': 'Version'} + _toPy = {'Version': 'version'} + def __init__(self, version=None): ''' - services : typing.Sequence[~ServiceDeploy] + version : int ''' - self.services = [ServiceDeploy.from_json(o) for o in services or []] + self.version = version -class SingularClaim(Type): - _toSchema = {'modeltag': 'ModelTag', 'controllertag': 'ControllerTag', 'duration': 'Duration'} - _toPy = {'ControllerTag': 'controllertag', 'Duration': 'duration', 'ModelTag': 'modeltag'} - def __init__(self, controllertag=None, duration=None, modeltag=None): +class RetryStrategy(Type): + _toSchema = {'jitterretrytime': 'JitterRetryTime', 'shouldretry': 'ShouldRetry', 'minretrytime': 'MinRetryTime', 'retrytimefactor': 'RetryTimeFactor', 'maxretrytime': 'MaxRetryTime'} + _toPy = {'MinRetryTime': 'minretrytime', 'JitterRetryTime': 'jitterretrytime', 'RetryTimeFactor': 'retrytimefactor', 'MaxRetryTime': 'maxretrytime', 'ShouldRetry': 'shouldretry'} + def __init__(self, jitterretrytime=None, maxretrytime=None, minretrytime=None, retrytimefactor=None, shouldretry=None): ''' - controllertag : str - duration : int - modeltag : str + jitterretrytime : bool + maxretrytime : int + minretrytime : int + retrytimefactor : int + shouldretry : bool ''' - self.controllertag = controllertag - self.duration = duration - self.modeltag = modeltag + self.jitterretrytime = jitterretrytime + self.maxretrytime = maxretrytime + self.minretrytime = minretrytime + self.retrytimefactor = retrytimefactor + self.shouldretry = shouldretry -class SingularClaims(Type): - _toSchema = {'claims': 'Claims'} - _toPy = {'Claims': 'claims'} - def __init__(self, claims=None): +class RetryStrategyResult(Type): + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} + def __init__(self, error=None, result=None): ''' - claims : typing.Sequence[~SingularClaim] + error : Error + result : RetryStrategy ''' - self.claims = [SingularClaim.from_json(o) for o in claims or []] + self.error = Error.from_json(error) if error else None + self.result = RetryStrategy.from_json(result) if result else None -class ListSpacesResults(Type): +class RetryStrategyResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~Space] + results : typing.Sequence[~RetryStrategyResult] ''' - self.results = [Space.from_json(o) for o in results or []] + self.results = [RetryStrategyResult.from_json(o) for o in results or []] -class Space(Type): - _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'} - _toPy = {'Error': 'error', 'Subnets': 'subnets', 'Name': 'name'} - def __init__(self, error=None, name=None, subnets=None): +class SSHAddressResult(Type): + _toSchema = {'address': 'address', 'error': 'error'} + _toPy = {'address': 'address', 'error': 'error'} + def __init__(self, address=None, error=None): ''' + address : str error : Error - name : str - subnets : typing.Sequence[~Subnet] ''' + self.address = address self.error = Error.from_json(error) if error else None - self.name = name - self.subnets = [Subnet.from_json(o) for o in subnets or []] -class StatusHistoryPruneArgs(Type): - _toSchema = {'maxlogsperentity': 'MaxLogsPerEntity'} - _toPy = {'MaxLogsPerEntity': 'maxlogsperentity'} - def __init__(self, maxlogsperentity=None): +class SSHAddressResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - maxlogsperentity : int + results : typing.Sequence[~SSHAddressResult] ''' - self.maxlogsperentity = maxlogsperentity + self.results = [SSHAddressResult.from_json(o) for o in results or []] -class FilesystemAttachmentInfo(Type): - _toSchema = {'mountpoint': 'mountpoint', 'read_only': 'read-only'} - _toPy = {'mountpoint': 'mountpoint', 'read-only': 'read_only'} - def __init__(self, mountpoint=None, read_only=None): +class SSHProxyResult(Type): + _toSchema = {'use_proxy': 'use-proxy'} + _toPy = {'use-proxy': 'use_proxy'} + def __init__(self, use_proxy=None): ''' - mountpoint : str - read_only : bool + use_proxy : bool ''' - self.mountpoint = mountpoint - self.read_only = read_only + self.use_proxy = use_proxy -class FilesystemDetails(Type): - _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage', 'machineattachments': 'machineattachments'} - _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage', 'machineattachments': 'machineattachments'} - def __init__(self, filesystemtag=None, info=None, machineattachments=None, status=None, storage=None, volumetag=None): +class SSHPublicKeysResult(Type): + _toSchema = {'public_keys': 'public-keys', 'error': 'error'} + _toPy = {'public-keys': 'public_keys', 'error': 'error'} + def __init__(self, error=None, public_keys=None): + ''' + error : Error + public_keys : typing.Sequence[str] + ''' + self.error = Error.from_json(error) if error else None + self.public_keys = public_keys + + +class SSHPublicKeysResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~SSHPublicKeysResult] + ''' + self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] + + +class SingularClaim(Type): + _toSchema = {'controllertag': 'ControllerTag', 'duration': 'Duration', 'modeltag': 'ModelTag'} + _toPy = {'ModelTag': 'modeltag', 'ControllerTag': 'controllertag', 'Duration': 'duration'} + def __init__(self, controllertag=None, duration=None, modeltag=None): + ''' + controllertag : str + duration : int + modeltag : str + ''' + self.controllertag = controllertag + self.duration = duration + self.modeltag = modeltag + + +class SingularClaims(Type): + _toSchema = {'claims': 'Claims'} + _toPy = {'Claims': 'claims'} + def __init__(self, claims=None): + ''' + claims : typing.Sequence[~SingularClaim] + ''' + self.claims = [SingularClaim.from_json(o) for o in claims or []] + + +class ListSpacesResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~Space] + ''' + self.results = [Space.from_json(o) for o in results or []] + + +class Space(Type): + _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'} + _toPy = {'Subnets': 'subnets', 'Error': 'error', 'Name': 'name'} + def __init__(self, error=None, name=None, subnets=None): + ''' + error : Error + name : str + subnets : typing.Sequence[~Subnet] + ''' + self.error = Error.from_json(error) if error else None + self.name = name + self.subnets = [Subnet.from_json(o) for o in subnets or []] + + +class StatusHistoryPruneArgs(Type): + _toSchema = {'maxhistorytime': 'MaxHistoryTime', 'maxhistorymb': 'MaxHistoryMB'} + _toPy = {'MaxHistoryTime': 'maxhistorytime', 'MaxHistoryMB': 'maxhistorymb'} + def __init__(self, maxhistorymb=None, maxhistorytime=None): + ''' + maxhistorymb : int + maxhistorytime : int + ''' + self.maxhistorymb = maxhistorymb + self.maxhistorytime = maxhistorytime + + +class FilesystemAttachmentInfo(Type): + _toSchema = {'mountpoint': 'mountpoint', 'read_only': 'read-only'} + _toPy = {'mountpoint': 'mountpoint', 'read-only': 'read_only'} + def __init__(self, mountpoint=None, read_only=None): + ''' + mountpoint : str + read_only : bool + ''' + self.mountpoint = mountpoint + self.read_only = read_only + + +class FilesystemDetails(Type): + _toSchema = {'machineattachments': 'machineattachments', 'info': 'info', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'storage': 'storage', 'status': 'status'} + _toPy = {'machineattachments': 'machineattachments', 'info': 'info', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'storage': 'storage', 'status': 'status'} + def __init__(self, filesystemtag=None, info=None, machineattachments=None, status=None, storage=None, volumetag=None): ''' filesystemtag : str info : FilesystemInfo @@ -3981,8 +4047,8 @@ class FilesystemDetails(Type): class FilesystemDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4035,8 +4101,8 @@ class FilesystemInfo(Type): class StorageAddParams(Type): - _toSchema = {'unit': 'unit', 'storagename': 'StorageName', 'storage': 'storage'} - _toPy = {'unit': 'unit', 'StorageName': 'storagename', 'storage': 'storage'} + _toSchema = {'storage': 'storage', 'storagename': 'StorageName', 'unit': 'unit'} + _toPy = {'StorageName': 'storagename', 'storage': 'storage', 'unit': 'unit'} def __init__(self, storagename=None, storage=None, unit=None): ''' storagename : str @@ -4049,8 +4115,8 @@ class StorageAddParams(Type): class StorageAttachmentDetails(Type): - _toSchema = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'} - _toPy = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'} + _toSchema = {'unittag': 'unittag', 'storagetag': 'storagetag', 'location': 'location', 'machinetag': 'machinetag'} + _toPy = {'unittag': 'unittag', 'storagetag': 'storagetag', 'location': 'location', 'machinetag': 'machinetag'} def __init__(self, location=None, machinetag=None, storagetag=None, unittag=None): ''' location : str @@ -4065,8 +4131,8 @@ class StorageAttachmentDetails(Type): class StorageConstraints(Type): - _toSchema = {'pool': 'Pool', 'count': 'Count', 'size': 'Size'} - _toPy = {'Pool': 'pool', 'Count': 'count', 'Size': 'size'} + _toSchema = {'pool': 'Pool', 'size': 'Size', 'count': 'Count'} + _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'} def __init__(self, count=None, pool=None, size=None): ''' count : int @@ -4079,8 +4145,8 @@ class StorageConstraints(Type): class StorageDetails(Type): - _toSchema = {'attachments': 'attachments', 'status': 'status', 'persistent': 'Persistent', 'kind': 'kind', 'ownertag': 'ownertag', 'storagetag': 'storagetag'} - _toPy = {'Persistent': 'persistent', 'status': 'status', 'attachments': 'attachments', 'kind': 'kind', 'ownertag': 'ownertag', 'storagetag': 'storagetag'} + _toSchema = {'persistent': 'Persistent', 'storagetag': 'storagetag', 'kind': 'kind', 'ownertag': 'ownertag', 'attachments': 'attachments', 'status': 'status'} + _toPy = {'storagetag': 'storagetag', 'kind': 'kind', 'Persistent': 'persistent', 'ownertag': 'ownertag', 'attachments': 'attachments', 'status': 'status'} def __init__(self, persistent=None, attachments=None, kind=None, ownertag=None, status=None, storagetag=None): ''' persistent : bool @@ -4099,8 +4165,8 @@ class StorageDetails(Type): class StorageDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4121,8 +4187,8 @@ class StorageDetailsListResults(Type): class StorageDetailsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4163,8 +4229,8 @@ class StorageFilters(Type): class StoragePool(Type): - _toSchema = {'name': 'name', 'provider': 'provider', 'attrs': 'attrs'} - _toPy = {'name': 'name', 'provider': 'provider', 'attrs': 'attrs'} + _toSchema = {'provider': 'provider', 'attrs': 'attrs', 'name': 'name'} + _toPy = {'provider': 'provider', 'attrs': 'attrs', 'name': 'name'} def __init__(self, attrs=None, name=None, provider=None): ''' attrs : typing.Mapping[str, typing.Any] @@ -4199,8 +4265,8 @@ class StoragePoolFilters(Type): class StoragePoolsResult(Type): - _toSchema = {'storagepools': 'storagepools', 'error': 'error'} - _toPy = {'storagepools': 'storagepools', 'error': 'error'} + _toSchema = {'error': 'error', 'storagepools': 'storagepools'} + _toPy = {'error': 'error', 'storagepools': 'storagepools'} def __init__(self, error=None, storagepools=None): ''' error : Error @@ -4231,8 +4297,8 @@ class StoragesAddParams(Type): class VolumeDetails(Type): - _toSchema = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'} - _toPy = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'} + _toSchema = {'machineattachments': 'machineattachments', 'volumetag': 'volumetag', 'info': 'info', 'storage': 'storage', 'status': 'status'} + _toPy = {'machineattachments': 'machineattachments', 'volumetag': 'volumetag', 'info': 'info', 'storage': 'storage', 'status': 'status'} def __init__(self, info=None, machineattachments=None, status=None, storage=None, volumetag=None): ''' info : VolumeInfo @@ -4249,8 +4315,8 @@ class VolumeDetails(Type): class VolumeDetailsListResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4291,8 +4357,8 @@ class VolumeFilters(Type): class BlockDeviceResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4313,8 +4379,8 @@ class BlockDeviceResults(Type): class Filesystem(Type): - _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'} - _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'} + _toSchema = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'info': 'info'} + _toPy = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'info': 'info'} def __init__(self, filesystemtag=None, info=None, volumetag=None): ''' filesystemtag : str @@ -4341,8 +4407,8 @@ class FilesystemAttachment(Type): class FilesystemAttachmentParams(Type): - _toSchema = {'filesystemtag': 'filesystemtag', 'instanceid': 'instanceid', 'mountpoint': 'mountpoint', 'machinetag': 'machinetag', 'filesystemid': 'filesystemid', 'provider': 'provider', 'read_only': 'read-only'} - _toPy = {'filesystemtag': 'filesystemtag', 'instanceid': 'instanceid', 'read-only': 'read_only', 'mountpoint': 'mountpoint', 'machinetag': 'machinetag', 'filesystemid': 'filesystemid', 'provider': 'provider'} + _toSchema = {'filesystemtag': 'filesystemtag', 'mountpoint': 'mountpoint', 'read_only': 'read-only', 'provider': 'provider', 'filesystemid': 'filesystemid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'} + _toPy = {'filesystemtag': 'filesystemtag', 'mountpoint': 'mountpoint', 'provider': 'provider', 'read-only': 'read_only', 'filesystemid': 'filesystemid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'} def __init__(self, filesystemid=None, filesystemtag=None, instanceid=None, machinetag=None, mountpoint=None, provider=None, read_only=None): ''' filesystemid : str @@ -4363,8 +4429,8 @@ class FilesystemAttachmentParams(Type): class FilesystemAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4385,8 +4451,8 @@ class FilesystemAttachmentParamsResults(Type): class FilesystemAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4417,8 +4483,8 @@ class FilesystemAttachments(Type): class FilesystemParams(Type): - _toSchema = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'} - _toPy = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'} + _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'tags': 'tags', 'provider': 'provider'} + _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'tags': 'tags', 'provider': 'provider'} def __init__(self, attachment=None, attributes=None, filesystemtag=None, provider=None, size=None, tags=None, volumetag=None): ''' attachment : FilesystemAttachmentParams @@ -4439,8 +4505,8 @@ class FilesystemParams(Type): class FilesystemParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4461,8 +4527,8 @@ class FilesystemParamsResults(Type): class FilesystemResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4513,8 +4579,8 @@ class MachineStorageIdsWatchResults(Type): class VolumeAttachment(Type): - _toSchema = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'} - _toPy = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'} + _toSchema = {'volumetag': 'volumetag', 'info': 'info', 'machinetag': 'machinetag'} + _toPy = {'volumetag': 'volumetag', 'info': 'info', 'machinetag': 'machinetag'} def __init__(self, info=None, machinetag=None, volumetag=None): ''' info : VolumeAttachmentInfo @@ -4527,8 +4593,8 @@ class VolumeAttachment(Type): class VolumeAttachmentParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4549,8 +4615,8 @@ class VolumeAttachmentParamsResults(Type): class VolumeAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4581,8 +4647,8 @@ class VolumeAttachments(Type): class VolumeParamsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4603,8 +4669,8 @@ class VolumeParamsResults(Type): class VolumeResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4657,7 +4723,7 @@ class SpaceResults(Type): class ZoneResult(Type): - _toSchema = {'available': 'Available', 'error': 'Error', 'name': 'Name'} + _toSchema = {'error': 'Error', 'available': 'Available', 'name': 'Name'} _toPy = {'Error': 'error', 'Available': 'available', 'Name': 'name'} def __init__(self, available=None, error=None, name=None): ''' @@ -4681,8 +4747,8 @@ class ZoneResults(Type): class UndertakerModelInfo(Type): - _toSchema = {'globalname': 'GlobalName', 'name': 'Name', 'life': 'Life', 'uuid': 'UUID', 'issystem': 'IsSystem'} - _toPy = {'UUID': 'uuid', 'Name': 'name', 'Life': 'life', 'GlobalName': 'globalname', 'IsSystem': 'issystem'} + _toSchema = {'globalname': 'GlobalName', 'uuid': 'UUID', 'life': 'Life', 'issystem': 'IsSystem', 'name': 'Name'} + _toPy = {'GlobalName': 'globalname', 'IsSystem': 'issystem', 'Life': 'life', 'Name': 'name', 'UUID': 'uuid'} def __init__(self, globalname=None, issystem=None, life=None, name=None, uuid=None): ''' globalname : str @@ -4699,8 +4765,8 @@ class UndertakerModelInfo(Type): class UndertakerModelInfoResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4710,6 +4776,30 @@ class UndertakerModelInfoResult(Type): self.result = UndertakerModelInfo.from_json(result) if result else None +class ApplicationStatusResult(Type): + _toSchema = {'units': 'Units', 'application': 'Application', 'error': 'Error'} + _toPy = {'Error': 'error', 'Application': 'application', 'Units': 'units'} + def __init__(self, application=None, error=None, units=None): + ''' + application : StatusResult + error : Error + units : typing.Mapping[str, ~StatusResult] + ''' + self.application = StatusResult.from_json(application) if application else None + self.error = Error.from_json(error) if error else None + self.units = {k: StatusResult.from_json(v) for k, v in (units or dict()).items()} + + +class ApplicationStatusResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~ApplicationStatusResult] + ''' + self.results = [ApplicationStatusResult.from_json(o) for o in results or []] + + class CharmURL(Type): _toSchema = {'url': 'URL'} _toPy = {'URL': 'url'} @@ -4731,8 +4821,8 @@ class CharmURLs(Type): class ConfigSettingsResult(Type): - _toSchema = {'error': 'Error', 'settings': 'Settings'} - _toPy = {'Error': 'error', 'Settings': 'settings'} + _toSchema = {'settings': 'Settings', 'error': 'Error'} + _toPy = {'Settings': 'settings', 'Error': 'error'} def __init__(self, error=None, settings=None): ''' error : Error @@ -4753,15 +4843,15 @@ class ConfigSettingsResults(Type): class Endpoint(Type): - _toSchema = {'relation': 'Relation', 'servicename': 'ServiceName'} - _toPy = {'Relation': 'relation', 'ServiceName': 'servicename'} - def __init__(self, relation=None, servicename=None): + _toSchema = {'relation': 'Relation', 'applicationname': 'ApplicationName'} + _toPy = {'Relation': 'relation', 'ApplicationName': 'applicationname'} + def __init__(self, applicationname=None, relation=None): ''' + applicationname : str relation : Relation - servicename : str ''' + self.applicationname = applicationname self.relation = Relation.from_json(relation) if relation else None - self.servicename = servicename class EntitiesCharmURL(Type): @@ -4786,7 +4876,7 @@ class EntitiesPortRanges(Type): class EntityCharmURL(Type): _toSchema = {'charmurl': 'CharmURL', 'tag': 'Tag'} - _toPy = {'Tag': 'tag', 'CharmURL': 'charmurl'} + _toPy = {'CharmURL': 'charmurl', 'Tag': 'tag'} def __init__(self, charmurl=None, tag=None): ''' charmurl : str @@ -4797,8 +4887,8 @@ class EntityCharmURL(Type): class EntityPortRange(Type): - _toSchema = {'protocol': 'Protocol', 'fromport': 'FromPort', 'tag': 'Tag', 'toport': 'ToPort'} - _toPy = {'Tag': 'tag', 'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'} + _toSchema = {'toport': 'ToPort', 'fromport': 'FromPort', 'protocol': 'Protocol', 'tag': 'Tag'} + _toPy = {'FromPort': 'fromport', 'Tag': 'tag', 'Protocol': 'protocol', 'ToPort': 'toport'} def __init__(self, fromport=None, protocol=None, tag=None, toport=None): ''' fromport : int @@ -4823,8 +4913,8 @@ class GetLeadershipSettingsBulkResults(Type): class GetLeadershipSettingsResult(Type): - _toSchema = {'error': 'Error', 'settings': 'Settings'} - _toPy = {'Error': 'error', 'Settings': 'settings'} + _toSchema = {'settings': 'Settings', 'error': 'Error'} + _toPy = {'Settings': 'settings', 'Error': 'error'} def __init__(self, error=None, settings=None): ''' error : Error @@ -4835,8 +4925,8 @@ class GetLeadershipSettingsResult(Type): class IntResult(Type): - _toSchema = {'error': 'Error', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result'} + _toSchema = {'result': 'Result', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -4867,20 +4957,20 @@ class MergeLeadershipSettingsBulkParams(Type): class MergeLeadershipSettingsParam(Type): - _toSchema = {'settings': 'Settings', 'servicetag': 'ServiceTag'} - _toPy = {'Settings': 'settings', 'ServiceTag': 'servicetag'} - def __init__(self, servicetag=None, settings=None): + _toSchema = {'applicationtag': 'ApplicationTag', 'settings': 'Settings'} + _toPy = {'Settings': 'settings', 'ApplicationTag': 'applicationtag'} + def __init__(self, applicationtag=None, settings=None): ''' - servicetag : str + applicationtag : str settings : typing.Mapping[str, str] ''' - self.servicetag = servicetag + self.applicationtag = applicationtag self.settings = settings class ModelResult(Type): - _toSchema = {'error': 'Error', 'uuid': 'UUID', 'name': 'Name'} - _toPy = {'Error': 'error', 'UUID': 'uuid', 'Name': 'name'} + _toSchema = {'uuid': 'UUID', 'error': 'Error', 'name': 'Name'} + _toPy = {'Error': 'error', 'Name': 'name', 'UUID': 'uuid'} def __init__(self, error=None, name=None, uuid=None): ''' error : Error @@ -4903,8 +4993,8 @@ class RelationIds(Type): class RelationResult(Type): - _toSchema = {'endpoint': 'Endpoint', 'key': 'Key', 'error': 'Error', 'id_': 'Id', 'life': 'Life'} - _toPy = {'Error': 'error', 'Endpoint': 'endpoint', 'Key': 'key', 'Life': 'life', 'Id': 'id_'} + _toSchema = {'key': 'Key', 'life': 'Life', 'id_': 'Id', 'endpoint': 'Endpoint', 'error': 'Error'} + _toPy = {'Endpoint': 'endpoint', 'Id': 'id_', 'Error': 'error', 'Key': 'key', 'Life': 'life'} def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None): ''' endpoint : Endpoint @@ -4931,7 +5021,7 @@ class RelationResults(Type): class RelationUnit(Type): - _toSchema = {'unit': 'Unit', 'relation': 'Relation'} + _toSchema = {'relation': 'Relation', 'unit': 'Unit'} _toPy = {'Relation': 'relation', 'Unit': 'unit'} def __init__(self, relation=None, unit=None): ''' @@ -4943,8 +5033,8 @@ class RelationUnit(Type): class RelationUnitPair(Type): - _toSchema = {'relation': 'Relation', 'localunit': 'LocalUnit', 'remoteunit': 'RemoteUnit'} - _toPy = {'Relation': 'relation', 'RemoteUnit': 'remoteunit', 'LocalUnit': 'localunit'} + _toSchema = {'localunit': 'LocalUnit', 'relation': 'Relation', 'remoteunit': 'RemoteUnit'} + _toPy = {'RemoteUnit': 'remoteunit', 'Relation': 'relation', 'LocalUnit': 'localunit'} def __init__(self, localunit=None, relation=None, remoteunit=None): ''' localunit : str @@ -4967,8 +5057,8 @@ class RelationUnitPairs(Type): class RelationUnitSettings(Type): - _toSchema = {'unit': 'Unit', 'relation': 'Relation', 'settings': 'Settings'} - _toPy = {'Relation': 'relation', 'Unit': 'unit', 'Settings': 'settings'} + _toSchema = {'settings': 'Settings', 'relation': 'Relation', 'unit': 'Unit'} + _toPy = {'Settings': 'settings', 'Relation': 'relation', 'Unit': 'unit'} def __init__(self, relation=None, settings=None, unit=None): ''' relation : str @@ -5011,7 +5101,7 @@ class RelationUnitsWatchResults(Type): class ResolvedModeResult(Type): - _toSchema = {'error': 'Error', 'mode': 'Mode'} + _toSchema = {'mode': 'Mode', 'error': 'Error'} _toPy = {'Error': 'error', 'Mode': 'mode'} def __init__(self, error=None, mode=None): ''' @@ -5032,33 +5122,9 @@ class ResolvedModeResults(Type): self.results = [ResolvedModeResult.from_json(o) for o in results or []] -class ServiceStatusResult(Type): - _toSchema = {'units': 'Units', 'error': 'Error', 'service': 'Service'} - _toPy = {'Error': 'error', 'Service': 'service', 'Units': 'units'} - def __init__(self, error=None, service=None, units=None): - ''' - error : Error - service : StatusResult - units : typing.Mapping[str, ~StatusResult] - ''' - self.error = Error.from_json(error) if error else None - self.service = StatusResult.from_json(service) if service else None - self.units = {k: StatusResult.from_json(v) for k, v in (units or dict()).items()} - - -class ServiceStatusResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): - ''' - results : typing.Sequence[~ServiceStatusResult] - ''' - self.results = [ServiceStatusResult.from_json(o) for o in results or []] - - class SettingsResult(Type): - _toSchema = {'error': 'Error', 'settings': 'Settings'} - _toPy = {'Error': 'error', 'Settings': 'settings'} + _toSchema = {'settings': 'Settings', 'error': 'Error'} + _toPy = {'Settings': 'settings', 'Error': 'error'} def __init__(self, error=None, settings=None): ''' error : Error @@ -5079,8 +5145,8 @@ class SettingsResults(Type): class StorageAttachment(Type): - _toSchema = {'ownertag': 'OwnerTag', 'unittag': 'UnitTag', 'location': 'Location', 'kind': 'Kind', 'life': 'Life', 'storagetag': 'StorageTag'} - _toPy = {'UnitTag': 'unittag', 'OwnerTag': 'ownertag', 'Location': 'location', 'Life': 'life', 'StorageTag': 'storagetag', 'Kind': 'kind'} + _toSchema = {'storagetag': 'StorageTag', 'location': 'Location', 'life': 'Life', 'unittag': 'UnitTag', 'ownertag': 'OwnerTag', 'kind': 'Kind'} + _toPy = {'OwnerTag': 'ownertag', 'StorageTag': 'storagetag', 'UnitTag': 'unittag', 'Life': 'life', 'Location': 'location', 'Kind': 'kind'} def __init__(self, kind=None, life=None, location=None, ownertag=None, storagetag=None, unittag=None): ''' kind : int @@ -5121,8 +5187,8 @@ class StorageAttachmentIds(Type): class StorageAttachmentIdsResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -5143,8 +5209,8 @@ class StorageAttachmentIdsResults(Type): class StorageAttachmentResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -5165,8 +5231,8 @@ class StorageAttachmentResults(Type): class StringBoolResult(Type): - _toSchema = {'error': 'Error', 'ok': 'Ok', 'result': 'Result'} - _toPy = {'Error': 'error', 'Result': 'result', 'Ok': 'ok'} + _toSchema = {'result': 'Result', 'ok': 'Ok', 'error': 'Error'} + _toPy = {'Result': 'result', 'Error': 'error', 'Ok': 'ok'} def __init__(self, error=None, ok=None, result=None): ''' error : Error @@ -5190,7 +5256,7 @@ class StringBoolResults(Type): class UnitNetworkConfig(Type): _toSchema = {'unittag': 'UnitTag', 'bindingname': 'BindingName'} - _toPy = {'UnitTag': 'unittag', 'BindingName': 'bindingname'} + _toPy = {'BindingName': 'bindingname', 'UnitTag': 'unittag'} def __init__(self, bindingname=None, unittag=None): ''' bindingname : str @@ -5202,7 +5268,7 @@ class UnitNetworkConfig(Type): class UnitNetworkConfigResult(Type): _toSchema = {'info': 'Info', 'error': 'Error'} - _toPy = {'Info': 'info', 'Error': 'error'} + _toPy = {'Error': 'error', 'Info': 'info'} def __init__(self, error=None, info=None): ''' error : Error @@ -5277,8 +5343,8 @@ class VersionResults(Type): class AddUser(Type): - _toSchema = {'model_access_permission': 'model-access-permission', 'display_name': 'display-name', 'username': 'username', 'shared_model_tags': 'shared-model-tags', 'password': 'password'} - _toPy = {'password': 'password', 'model-access-permission': 'model_access_permission', 'display-name': 'display_name', 'username': 'username', 'shared-model-tags': 'shared_model_tags'} + _toSchema = {'model_access_permission': 'model-access-permission', 'shared_model_tags': 'shared-model-tags', 'password': 'password', 'username': 'username', 'display_name': 'display-name'} + _toPy = {'model-access-permission': 'model_access_permission', 'password': 'password', 'username': 'username', 'shared-model-tags': 'shared_model_tags', 'display-name': 'display_name'} def __init__(self, display_name=None, model_access_permission=None, password=None, shared_model_tags=None, username=None): ''' display_name : str @@ -5295,8 +5361,8 @@ class AddUser(Type): class AddUserResult(Type): - _toSchema = {'error': 'error', 'tag': 'tag', 'secret_key': 'secret-key'} - _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'} + _toSchema = {'tag': 'tag', 'error': 'error', 'secret_key': 'secret-key'} + _toPy = {'error': 'error', 'tag': 'tag', 'secret-key': 'secret_key'} def __init__(self, error=None, secret_key=None, tag=None): ''' error : Error @@ -5329,8 +5395,8 @@ class AddUsers(Type): class MacaroonResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -5351,8 +5417,8 @@ class MacaroonResults(Type): class UserInfo(Type): - _toSchema = {'created_by': 'created-by', 'username': 'username', 'display_name': 'display-name', 'last_connection': 'last-connection', 'disabled': 'disabled', 'date_created': 'date-created'} - _toPy = {'username': 'username', 'created-by': 'created_by', 'display-name': 'display_name', 'disabled': 'disabled', 'last-connection': 'last_connection', 'date-created': 'date_created'} + _toSchema = {'date_created': 'date-created', 'last_connection': 'last-connection', 'disabled': 'disabled', 'display_name': 'display-name', 'created_by': 'created-by', 'username': 'username'} + _toPy = {'last-connection': 'last_connection', 'date-created': 'date_created', 'disabled': 'disabled', 'created-by': 'created_by', 'username': 'username', 'display-name': 'display_name'} def __init__(self, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None): ''' created_by : str @@ -5383,8 +5449,8 @@ class UserInfoRequest(Type): class UserInfoResult(Type): - _toSchema = {'error': 'error', 'result': 'result'} - _toPy = {'error': 'error', 'result': 'result'} + _toSchema = {'result': 'result', 'error': 'error'} + _toPy = {'result': 'result', 'error': 'error'} def __init__(self, error=None, result=None): ''' error : Error @@ -5394,71 +5460,532 @@ class UserInfoResult(Type): self.result = UserInfo.from_json(result) if result else None -class UserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class UserInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~UserInfoResult] + ''' + self.results = [UserInfoResult.from_json(o) for o in results or []] + + +class ActionFacade(Type): + name = 'Action' + version = 2 + schema = {'definitions': {'Action': {'additionalProperties': False, + 'properties': {'name': {'type': 'string'}, + 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'receiver': {'type': 'string'}, + 'tag': {'type': 'string'}}, + 'required': ['tag', 'receiver', 'name'], + 'type': 'object'}, + 'ActionResult': {'additionalProperties': False, + 'properties': {'action': {'$ref': '#/definitions/Action'}, + 'completed': {'format': 'date-time', + 'type': 'string'}, + 'enqueued': {'format': 'date-time', + 'type': 'string'}, + 'error': {'$ref': '#/definitions/Error'}, + 'message': {'type': 'string'}, + 'output': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'started': {'format': 'date-time', + 'type': 'string'}, + 'status': {'type': 'string'}}, + 'type': 'object'}, + 'ActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, + 'ActionSpec': {'additionalProperties': False, + 'properties': {'Description': {'type': 'string'}, + 'Params': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['Description', 'Params'], + 'type': 'object'}, + 'Actions': {'additionalProperties': False, + 'properties': {'ActionSpecs': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}}, + 'type': 'object'}}, + 'required': ['ActionSpecs'], + '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': {'ApplicationTag': {'type': 'string'}, + 'actions': {'$ref': '#/definitions/Actions'}, + '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'}, + 'MacaroonPath': {'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, + 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, + 'type': 'array'}, + 'data': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'id': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'sig': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['data', + 'location', + 'id', + 'caveats', + 'sig'], + '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', + 'Machines', + 'Applications', + 'Units'], + 'type': 'object'}, + 'caveat': {'additionalProperties': False, + 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'verificationId': {'$ref': '#/definitions/packet'}}, + 'required': ['location', + 'caveatId', + 'verificationId'], + 'type': 'object'}, + 'packet': {'additionalProperties': False, + 'properties': {'headerLen': {'type': 'integer'}, + 'start': {'type': 'integer'}, + 'totalLen': {'type': 'integer'}}, + 'required': ['start', 'totalLen', 'headerLen'], + 'type': 'object'}}, + 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}}, + 'type': 'object'}, + 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'}, + 'Result': {'$ref': '#/definitions/FindTagsResults'}}, + 'type': 'object'}, + 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'}, + 'Result': {'$ref': '#/definitions/ActionsByNames'}}, + 'type': 'object'}, + 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'type': 'object'}, + 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(ActionResults) + async def Actions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='Actions', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationsCharmActionsResults) + async def ApplicationsCharmsActions(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationCharmActionsResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='ApplicationsCharmsActions', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Cancel(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='Cancel', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Enqueue(self, actionspecs): + ''' + actionspecs : typing.Mapping[str, ~ActionSpec] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='Enqueue', Version=2, Params=params) + params['ActionSpecs'] = actionspecs + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(FindTagsResults) + async def FindActionTagsByPrefix(self, prefixes): + ''' + prefixes : typing.Sequence[str] + Returns -> typing.Sequence[~Entity] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='FindActionTagsByPrefix', Version=2, Params=params) + params['prefixes'] = prefixes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByNames) + async def FindActionsByNames(self, names): + ''' + names : typing.Sequence[str] + Returns -> typing.Sequence[~ActionsByName] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='FindActionsByNames', Version=2, Params=params) + params['names'] = names + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListAll(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='ListAll', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListCompleted(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='ListCompleted', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListPending(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='ListPending', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionsByReceivers) + async def ListRunning(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='ListRunning', Version=2, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def Run(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='Run', Version=2, Params=params) + params['Applications'] = applications + params['Commands'] = commands + params['Machines'] = machines + params['Timeout'] = timeout + params['Units'] = units + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ActionResults) + async def RunOnAllMachines(self, applications, commands, machines, timeout, units): + ''' + applications : typing.Sequence[str] + commands : str + machines : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Action', Request='RunOnAllMachines', Version=2, Params=params) + params['Applications'] = applications + params['Commands'] = commands + params['Machines'] = machines + params['Timeout'] = timeout + params['Units'] = units + reply = await self.rpc(msg) + return reply + + +class AddresserFacade(Type): + name = 'Addresser' + version = 2 + schema = {'definitions': {'BoolResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'Result': {'type': 'boolean'}}, + 'required': ['Error', 'Result'], + 'type': 'object'}, + 'EntitiesWatchResult': {'additionalProperties': False, + 'properties': {'Changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'EntityWatcherId': {'type': 'string'}, + 'Error': {'$ref': '#/definitions/Error'}}, + 'required': ['EntityWatcherId', + 'Changes', + 'Error'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'Code': {'type': 'string'}, + 'Info': {'$ref': '#/definitions/ErrorInfo'}, + 'Message': {'type': 'string'}}, + 'required': ['Message', 'Code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, + 'MacaroonPath': {'type': 'string'}}, + 'type': 'object'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}}, + 'required': ['Error'], + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, + 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, + 'type': 'array'}, + 'data': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'id': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'sig': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['data', + 'location', + 'id', + 'caveats', + 'sig'], + 'type': 'object'}, + 'caveat': {'additionalProperties': False, + 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'verificationId': {'$ref': '#/definitions/packet'}}, + 'required': ['location', + 'caveatId', + 'verificationId'], + 'type': 'object'}, + 'packet': {'additionalProperties': False, + 'properties': {'headerLen': {'type': 'integer'}, + 'start': {'type': 'integer'}, + 'totalLen': {'type': 'integer'}}, + 'required': ['start', 'totalLen', 'headerLen'], + 'type': 'object'}}, + 'properties': {'CanDeallocateAddresses': {'properties': {'Result': {'$ref': '#/definitions/BoolResult'}}, + 'type': 'object'}, + 'CleanupIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, + 'type': 'object'}, + 'WatchIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + + + @ReturnMapping(BoolResult) + async def CanDeallocateAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), bool] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Addresser', Request='CanDeallocateAddresses', Version=2, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResult) + async def CleanupIPAddresses(self): + ''' + + Returns -> Error + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Addresser', Request='CleanupIPAddresses', Version=2, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(EntitiesWatchResult) + async def WatchIPAddresses(self): ''' - results : typing.Sequence[~UserInfoResult] + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] ''' - self.results = [UserInfoResult.from_json(o) for o in results or []] + # map input types to rpc msg + params = dict() + msg = dict(Type='Addresser', Request='WatchIPAddresses', Version=2, Params=params) + reply = await self.rpc(msg) + return reply -class Action(Type): - name = 'Action' - 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'}, - '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'}, - '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'}, + +class AgentFacade(Type): + name = 'Agent' + version = 2 + schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False, + 'properties': {'ContainerType': {'type': 'string'}, + 'Error': {'$ref': '#/definitions/Error'}, + 'Jobs': {'items': {'type': 'string'}, + 'type': 'array'}, + 'Life': {'type': 'string'}}, + 'required': ['Life', + 'Jobs', + 'ContainerType', + 'Error'], + 'type': 'object'}, + 'AgentGetEntitiesResults': {'additionalProperties': False, + 'properties': {'Entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'}, + 'type': 'array'}}, + 'required': ['Entities'], + 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, @@ -5468,6 +5995,16 @@ class Action(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'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -5478,21 +6015,19 @@ class Action(Type): 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, 'MacaroonPath': {'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'}, + 'ErrorResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}}, + 'required': ['Error'], + 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'IsMasterResult': {'additionalProperties': False, + 'properties': {'Master': {'type': 'boolean'}}, + 'required': ['Master'], + 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -5508,30 +6043,33 @@ class Action(Type): 'caveats', 'sig'], 'type': 'object'}, - 'RunParams': {'additionalProperties': False, - 'properties': {'Commands': {'type': 'string'}, - 'Machines': {'items': {'type': 'string'}, - 'type': 'array'}, - 'Services': {'items': {'type': 'string'}, - 'type': 'array'}, - 'Timeout': {'type': 'integer'}, - 'Units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Commands', - 'Timeout', - 'Machines', - 'Services', - 'Units'], - 'type': 'object'}, - 'ServiceCharmActionsResult': {'additionalProperties': False, - 'properties': {'actions': {'$ref': '#/definitions/Actions'}, - 'error': {'$ref': '#/definitions/Error'}, - 'servicetag': {'type': 'string'}}, - 'type': 'object'}, - 'ServicesCharmActionsResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/ServiceCharmActionsResult'}, - 'type': 'array'}}, - 'type': 'object'}, + 'ModelConfigResult': {'additionalProperties': False, + 'properties': {'Config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}}, + 'required': ['Config'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'NotifyWatcherId': {'type': 'string'}}, + 'required': ['NotifyWatcherId', 'Error'], + 'type': 'object'}, + 'StateServingInfo': {'additionalProperties': False, + 'properties': {'APIPort': {'type': 'integer'}, + 'CAPrivateKey': {'type': 'string'}, + 'Cert': {'type': 'string'}, + 'PrivateKey': {'type': 'string'}, + 'SharedSecret': {'type': 'string'}, + 'StatePort': {'type': 'integer'}, + 'SystemIdentity': {'type': 'string'}}, + 'required': ['APIPort', + 'StatePort', + 'Cert', + 'PrivateKey', + 'CAPrivateKey', + 'SharedSecret', + 'SystemIdentity'], + 'type': 'object'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -5546,257 +6084,285 @@ class Action(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - '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'}}, + 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, - 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, + 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, 'type': 'object'}, - 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, - 'type': 'object'}, - 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, - 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, + 'type': 'object'}, + 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'type': 'object'}, + 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, 'type': 'object'}, - 'ServicesCharmActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ServicesCharmActionsResults'}}, - 'type': 'object'}}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(ActionResults) - async def Actions(self, entities): + @ReturnMapping(ErrorResults) + async def ClearReboot(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='Actions', Version=1, Params=params) + msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ActionResults) - async def Cancel(self, entities): + @ReturnMapping(AgentGetEntitiesResults) + async def GetEntities(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionResult] + Returns -> typing.Sequence[~AgentGetEntitiesResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='Cancel', Version=1, Params=params) + msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ActionResults) - async def Enqueue(self, actions): + @ReturnMapping(IsMasterResult) + async def IsMaster(self): ''' - actions : typing.Sequence[~Action] - Returns -> typing.Sequence[~ActionResult] + + Returns -> bool ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='Enqueue', Version=1, Params=params) - params['actions'] = actions + msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(FindTagsResults) - async def FindActionTagsByPrefix(self, prefixes): + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): ''' - prefixes : typing.Sequence[str] - Returns -> typing.Sequence[~Entity] + + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='FindActionTagsByPrefix', Version=1, Params=params) - params['prefixes'] = prefixes + msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params) + reply = await self.rpc(msg) return reply - - @ReturnMapping(ActionsByNames) - async def FindActionsByNames(self, names): + + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): ''' - names : typing.Sequence[str] - Returns -> typing.Sequence[~ActionsByName] + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='FindActionsByNames', Version=1, Params=params) - params['names'] = names + msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params) + params['Changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(ActionsByReceivers) - async def ListAll(self, entities): + @ReturnMapping(StateServingInfo) + async def StateServingInfo(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] + + Returns -> typing.Union[int, str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='ListAll', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ActionsByReceivers) - async def ListCompleted(self, entities): + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='ListCompleted', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params) + reply = await self.rpc(msg) return reply +class AgentToolsFacade(Type): + name = 'AgentTools' + version = 1 + schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'} + - @ReturnMapping(ActionsByReceivers) - async def ListPending(self, entities): + @ReturnMapping(None) + async def UpdateToolsAvailable(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] + + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='ListPending', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params) + reply = await self.rpc(msg) return reply +class AllModelWatcherFacade(Type): + name = 'AllModelWatcher' + version = 2 + schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, + 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'}, + 'type': 'array'}}, + 'required': ['Deltas'], + 'type': 'object'}, + 'Delta': {'additionalProperties': False, + 'properties': {'Entity': {'additionalProperties': True, + 'type': 'object'}, + 'Removed': {'type': 'boolean'}}, + 'required': ['Removed', 'Entity'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + - @ReturnMapping(ActionsByReceivers) - async def ListRunning(self, entities): + @ReturnMapping(AllWatcherNextResults) + async def Next(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ActionsByReceiver] + + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='ListRunning', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ActionResults) - async def Run(self, commands, machines, services, timeout, units): + @ReturnMapping(None) + async def Stop(self): ''' - commands : str - machines : typing.Sequence[str] - services : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] + + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='Run', Version=1, Params=params) - params['Commands'] = commands - params['Machines'] = machines - params['Services'] = services - params['Timeout'] = timeout - params['Units'] = units + msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params) + reply = await self.rpc(msg) return reply +class AllWatcherFacade(Type): + name = 'AllWatcher' + version = 1 + schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, + 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'}, + 'type': 'array'}}, + 'required': ['Deltas'], + 'type': 'object'}, + 'Delta': {'additionalProperties': False, + 'properties': {'Entity': {'additionalProperties': True, + 'type': 'object'}, + 'Removed': {'type': 'boolean'}}, + 'required': ['Removed', 'Entity'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + - @ReturnMapping(ActionResults) - async def RunOnAllMachines(self, commands, machines, services, timeout, units): + @ReturnMapping(AllWatcherNextResults) + async def Next(self): ''' - commands : str - machines : typing.Sequence[str] - services : typing.Sequence[str] - timeout : int - units : typing.Sequence[str] - Returns -> typing.Sequence[~ActionResult] + + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='RunOnAllMachines', Version=1, Params=params) - params['Commands'] = commands - params['Machines'] = machines - params['Services'] = services - params['Timeout'] = timeout - params['Units'] = units + msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ServicesCharmActionsResults) - async def ServicesCharmActions(self, entities): + @ReturnMapping(None) + async def Stop(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ServiceCharmActionsResult] + + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Action', Request='ServicesCharmActions', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params) + reply = await self.rpc(msg) return reply -class Addresser(Type): - name = 'Addresser' +class AnnotationsFacade(Type): + name = 'Annotations' version = 2 - schema = {'definitions': {'BoolResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Result': {'type': 'boolean'}}, - 'required': ['Error', 'Result'], - 'type': 'object'}, - 'EntitiesWatchResult': {'additionalProperties': False, - 'properties': {'Changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'EntityWatcherId': {'type': 'string'}, - 'Error': {'$ref': '#/definitions/Error'}}, - 'required': ['EntityWatcherId', - 'Changes', - 'Error'], - 'type': 'object'}, + schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False, + 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'EntityTag': {'type': 'string'}, + 'Error': {'$ref': '#/definitions/ErrorResult'}}, + 'required': ['EntityTag', + 'Annotations', + 'Error'], + 'type': 'object'}, + 'AnnotationsGetResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'AnnotationsSet': {'additionalProperties': False, + 'properties': {'Annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'}, + 'type': 'array'}}, + 'required': ['Annotations'], + 'type': 'object'}, + 'Entities': {'additionalProperties': False, + 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['Entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'Tag': {'type': 'string'}}, + 'required': ['Tag'], + 'type': 'object'}, + 'EntityAnnotations': {'additionalProperties': False, + 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'EntityTag': {'type': 'string'}}, + 'required': ['EntityTag', 'Annotations'], + 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -5811,6 +6377,11 @@ class Addresser(Type): 'properties': {'Error': {'$ref': '#/definitions/Error'}}, 'required': ['Error'], 'type': 'object'}, + 'ErrorResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -5840,96 +6411,218 @@ class Addresser(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'CanDeallocateAddresses': {'properties': {'Result': {'$ref': '#/definitions/BoolResult'}}, - 'type': 'object'}, - 'CleanupIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}}, - 'type': 'object'}, - 'WatchIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}}, - 'type': 'object'}}, + 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}}, + 'type': 'object'}, + 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(BoolResult) - async def CanDeallocateAddresses(self): - ''' - - Returns -> typing.Union[_ForwardRef('Error'), bool] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Addresser', Request='CanDeallocateAddresses', Version=2, Params=params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResult) - async def CleanupIPAddresses(self): + @ReturnMapping(AnnotationsGetResults) + async def Get(self, entities): ''' - - Returns -> Error + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~AnnotationsGetResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Addresser', Request='CleanupIPAddresses', Version=2, Params=params) - + msg = dict(Type='Annotations', Request='Get', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(EntitiesWatchResult) - async def WatchIPAddresses(self): + @ReturnMapping(ErrorResults) + async def Set(self, annotations): ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] + annotations : typing.Sequence[~EntityAnnotations] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Addresser', Request='WatchIPAddresses', Version=2, Params=params) - + msg = dict(Type='Annotations', Request='Set', Version=2, Params=params) + params['Annotations'] = annotations reply = await self.rpc(msg) return reply -class Agent(Type): - name = 'Agent' - version = 2 - schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False, - 'properties': {'ContainerType': {'type': 'string'}, - 'Error': {'$ref': '#/definitions/Error'}, - 'Jobs': {'items': {'type': 'string'}, - 'type': 'array'}, - 'Life': {'type': 'string'}}, - 'required': ['Life', - 'Jobs', - 'ContainerType', - 'Error'], - 'type': 'object'}, - 'AgentGetEntitiesResults': {'additionalProperties': False, - 'properties': {'Entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'}, +class ApplicationFacade(Type): + name = 'Application' + version = 1 + schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'NumUnits': {'type': 'integer'}, + 'Placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}}, + 'required': ['ApplicationName', + 'NumUnits', + 'Placement'], + 'type': 'object'}, + 'AddApplicationUnitsResults': {'additionalProperties': False, + 'properties': {'Units': {'items': {'type': 'string'}, 'type': 'array'}}, - 'required': ['Entities'], - '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'], + 'required': ['Units'], + 'type': 'object'}, + 'AddRelation': {'additionalProperties': False, + 'properties': {'Endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['Endpoints'], + 'type': 'object'}, + 'AddRelationResults': {'additionalProperties': False, + 'properties': {'Endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/Relation'}}, + 'type': 'object'}}, + 'required': ['Endpoints'], + 'type': 'object'}, + 'ApplicationCharmRelations': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], + 'type': 'object'}, + 'ApplicationCharmRelationsResults': {'additionalProperties': False, + 'properties': {'CharmRelations': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['CharmRelations'], + 'type': 'object'}, + 'ApplicationDeploy': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'Channel': {'type': 'string'}, + 'CharmUrl': {'type': 'string'}, + 'Config': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'ConfigYAML': {'type': 'string'}, + 'Constraints': {'$ref': '#/definitions/Value'}, + 'EndpointBindings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'NumUnits': {'type': 'integer'}, + 'Placement': {'items': {'$ref': '#/definitions/Placement'}, + 'type': 'array'}, + 'Resources': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'Series': {'type': 'string'}, + 'Storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, + 'type': 'object'}}, + 'required': ['ApplicationName', + 'Series', + 'CharmUrl', + 'Channel', + 'NumUnits', + 'Config', + 'ConfigYAML', + 'Constraints', + 'Placement', + 'Storage', + 'EndpointBindings', + 'Resources'], + 'type': 'object'}, + 'ApplicationDestroy': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], + 'type': 'object'}, + 'ApplicationExpose': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], + 'type': 'object'}, + 'ApplicationGet': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], 'type': 'object'}, - 'EntityPasswords': {'additionalProperties': False, - 'properties': {'Changes': {'items': {'$ref': '#/definitions/EntityPassword'}, - 'type': 'array'}}, - 'required': ['Changes'], + 'ApplicationGetResults': {'additionalProperties': False, + 'properties': {'Application': {'type': 'string'}, + 'Charm': {'type': 'string'}, + 'Config': {'patternProperties': {'.*': {'additionalProperties': True, + 'type': 'object'}}, + 'type': 'object'}, + 'Constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['Application', + 'Charm', + 'Config', + 'Constraints'], + 'type': 'object'}, + 'ApplicationMetricCredential': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'MetricCredentials': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['ApplicationName', + 'MetricCredentials'], + 'type': 'object'}, + 'ApplicationMetricCredentials': {'additionalProperties': False, + 'properties': {'Creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, + 'type': 'array'}}, + 'required': ['Creds'], + 'type': 'object'}, + 'ApplicationSet': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'Options': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['ApplicationName', 'Options'], + 'type': 'object'}, + 'ApplicationSetCharm': {'additionalProperties': False, + 'properties': {'applicationname': {'type': 'string'}, + 'charmurl': {'type': 'string'}, + 'cs-channel': {'type': 'string'}, + 'forceseries': {'type': 'boolean'}, + 'forceunits': {'type': 'boolean'}, + 'resourceids': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}}, + 'required': ['applicationname', + 'charmurl', + 'cs-channel', + 'forceunits', + 'forceseries', + 'resourceids'], + 'type': 'object'}, + 'ApplicationUnexpose': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], + 'type': 'object'}, + 'ApplicationUnset': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'Options': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['ApplicationName', + 'Options'], + 'type': 'object'}, + 'ApplicationUpdate': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'CharmUrl': {'type': 'string'}, + 'Constraints': {'$ref': '#/definitions/Value'}, + 'ForceCharmUrl': {'type': 'boolean'}, + 'ForceSeries': {'type': 'boolean'}, + 'MinUnits': {'type': 'integer'}, + 'SettingsStrings': {'patternProperties': {'.*': {'type': 'string'}}, + 'type': 'object'}, + 'SettingsYAML': {'type': 'string'}}, + 'required': ['ApplicationName', + 'CharmUrl', + 'ForceCharmUrl', + 'ForceSeries', + 'MinUnits', + 'SettingsStrings', + 'SettingsYAML', + 'Constraints'], + 'type': 'object'}, + 'ApplicationsDeploy': {'additionalProperties': False, + 'properties': {'Applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, + 'type': 'array'}}, + 'required': ['Applications'], + 'type': 'object'}, + 'Constraints': {'additionalProperties': False, + 'properties': {'Count': {'type': 'integer'}, + 'Pool': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Pool', 'Size', 'Count'], + 'type': 'object'}, + 'DestroyApplicationUnits': {'additionalProperties': False, + 'properties': {'UnitNames': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['UnitNames'], + 'type': 'object'}, + 'DestroyRelation': {'additionalProperties': False, + 'properties': {'Endpoints': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['Endpoints'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, @@ -5950,10 +6643,14 @@ class Agent(Type): 'type': 'array'}}, 'required': ['Results'], 'type': 'object'}, - 'IsMasterResult': {'additionalProperties': False, - 'properties': {'Master': {'type': 'boolean'}}, - 'required': ['Master'], - 'type': 'object'}, + 'GetApplicationConstraints': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}}, + 'required': ['ApplicationName'], + 'type': 'object'}, + 'GetConstraintsResults': {'additionalProperties': False, + 'properties': {'Constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['Constraints'], + 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -5969,33 +6666,50 @@ class Agent(Type): 'caveats', 'sig'], 'type': 'object'}, - 'ModelConfigResult': {'additionalProperties': False, - 'properties': {'Config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}}, - 'required': ['Config'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'NotifyWatcherId': {'type': 'string'}}, - 'required': ['NotifyWatcherId', 'Error'], - 'type': 'object'}, - 'StateServingInfo': {'additionalProperties': False, - 'properties': {'APIPort': {'type': 'integer'}, - 'CAPrivateKey': {'type': 'string'}, - 'Cert': {'type': 'string'}, - 'PrivateKey': {'type': 'string'}, - 'SharedSecret': {'type': 'string'}, - 'StatePort': {'type': 'integer'}, - 'SystemIdentity': {'type': 'string'}}, - 'required': ['APIPort', - 'StatePort', - 'Cert', - 'PrivateKey', - 'CAPrivateKey', - 'SharedSecret', - 'SystemIdentity'], - 'type': 'object'}, + 'Placement': {'additionalProperties': False, + 'properties': {'Directive': {'type': 'string'}, + 'Scope': {'type': 'string'}}, + 'required': ['Scope', 'Directive'], + 'type': 'object'}, + 'Relation': {'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'}, + 'SetConstraints': {'additionalProperties': False, + 'properties': {'ApplicationName': {'type': 'string'}, + 'Constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['ApplicationName', + 'Constraints'], + 'type': 'object'}, + 'StringResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'Result': {'type': 'string'}}, + 'required': ['Error', 'Result'], + 'type': 'object'}, + 'Value': {'additionalProperties': False, + 'properties': {'arch': {'type': 'string'}, + 'container': {'type': 'string'}, + 'cpu-cores': {'type': 'integer'}, + 'cpu-power': {'type': 'integer'}, + 'instance-type': {'type': 'string'}, + 'mem': {'type': 'integer'}, + 'root-disk': {'type': 'integer'}, + 'spaces': {'items': {'type': 'string'}, + 'type': 'array'}, + 'tags': {'items': {'type': 'string'}, + 'type': 'array'}, + 'virt-type': {'type': 'string'}}, + 'type': 'object'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -6010,271 +6724,360 @@ class Agent(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, 'type': 'object'}, - 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, + 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, + 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, - 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + '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'}, - 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, - 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - '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(ErrorResults) - async def ClearReboot(self, entities): + @ReturnMapping(AddRelationResults) + async def AddRelation(self, endpoints): + ''' + endpoints : typing.Sequence[str] + Returns -> typing.Mapping[str, ~Relation] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Application', Request='AddRelation', Version=1, Params=params) + params['Endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(AddApplicationUnitsResults) + async def AddUnits(self, applicationname, numunits, placement): + ''' + applicationname : str + numunits : int + placement : typing.Sequence[~Placement] + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Application', Request='AddUnits', Version=1, Params=params) + params['ApplicationName'] = applicationname + params['NumUnits'] = numunits + params['Placement'] = placement + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationCharmRelationsResults) + async def CharmRelations(self, applicationname): + ''' + applicationname : str + Returns -> typing.Sequence[str] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Application', Request='CharmRelations', Version=1, Params=params) + params['ApplicationName'] = applicationname + 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=1, Params=params) + params['Applications'] = applications + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def Destroy(self, applicationname): + ''' + applicationname : str + Returns -> None + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Application', Request='Destroy', Version=1, Params=params) + params['ApplicationName'] = applicationname + 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=1, Params=params) + params['Endpoints'] = endpoints + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(None) + async def DestroyUnits(self, unitnames): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + unitnames : typing.Sequence[str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Application', Request='DestroyUnits', Version=1, Params=params) + params['UnitNames'] = unitnames reply = await self.rpc(msg) return reply - @ReturnMapping(AgentGetEntitiesResults) - async def GetEntities(self, entities): + @ReturnMapping(None) + async def Expose(self, applicationname): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AgentGetEntitiesResult] + applicationname : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Application', Request='Expose', Version=1, Params=params) + params['ApplicationName'] = applicationname reply = await self.rpc(msg) return reply - @ReturnMapping(IsMasterResult) - async def IsMaster(self): + @ReturnMapping(ApplicationGetResults) + async def Get(self, applicationname): ''' - - Returns -> bool + applicationname : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params) - + msg = dict(Type='Application', Request='Get', Version=1, Params=params) + params['ApplicationName'] = applicationname reply = await self.rpc(msg) return reply - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): + @ReturnMapping(StringResult) + async def GetCharmURL(self, applicationname): ''' - - Returns -> typing.Mapping[str, typing.Any] + applicationname : str + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params) - + msg = dict(Type='Application', Request='GetCharmURL', Version=1, Params=params) + params['ApplicationName'] = applicationname reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, applicationname): ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] + applicationname : str + Returns -> Value ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params) - params['Changes'] = changes + msg = dict(Type='Application', Request='GetConstraints', Version=1, Params=params) + params['ApplicationName'] = applicationname reply = await self.rpc(msg) return reply - @ReturnMapping(StateServingInfo) - async def StateServingInfo(self): + @ReturnMapping(None) + async def Set(self, applicationname, options): ''' - - Returns -> typing.Union[int, str] + applicationname : str + options : typing.Mapping[str, str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params) - + msg = dict(Type='Application', Request='Set', Version=1, Params=params) + params['ApplicationName'] = applicationname + params['Options'] = options reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): + @ReturnMapping(None) + async def SetCharm(self, applicationname, charmurl, cs_channel, forceseries, forceunits, resourceids): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + applicationname : str + charmurl : str + cs_channel : str + forceseries : bool + forceunits : bool + resourceids : typing.Mapping[str, str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params) - + msg = dict(Type='Application', Request='SetCharm', Version=1, Params=params) + params['applicationname'] = applicationname + params['charmurl'] = charmurl + params['cs-channel'] = cs_channel + params['forceseries'] = forceseries + params['forceunits'] = forceunits + params['resourceids'] = resourceids reply = await self.rpc(msg) return reply -class AgentTools(Type): - name = 'AgentTools' - version = 1 - schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'} - @ReturnMapping(None) - async def UpdateToolsAvailable(self): + async def SetConstraints(self, applicationname, constraints): ''' - + applicationname : str + constraints : Value Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params) - + msg = dict(Type='Application', Request='SetConstraints', Version=1, Params=params) + params['ApplicationName'] = applicationname + params['Constraints'] = constraints reply = await self.rpc(msg) return reply -class AllModelWatcher(Type): - name = 'AllModelWatcher' - version = 2 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['Deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'Entity': {'additionalProperties': True, - 'type': 'object'}, - 'Removed': {'type': 'boolean'}}, - 'required': ['Removed', 'Entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): + @ReturnMapping(ErrorResults) + async def SetMetricCredentials(self, creds): ''' - - Returns -> typing.Sequence[~Delta] + creds : typing.Sequence[~ApplicationMetricCredential] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params) - + msg = dict(Type='Application', Request='SetMetricCredentials', Version=1, Params=params) + params['Creds'] = creds reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def Stop(self): + async def Unexpose(self, applicationname): ''' - + applicationname : str Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params) - + msg = dict(Type='Application', Request='Unexpose', Version=1, Params=params) + params['ApplicationName'] = applicationname reply = await self.rpc(msg) return reply -class AllWatcher(Type): - name = 'AllWatcher' - version = 1 - schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False, - 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'}, - 'type': 'array'}}, - 'required': ['Deltas'], - 'type': 'object'}, - 'Delta': {'additionalProperties': False, - 'properties': {'Entity': {'additionalProperties': True, - 'type': 'object'}, - 'Removed': {'type': 'boolean'}}, - 'required': ['Removed', 'Entity'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - @ReturnMapping(AllWatcherNextResults) - async def Next(self): + @ReturnMapping(None) + async def Unset(self, applicationname, options): ''' - - Returns -> typing.Sequence[~Delta] + applicationname : str + options : typing.Sequence[str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params) - + msg = dict(Type='Application', Request='Unset', Version=1, Params=params) + params['ApplicationName'] = applicationname + params['Options'] = options reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def Stop(self): + async def Update(self, applicationname, charmurl, constraints, forcecharmurl, forceseries, minunits, settingsstrings, settingsyaml): ''' - + applicationname : str + charmurl : str + constraints : Value + forcecharmurl : bool + forceseries : bool + minunits : int + settingsstrings : typing.Mapping[str, str] + settingsyaml : str Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params) - + msg = dict(Type='Application', Request='Update', Version=1, Params=params) + params['ApplicationName'] = applicationname + params['CharmUrl'] = charmurl + params['Constraints'] = constraints + params['ForceCharmUrl'] = forcecharmurl + params['ForceSeries'] = forceseries + params['MinUnits'] = minunits + params['SettingsStrings'] = settingsstrings + params['SettingsYAML'] = settingsyaml reply = await self.rpc(msg) return reply -class Annotations(Type): - name = 'Annotations' - version = 2 - schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False, - 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'EntityTag': {'type': 'string'}, - 'Error': {'$ref': '#/definitions/ErrorResult'}}, - 'required': ['EntityTag', - 'Annotations', - 'Error'], - 'type': 'object'}, - 'AnnotationsGetResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'AnnotationsSet': {'additionalProperties': False, - 'properties': {'Annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'}, - 'type': 'array'}}, - 'required': ['Annotations'], - 'type': 'object'}, - 'Entities': {'additionalProperties': False, +class ApplicationScalerFacade(Type): + name = 'ApplicationScaler' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['Entities'], @@ -6283,12 +7086,6 @@ class Annotations(Type): 'properties': {'Tag': {'type': 'string'}}, 'required': ['Tag'], 'type': 'object'}, - 'EntityAnnotations': {'additionalProperties': False, - 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'EntityTag': {'type': 'string'}}, - 'required': ['EntityTag', 'Annotations'], - 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -6323,6 +7120,15 @@ class Annotations(Type): 'caveats', 'sig'], 'type': 'object'}, + 'StringsWatchResult': {'additionalProperties': False, + 'properties': {'Changes': {'items': {'type': 'string'}, + 'type': 'array'}, + 'Error': {'$ref': '#/definitions/Error'}, + 'StringsWatcherId': {'type': 'string'}}, + 'required': ['StringsWatcherId', + 'Changes', + 'Error'], + 'type': 'object'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -6337,45 +7143,44 @@ class Annotations(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}}, + 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(AnnotationsGetResults) - async def Get(self, entities): + @ReturnMapping(ErrorResults) + async def Rescale(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AnnotationsGetResult] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Annotations', Request='Get', Version=2, Params=params) + msg = dict(Type='ApplicationScaler', Request='Rescale', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def Set(self, annotations): + @ReturnMapping(StringsWatchResult) + async def Watch(self): ''' - annotations : typing.Sequence[~EntityAnnotations] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Annotations', Request='Set', Version=2, Params=params) - params['Annotations'] = annotations + msg = dict(Type='ApplicationScaler', Request='Watch', Version=1, Params=params) + reply = await self.rpc(msg) return reply -class Backups(Type): +class BackupsFacade(Type): name = 'Backups' version = 1 schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False, @@ -6405,6 +7210,7 @@ class Backups(Type): 'Machine': {'type': 'string'}, 'Model': {'type': 'string'}, 'Notes': {'type': 'string'}, + 'Series': {'type': 'string'}, 'Size': {'type': 'integer'}, 'Started': {'format': 'date-time', 'type': 'string'}, @@ -6423,6 +7229,7 @@ class Backups(Type): 'Machine', 'Hostname', 'Version', + 'Series', 'CACert', 'CAPrivateKey'], 'type': 'object'}, @@ -6568,7 +7375,7 @@ class Backups(Type): return reply -class Block(Type): +class BlockFacade(Type): name = 'Block' version = 2 schema = {'definitions': {'Block': {'additionalProperties': False, @@ -6694,9 +7501,9 @@ class Block(Type): return reply -class CharmRevisionUpdater(Type): +class CharmRevisionUpdaterFacade(Type): name = 'CharmRevisionUpdater' - version = 1 + version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -6753,13 +7560,13 @@ class CharmRevisionUpdater(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=1, Params=params) + msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=2, Params=params) reply = await self.rpc(msg) return reply -class Charms(Type): +class CharmsFacade(Type): name = 'Charms' version = 2 schema = {'definitions': {'CharmInfo': {'additionalProperties': False, @@ -6836,7 +7643,7 @@ class Charms(Type): return reply -class Cleaner(Type): +class CleanerFacade(Type): name = 'Cleaner' version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -6918,7 +7725,7 @@ class Cleaner(Type): return reply -class Client(Type): +class ClientFacade(Type): name = 'Client' version = 1 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, @@ -6997,6 +7804,34 @@ class Client(Type): 'properties': {'AllWatcherId': {'type': 'string'}}, 'required': ['AllWatcherId'], 'type': 'object'}, + 'ApplicationStatus': {'additionalProperties': False, + 'properties': {'CanUpgradeTo': {'type': 'string'}, + 'Charm': {'type': 'string'}, + 'Err': {'additionalProperties': True, + 'type': 'object'}, + 'Exposed': {'type': 'boolean'}, + 'Life': {'type': 'string'}, + 'MeterStatuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, + 'type': 'object'}, + 'Relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'type': 'object'}, + 'Status': {'$ref': '#/definitions/DetailedStatus'}, + 'SubordinateTo': {'items': {'type': 'string'}, + 'type': 'array'}, + 'Units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, + 'type': 'object'}}, + 'required': ['Err', + 'Charm', + 'Exposed', + 'Life', + 'Relations', + 'CanUpgradeTo', + 'SubordinateTo', + 'Units', + 'MeterStatuses', + 'Status'], + 'type': 'object'}, 'Binary': {'additionalProperties': False, 'properties': {'Arch': {'type': 'string'}, 'Number': {'$ref': '#/definitions/Number'}, @@ -7055,11 +7890,11 @@ class Client(Type): 'Err'], 'type': 'object'}, 'EndpointStatus': {'additionalProperties': False, - 'properties': {'Name': {'type': 'string'}, + 'properties': {'ApplicationName': {'type': 'string'}, + 'Name': {'type': 'string'}, 'Role': {'type': 'string'}, - 'ServiceName': {'type': 'string'}, 'Subordinate': {'type': 'boolean'}}, - 'required': ['ServiceName', + 'required': ['ApplicationName', 'Name', 'Role', 'Subordinate'], @@ -7124,18 +7959,18 @@ class Client(Type): 'required': ['List', 'Error'], 'type': 'object'}, 'FullStatus': {'additionalProperties': False, - 'properties': {'AvailableVersion': {'type': 'string'}, + 'properties': {'Applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, + 'type': 'object'}, + 'AvailableVersion': {'type': 'string'}, 'Machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, 'type': 'object'}, 'ModelName': {'type': 'string'}, 'Relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}, - 'Services': {'patternProperties': {'.*': {'$ref': '#/definitions/ServiceStatus'}}, - 'type': 'object'}}, + 'type': 'array'}}, 'required': ['ModelName', 'AvailableVersion', 'Machines', - 'Services', + 'Applications', 'Relations'], 'type': 'object'}, 'GetBundleChangesParams': {'additionalProperties': False, @@ -7162,6 +7997,12 @@ class Client(Type): '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'}}, @@ -7220,7 +8061,8 @@ class Client(Type): 'required': ['Config'], 'type': 'object'}, 'ModelInfo': {'additionalProperties': False, - 'properties': {'DefaultSeries': {'type': 'string'}, + 'properties': {'Cloud': {'type': 'string'}, + 'DefaultSeries': {'type': 'string'}, 'Life': {'type': 'string'}, 'Name': {'type': 'string'}, 'OwnerTag': {'type': 'string'}, @@ -7235,6 +8077,7 @@ class Client(Type): 'ServerUUID', 'ProviderType', 'DefaultSeries', + 'Cloud', 'OwnerTag', 'Life', 'Status', @@ -7350,53 +8193,47 @@ class Client(Type): 'UnitName': {'type': 'string'}}, 'required': ['UnitName', 'Retry'], 'type': 'object'}, - 'ServiceStatus': {'additionalProperties': False, - 'properties': {'CanUpgradeTo': {'type': 'string'}, - 'Charm': {'type': 'string'}, - 'Err': {'additionalProperties': True, - 'type': 'object'}, - 'Exposed': {'type': 'boolean'}, - 'Life': {'type': 'string'}, - 'MeterStatuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}}, - 'type': 'object'}, - 'Relations': {'patternProperties': {'.*': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'type': 'object'}, - 'Status': {'$ref': '#/definitions/DetailedStatus'}, - 'SubordinateTo': {'items': {'type': 'string'}, - 'type': 'array'}, - 'Units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}}, - 'type': 'object'}}, - 'required': ['Err', - 'Charm', - 'Exposed', - 'Life', - 'Relations', - 'CanUpgradeTo', - 'SubordinateTo', - 'Units', - 'MeterStatuses', - 'Status'], - 'type': 'object'}, 'SetConstraints': {'additionalProperties': False, - 'properties': {'Constraints': {'$ref': '#/definitions/Value'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', 'Constraints'], + 'properties': {'ApplicationName': {'type': 'string'}, + 'Constraints': {'$ref': '#/definitions/Value'}}, + 'required': ['ApplicationName', + 'Constraints'], 'type': 'object'}, 'SetModelAgentVersion': {'additionalProperties': False, 'properties': {'Version': {'$ref': '#/definitions/Number'}}, 'required': ['Version'], 'type': 'object'}, - 'StatusHistoryArgs': {'additionalProperties': False, - 'properties': {'Kind': {'type': 'string'}, - 'Name': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Kind', 'Size', 'Name'], - 'type': 'object'}, + 'StatusHistoryFilter': {'additionalProperties': False, + 'properties': {'Date': {'format': 'date-time', + 'type': 'string'}, + 'Delta': {'type': 'integer'}, + 'Size': {'type': 'integer'}}, + 'required': ['Size', 'Date', 'Delta'], + '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': {'Statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, - 'type': 'array'}}, - 'required': ['Statuses'], + 'properties': {'Results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, + 'type': 'array'}}, + 'required': ['Results'], 'type': 'object'}, 'StatusParams': {'additionalProperties': False, 'properties': {'Patterns': {'items': {'type': 'string'}, @@ -7536,7 +8373,7 @@ class Client(Type): 'type': 'object'}, 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryArgs'}, + 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, 'type': 'object'}, 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, @@ -7729,7 +8566,7 @@ class Client(Type): async def FullStatus(self, patterns): ''' patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Sequence[~RelationStatus], typing.Mapping[str, ~ServiceStatus]] + Returns -> typing.Union[typing.Mapping[str, ~MachineStatus], typing.Sequence[~RelationStatus]] ''' # map input types to rpc msg params = dict() @@ -7982,36 +8819,32 @@ class Client(Type): @ReturnMapping(None) - async def SetModelConstraints(self, constraints, servicename): + async def SetModelConstraints(self, applicationname, constraints): ''' + applicationname : str constraints : Value - servicename : str Returns -> None ''' # map input types to rpc msg params = dict() msg = dict(Type='Client', Request='SetModelConstraints', Version=1, Params=params) + params['ApplicationName'] = applicationname params['Constraints'] = constraints - params['ServiceName'] = servicename reply = await self.rpc(msg) return reply @ReturnMapping(StatusHistoryResults) - async def StatusHistory(self, kind, name, size): + async def StatusHistory(self, requests): ''' - kind : str - name : str - size : int - Returns -> typing.Sequence[~DetailedStatus] + 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['Kind'] = kind - params['Name'] = name - params['Size'] = size + params['Requests'] = requests reply = await self.rpc(msg) return reply @@ -8031,9 +8864,9 @@ class Client(Type): return reply -class Controller(Type): +class ControllerFacade(Type): name = 'Controller' - version = 2 + version = 3 schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, 'properties': {'AllWatcherId': {'type': 'string'}}, 'required': ['AllWatcherId'], @@ -8141,15 +8974,15 @@ class Controller(Type): 'password'], 'type': 'object'}, 'ModelStatus': {'additionalProperties': False, - 'properties': {'hosted-machine-count': {'type': 'integer'}, + 'properties': {'application-count': {'type': 'integer'}, + 'hosted-machine-count': {'type': 'integer'}, 'life': {'type': 'string'}, 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}, - 'service-count': {'type': 'integer'}}, + 'owner-tag': {'type': 'string'}}, 'required': ['model-tag', 'life', 'hosted-machine-count', - 'service-count', + 'application-count', 'owner-tag'], 'type': 'object'}, 'ModelStatusResults': {'additionalProperties': False, @@ -8215,7 +9048,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='AllModels', Version=2, Params=params) + msg = dict(Type='Controller', Request='AllModels', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -8230,7 +9063,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='DestroyController', Version=2, Params=params) + msg = dict(Type='Controller', Request='DestroyController', Version=3, Params=params) params['destroy-models'] = destroy_models reply = await self.rpc(msg) return reply @@ -8245,7 +9078,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='InitiateModelMigration', Version=2, Params=params) + msg = dict(Type='Controller', Request='InitiateModelMigration', Version=3, Params=params) params['specs'] = specs reply = await self.rpc(msg) return reply @@ -8260,7 +9093,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ListBlockedModels', Version=2, Params=params) + msg = dict(Type='Controller', Request='ListBlockedModels', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -8275,7 +9108,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ModelConfig', Version=2, Params=params) + msg = dict(Type='Controller', Request='ModelConfig', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -8290,7 +9123,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ModelStatus', Version=2, Params=params) + msg = dict(Type='Controller', Request='ModelStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -8305,7 +9138,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='RemoveBlocks', Version=2, Params=params) + msg = dict(Type='Controller', Request='RemoveBlocks', Version=3, Params=params) params['all'] = all_ reply = await self.rpc(msg) return reply @@ -8320,13 +9153,13 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='WatchAllModels', Version=2, Params=params) + msg = dict(Type='Controller', Request='WatchAllModels', Version=3, Params=params) reply = await self.rpc(msg) return reply -class Deployer(Type): +class DeployerFacade(Type): name = 'Deployer' version = 1 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, @@ -8660,7 +9493,7 @@ class Deployer(Type): return reply -class DiscoverSpaces(Type): +class DiscoverSpacesFacade(Type): name = 'DiscoverSpaces' version = 2 schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, @@ -8880,7 +9713,7 @@ class DiscoverSpaces(Type): return reply -class DiskManager(Type): +class DiskManagerFacade(Type): name = 'DiskManager' version = 2 schema = {'definitions': {'BlockDevice': {'additionalProperties': False, @@ -8985,7 +9818,7 @@ class DiskManager(Type): return reply -class EntityWatcher(Type): +class EntityWatcherFacade(Type): name = 'EntityWatcher' version = 2 schema = {'definitions': {'EntitiesWatchResult': {'additionalProperties': False, @@ -9071,7 +9904,7 @@ class EntityWatcher(Type): return reply -class FilesystemAttachmentsWatcher(Type): +class FilesystemAttachmentsWatcherFacade(Type): name = 'FilesystemAttachmentsWatcher' version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -9163,9 +9996,9 @@ class FilesystemAttachmentsWatcher(Type): return reply -class Firewaller(Type): +class FirewallerFacade(Type): name = 'Firewaller' - version = 2 + version = 3 schema = {'definitions': {'BoolResult': {'additionalProperties': False, 'properties': {'Error': {'$ref': '#/definitions/Error'}, 'Result': {'type': 'boolean'}}, @@ -9364,7 +10197,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9379,7 +10212,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetExposed', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='GetExposed', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9394,7 +10227,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9409,7 +10242,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=3, Params=params) params['Params'] = params reply = await self.rpc(msg) return reply @@ -9424,7 +10257,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='InstanceId', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='InstanceId', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9439,7 +10272,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='Life', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='Life', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9454,7 +10287,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='ModelConfig', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='ModelConfig', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -9469,7 +10302,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='Watch', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='Watch', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9484,7 +10317,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -9499,7 +10332,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -9514,7 +10347,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9529,13 +10362,13 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchUnits', Version=2, Params=params) + msg = dict(Type='Firewaller', Request='WatchUnits', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply -class HighAvailability(Type): +class HighAvailabilityFacade(Type): name = 'HighAvailability' version = 2 schema = {'definitions': {'Address': {'additionalProperties': False, @@ -9759,7 +10592,7 @@ class HighAvailability(Type): return reply -class HostKeyReporter(Type): +class HostKeyReporterFacade(Type): name = 'HostKeyReporter' version = 1 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -9841,7 +10674,7 @@ class HostKeyReporter(Type): return reply -class ImageManager(Type): +class ImageManagerFacade(Type): name = 'ImageManager' version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -9959,7 +10792,7 @@ class ImageManager(Type): return reply -class ImageMetadata(Type): +class ImageMetadataFacade(Type): name = 'ImageMetadata' version = 2 schema = {'definitions': {'CloudImageMetadata': {'additionalProperties': False, @@ -10140,9 +10973,9 @@ class ImageMetadata(Type): return reply -class InstancePoller(Type): +class InstancePollerFacade(Type): name = 'InstancePoller' - version = 2 + version = 3 schema = {'definitions': {'Address': {'additionalProperties': False, 'properties': {'Scope': {'type': 'string'}, 'SpaceName': {'type': 'string'}, @@ -10361,7 +11194,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10376,7 +11209,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='InstanceId', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='InstanceId', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10391,7 +11224,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10406,7 +11239,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='Life', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='Life', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10421,7 +11254,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='ModelConfig', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='ModelConfig', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -10436,7 +11269,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10451,7 +11284,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10466,7 +11299,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=3, Params=params) params['MachineAddresses'] = machineaddresses reply = await self.rpc(msg) return reply @@ -10481,7 +11314,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='Status', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='Status', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10496,7 +11329,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -10511,13 +11344,13 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=2, Params=params) + msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=3, Params=params) reply = await self.rpc(msg) return reply -class KeyManager(Type): +class KeyManagerFacade(Type): name = 'KeyManager' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -10681,7 +11514,7 @@ class KeyManager(Type): return reply -class KeyUpdater(Type): +class KeyUpdaterFacade(Type): name = 'KeyUpdater' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -10791,10 +11624,14 @@ class KeyUpdater(Type): return reply -class LeadershipService(Type): +class LeadershipServiceFacade(Type): name = 'LeadershipService' version = 2 - schema = {'definitions': {'ClaimLeadershipBulkParams': {'additionalProperties': False, + schema = {'definitions': {'ApplicationTag': {'additionalProperties': False, + 'properties': {'Name': {'type': 'string'}}, + 'required': ['Name'], + 'type': 'object'}, + 'ClaimLeadershipBulkParams': {'additionalProperties': False, 'properties': {'Params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'}, 'type': 'array'}}, 'required': ['Params'], @@ -10805,10 +11642,10 @@ class LeadershipService(Type): 'required': ['Results'], 'type': 'object'}, 'ClaimLeadershipParams': {'additionalProperties': False, - 'properties': {'DurationSeconds': {'type': 'number'}, - 'ServiceTag': {'type': 'string'}, + 'properties': {'ApplicationTag': {'type': 'string'}, + 'DurationSeconds': {'type': 'number'}, 'UnitTag': {'type': 'string'}}, - 'required': ['ServiceTag', + 'required': ['ApplicationTag', 'UnitTag', 'DurationSeconds'], 'type': 'object'}, @@ -10841,10 +11678,6 @@ class LeadershipService(Type): 'caveats', 'sig'], 'type': 'object'}, - 'ServiceTag': {'additionalProperties': False, - 'properties': {'Name': {'type': 'string'}}, - 'required': ['Name'], - 'type': 'object'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -10859,7 +11692,7 @@ class LeadershipService(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ServiceTag'}, + 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'}, 'Result': {'$ref': '#/definitions/ErrorResult'}}, 'type': 'object'}, 'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'}, @@ -10897,7 +11730,7 @@ class LeadershipService(Type): return reply -class LifeFlag(Type): +class LifeFlagFacade(Type): name = 'LifeFlag' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -11006,7 +11839,7 @@ class LifeFlag(Type): return reply -class Logger(Type): +class LoggerFacade(Type): name = 'Logger' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -11115,7 +11948,7 @@ class Logger(Type): return reply -class MachineActions(Type): +class MachineActionsFacade(Type): name = 'MachineActions' version = 1 schema = {'definitions': {'Action': {'additionalProperties': False, @@ -11332,7 +12165,7 @@ class MachineActions(Type): return reply -class MachineManager(Type): +class MachineManagerFacade(Type): name = 'MachineManager' version = 2 schema = {'definitions': {'AddMachineParams': {'additionalProperties': False, @@ -11478,7 +12311,7 @@ class MachineManager(Type): return reply -class Machiner(Type): +class MachinerFacade(Type): name = 'Machiner' version = 1 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, @@ -11925,7 +12758,7 @@ class Machiner(Type): return reply -class MeterStatus(Type): +class MeterStatusFacade(Type): name = 'MeterStatus' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -12035,7 +12868,7 @@ class MeterStatus(Type): return reply -class MetricsAdder(Type): +class MetricsAdderFacade(Type): name = 'MetricsAdder' version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -12135,9 +12968,9 @@ class MetricsAdder(Type): return reply -class MetricsDebug(Type): +class MetricsDebugFacade(Type): name = 'MetricsDebug' - version = 1 + version = 2 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, @@ -12240,7 +13073,7 @@ class MetricsDebug(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=1, Params=params) + msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -12255,13 +13088,13 @@ class MetricsDebug(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=1, Params=params) + msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=2, Params=params) params['statues'] = statues reply = await self.rpc(msg) return reply -class MetricsManager(Type): +class MetricsManagerFacade(Type): name = 'MetricsManager' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -12359,7 +13192,7 @@ class MetricsManager(Type): return reply -class MigrationFlag(Type): +class MigrationFlagFacade(Type): name = 'MigrationFlag' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -12468,7 +13301,7 @@ class MigrationFlag(Type): return reply -class MigrationMaster(Type): +class MigrationMasterFacade(Type): name = 'MigrationMaster' version = 1 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -12621,7 +13454,7 @@ class MigrationMaster(Type): return reply -class MigrationMinion(Type): +class MigrationMinionFacade(Type): name = 'MigrationMinion' version = 1 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -12687,7 +13520,7 @@ class MigrationMinion(Type): return reply -class MigrationStatusWatcher(Type): +class MigrationStatusWatcherFacade(Type): name = 'MigrationStatusWatcher' version = 1 schema = {'definitions': {'MigrationStatus': {'additionalProperties': False, @@ -12741,7 +13574,7 @@ class MigrationStatusWatcher(Type): return reply -class MigrationTarget(Type): +class MigrationTargetFacade(Type): name = 'MigrationTarget' version = 1 schema = {'definitions': {'ModelArgs': {'additionalProperties': False, @@ -12806,7 +13639,7 @@ class MigrationTarget(Type): return reply -class ModelManager(Type): +class ModelManagerFacade(Type): name = 'ModelManager' version = 2 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -12890,7 +13723,8 @@ class ModelManager(Type): 'Config'], 'type': 'object'}, 'ModelInfo': {'additionalProperties': False, - 'properties': {'DefaultSeries': {'type': 'string'}, + 'properties': {'Cloud': {'type': 'string'}, + 'DefaultSeries': {'type': 'string'}, 'Life': {'type': 'string'}, 'Name': {'type': 'string'}, 'OwnerTag': {'type': 'string'}, @@ -12905,6 +13739,7 @@ class ModelManager(Type): 'ServerUUID', 'ProviderType', 'DefaultSeries', + 'Cloud', 'OwnerTag', 'Life', 'Status', @@ -13073,7 +13908,7 @@ class ModelManager(Type): return reply -class NotifyWatcher(Type): +class NotifyWatcherFacade(Type): name = 'NotifyWatcher' version = 1 schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}}, @@ -13109,7 +13944,7 @@ class NotifyWatcher(Type): return reply -class Pinger(Type): +class PingerFacade(Type): name = 'Pinger' version = 1 schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}}, @@ -13145,9 +13980,9 @@ class Pinger(Type): return reply -class Provisioner(Type): +class ProvisionerFacade(Type): name = 'Provisioner' - version = 2 + version = 3 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, 'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, 'type': 'array'}, @@ -13207,7 +14042,6 @@ class Provisioner(Type): 'AptMirror': {'type': 'string'}, 'AptProxy': {'$ref': '#/definitions/Settings'}, 'AuthorizedKeys': {'type': 'string'}, - 'PreferIPv6': {'type': 'boolean'}, 'ProviderType': {'type': 'string'}, 'Proxy': {'$ref': '#/definitions/Settings'}, 'SSLHostnameVerification': {'type': 'boolean'}, @@ -13218,7 +14052,6 @@ class Provisioner(Type): 'Proxy', 'AptProxy', 'AptMirror', - 'PreferIPv6', 'AllowLXCLoopMounts', 'UpdateBehavior'], 'type': 'object'}, @@ -13774,7 +14607,7 @@ class Provisioner(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='APIAddresses', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='APIAddresses', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -13789,330 +14622,82 @@ class Provisioner(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='APIHostPorts', 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='Provisioner', Request='CACert', Version=2, Params=params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='Constraints', Version=2, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): - ''' - - Returns -> typing.Union[bool, str, _ForwardRef('Settings'), _ForwardRef('Settings'), _ForwardRef('UpdateBehavior')] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='ContainerConfig', Version=2, 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=2, Params=params) - params['Type'] = type_ - 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=2, 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=2, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, majorversion, minorversion, number, series): - ''' - arch : str - majorversion : int - minorversion : 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=2, Params=params) - params['Arch'] = arch - params['MajorVersion'] = majorversion - params['MinorVersion'] = minorversion - 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=2, 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=2, 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=2, 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=2, 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=2, Params=params) - - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): - ''' - - Returns -> typing.Mapping[str, typing.Any] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='ModelConfig', Version=2, 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=2, 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=2, 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=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='APIHostPorts', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): + @ReturnMapping(BytesResult) + async def CACert(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> typing.Sequence[int] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='CACert', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def Remove(self, entities): + @ReturnMapping(ConstraintsResults) + async def Constraints(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + Returns -> typing.Sequence[~ConstraintsResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Remove', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='Constraints', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringResults) - async def Series(self, entities): + @ReturnMapping(ContainerConfig) + async def ContainerConfig(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] + + Returns -> typing.Union[bool, str, _ForwardRef('Settings'), _ForwardRef('Settings'), _ForwardRef('UpdateBehavior')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Series', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='ContainerConfig', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetInstanceInfo(self, machines): + @ReturnMapping(ContainerManagerConfig) + async def ContainerManagerConfig(self, type_): ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] + type_ : str + Returns -> typing.Mapping[str, str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=2, Params=params) - params['Machines'] = machines + msg = dict(Type='Provisioner', Request='ContainerManagerConfig', Version=3, Params=params) + params['Type'] = type_ reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): + @ReturnMapping(DistributionGroupResults) + async def DistributionGroup(self, entities): ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~DistributionGroupResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='DistributionGroup', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -14120,446 +14705,352 @@ class Provisioner(Type): @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): + async def EnsureDead(self, entities): ''' - changes : typing.Sequence[~EntityPassword] + entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetPasswords', Version=2, Params=params) - params['Changes'] = changes + msg = dict(Type='Provisioner', Request='EnsureDead', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): + @ReturnMapping(FindToolsResult) + async def FindTools(self, arch, majorversion, minorversion, number, series): ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] + arch : str + majorversion : int + minorversion : 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='SetStatus', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='FindTools', Version=3, Params=params) + params['Arch'] = arch + params['MajorVersion'] = majorversion + params['MinorVersion'] = minorversion + params['Number'] = number + params['Series'] = series reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetSupportedContainers(self, params): + @ReturnMapping(MachineNetworkConfigResults) + async def GetContainerInterfaceInfo(self, entities): ''' - params : typing.Sequence[~MachineContainers] - Returns -> typing.Sequence[~ErrorResult] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetSupportedContainers', Version=2, Params=params) - params['Params'] = params + msg = dict(Type='Provisioner', Request='GetContainerInterfaceInfo', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsResult) - async def StateAddresses(self): + @ReturnMapping(StringResults) + async def InstanceId(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='StateAddresses', Version=2, Params=params) - + msg = dict(Type='Provisioner', Request='InstanceId', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply @ReturnMapping(StatusResults) - async def Status(self, entities): + 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='Status', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='InstanceStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ToolsResults) - async def Tools(self, entities): + @ReturnMapping(LifeResults) + async def Life(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] + Returns -> typing.Sequence[~LifeResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Tools', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='Life', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def UpdateStatus(self, entities): + @ReturnMapping(StatusResults) + async def MachinesWithTransientErrors(self): ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> typing.Sequence[~StatusResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='UpdateStatus', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='MachinesWithTransientErrors', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchAPIHostPorts(self): + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), str] + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='ModelConfig', Version=3, Params=params) reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): + @ReturnMapping(StringResult) + async def ModelUUID(self): ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=2, Params=params) - params['Params'] = params + msg = dict(Type='Provisioner', Request='ModelUUID', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): + @ReturnMapping(MachineNetworkConfigResults) + async def PrepareContainerInterfaceInfo(self, entities): ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~MachineNetworkConfigResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchContainers', Version=2, Params=params) - params['Params'] = params + msg = dict(Type='Provisioner', Request='PrepareContainerInterfaceInfo', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): + @ReturnMapping(ProvisioningInfoResults) + async def ProvisioningInfo(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProvisioningInfoResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=2, Params=params) - + msg = dict(Type='Provisioner', Request='ProvisioningInfo', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchMachineErrorRetry(self): + @ReturnMapping(ErrorResults) + async def ReleaseContainerAddresses(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=2, Params=params) - + msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): + @ReturnMapping(ErrorResults) + async def Remove(self, entities): ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=2, Params=params) - + msg = dict(Type='Provisioner', Request='Remove', Version=3, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply -class ProxyUpdater(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'}, - 'MacaroonPath': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, - 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, - 'type': 'array'}, - 'data': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'id': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'sig': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['data', - 'location', - 'id', - 'caveats', - 'sig'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'NotifyWatcherId': {'type': 'string'}}, - 'required': ['NotifyWatcherId', 'Error'], - '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'}, - 'NoProxy': {'type': 'string'}}, - 'required': ['HTTP', - 'HTTPS', - 'FTP', - 'NoProxy'], - 'type': 'object'}, - 'ProxyConfigResult': {'additionalProperties': False, - 'properties': {'APTProxySettings': {'$ref': '#/definitions/ProxyConfig'}, - 'Error': {'$ref': '#/definitions/Error'}, - 'ProxySettings': {'$ref': '#/definitions/ProxyConfig'}}, - 'required': ['ProxySettings', - 'APTProxySettings'], - 'type': 'object'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'caveat': {'additionalProperties': False, - 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'verificationId': {'$ref': '#/definitions/packet'}}, - 'required': ['location', - 'caveatId', - 'verificationId'], - 'type': 'object'}, - 'packet': {'additionalProperties': False, - 'properties': {'headerLen': {'type': 'integer'}, - 'start': {'type': 'integer'}, - 'totalLen': {'type': 'integer'}}, - 'required': ['start', 'totalLen', 'headerLen'], - '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): + + @ReturnMapping(StringResults) + async def Series(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ProxyUpdater', Request='ProxyConfig', Version=1, Params=params) + msg = dict(Type='Provisioner', Request='Series', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): + @ReturnMapping(ErrorResults) + async def SetInstanceInfo(self, machines): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] + machines : typing.Sequence[~InstanceInfo] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, Params=params) + msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=3, Params=params) + params['Machines'] = machines + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetInstanceStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply -class Reboot(Type): - name = 'Reboot' - version = 2 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['Entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'Tag': {'type': 'string'}}, - 'required': ['Tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'Code': {'type': 'string'}, - 'Info': {'$ref': '#/definitions/ErrorInfo'}, - 'Message': {'type': 'string'}}, - 'required': ['Message', 'Code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, - 'MacaroonPath': {'type': 'string'}}, - 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}}, - 'required': ['Error'], - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, - 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, - 'type': 'array'}, - 'data': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'id': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'sig': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['data', - 'location', - 'id', - 'caveats', - 'sig'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'NotifyWatcherId': {'type': 'string'}}, - 'required': ['NotifyWatcherId', 'Error'], - 'type': 'object'}, - 'RebootActionResult': {'additionalProperties': False, - 'properties': {'error': {'$ref': '#/definitions/Error'}, - 'result': {'type': 'string'}}, - 'type': 'object'}, - 'RebootActionResults': {'additionalProperties': False, - 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'}, - 'type': 'array'}}, - 'type': 'object'}, - 'caveat': {'additionalProperties': False, - 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'verificationId': {'$ref': '#/definitions/packet'}}, - 'required': ['location', - 'caveatId', - 'verificationId'], - 'type': 'object'}, - 'packet': {'additionalProperties': False, - 'properties': {'headerLen': {'type': 'integer'}, - 'start': {'type': 'integer'}, - 'totalLen': {'type': 'integer'}}, - 'required': ['start', 'totalLen', 'headerLen'], - 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RebootActionResults'}}, - 'type': 'object'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, - 'type': 'object'} - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): + async def SetPasswords(self, changes): ''' - entities : typing.Sequence[~Entity] + changes : typing.Sequence[~EntityPassword] 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='Provisioner', Request='SetPasswords', Version=3, Params=params) + params['Changes'] = changes + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='SetStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(RebootActionResults) - async def GetRebootAction(self, entities): + @ReturnMapping(ErrorResults) + async def SetSupportedContainers(self, params): + ''' + params : typing.Sequence[~MachineContainers] + Returns -> typing.Sequence[~ErrorResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='SetSupportedContainers', Version=3, Params=params) + params['Params'] = params + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsResult) + async def StateAddresses(self): + ''' + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='StateAddresses', Version=3, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StatusResults) + async def Status(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RebootActionResult] + Returns -> typing.Sequence[~StatusResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='Status', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): + @ReturnMapping(ToolsResults) + async def Tools(self, entities): ''' entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ToolsResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='Tools', Version=3, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): + ''' + entities : typing.Sequence[~EntityStatusArgs] Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='UpdateStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -14567,258 +15058,96 @@ class Reboot(Type): @ReturnMapping(NotifyWatchResult) - async def WatchForRebootEvent(self): + async def WatchAPIHostPorts(self): ''' Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='WatchForRebootEvent', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=3, Params=params) reply = await self.rpc(msg) return reply -class RelationUnitsWatcher(Type): - name = 'RelationUnitsWatcher' - version = 1 - schema = {'definitions': {'Error': {'additionalProperties': False, - 'properties': {'Code': {'type': 'string'}, - 'Info': {'$ref': '#/definitions/ErrorInfo'}, - 'Message': {'type': 'string'}}, - 'required': ['Message', 'Code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, - 'MacaroonPath': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, - 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, - 'type': 'array'}, - 'data': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'id': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'sig': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['data', - 'location', - 'id', - 'caveats', - 'sig'], - 'type': 'object'}, - 'RelationUnitsChange': {'additionalProperties': False, - 'properties': {'Changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, - 'type': 'object'}, - 'Departed': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Changed', 'Departed'], - 'type': 'object'}, - 'RelationUnitsWatchResult': {'additionalProperties': False, - 'properties': {'Changes': {'$ref': '#/definitions/RelationUnitsChange'}, - 'Error': {'$ref': '#/definitions/Error'}, - 'RelationUnitsWatcherId': {'type': 'string'}}, - 'required': ['RelationUnitsWatcherId', - 'Changes', - 'Error'], - 'type': 'object'}, - 'UnitSettings': {'additionalProperties': False, - 'properties': {'Version': {'type': 'integer'}}, - 'required': ['Version'], - 'type': 'object'}, - 'caveat': {'additionalProperties': False, - 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'verificationId': {'$ref': '#/definitions/packet'}}, - 'required': ['location', - 'caveatId', - 'verificationId'], - 'type': 'object'}, - 'packet': {'additionalProperties': False, - 'properties': {'headerLen': {'type': 'integer'}, - 'start': {'type': 'integer'}, - 'totalLen': {'type': 'integer'}}, - 'required': ['start', 'totalLen', 'headerLen'], - 'type': 'object'}}, - 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}}, - 'type': 'object'}, - 'Stop': {'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(RelationUnitsWatchResult) - async def Next(self): - ''' - Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] + @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='RelationUnitsWatcher', Request='Next', Version=1, Params=params) - + msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=3, Params=params) + params['Params'] = params reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Stop(self): + @ReturnMapping(StringsWatchResults) + async def WatchContainers(self, params): ''' - - Returns -> None + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params) - + msg = dict(Type='Provisioner', Request='WatchContainers', Version=3, Params=params) + params['Params'] = params reply = await self.rpc(msg) return reply -class Resumer(Type): - name = 'Resumer' - version = 2 - schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} - - @ReturnMapping(None) - async def ResumeTransactions(self): + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): ''' - Returns -> None + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, Params=params) + msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=3, Params=params) reply = await self.rpc(msg) return reply -class RetryStrategy(Type): - name = 'RetryStrategy' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, - 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, - 'type': 'array'}}, - 'required': ['Entities'], - 'type': 'object'}, - 'Entity': {'additionalProperties': False, - 'properties': {'Tag': {'type': 'string'}}, - 'required': ['Tag'], - 'type': 'object'}, - 'Error': {'additionalProperties': False, - 'properties': {'Code': {'type': 'string'}, - 'Info': {'$ref': '#/definitions/ErrorInfo'}, - 'Message': {'type': 'string'}}, - 'required': ['Message', 'Code'], - 'type': 'object'}, - 'ErrorInfo': {'additionalProperties': False, - 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, - 'MacaroonPath': {'type': 'string'}}, - 'type': 'object'}, - 'Macaroon': {'additionalProperties': False, - 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, - 'type': 'array'}, - 'data': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'id': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'sig': {'items': {'type': 'integer'}, - 'type': 'array'}}, - 'required': ['data', - 'location', - 'id', - 'caveats', - 'sig'], - 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'NotifyWatcherId': {'type': 'string'}}, - 'required': ['NotifyWatcherId', 'Error'], - 'type': 'object'}, - 'NotifyWatchResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'RetryStrategy': {'additionalProperties': False, - 'properties': {'JitterRetryTime': {'type': 'boolean'}, - 'MaxRetryTime': {'type': 'integer'}, - 'MinRetryTime': {'type': 'integer'}, - 'RetryTimeFactor': {'type': 'integer'}, - 'ShouldRetry': {'type': 'boolean'}}, - 'required': ['ShouldRetry', - 'MinRetryTime', - 'MaxRetryTime', - 'JitterRetryTime', - 'RetryTimeFactor'], - 'type': 'object'}, - 'RetryStrategyResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Result': {'$ref': '#/definitions/RetryStrategy'}}, - 'required': ['Error', 'Result'], - 'type': 'object'}, - 'RetryStrategyResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/RetryStrategyResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, - 'caveat': {'additionalProperties': False, - 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'verificationId': {'$ref': '#/definitions/packet'}}, - 'required': ['location', - 'caveatId', - 'verificationId'], - 'type': 'object'}, - 'packet': {'additionalProperties': False, - 'properties': {'headerLen': {'type': 'integer'}, - 'start': {'type': 'integer'}, - 'totalLen': {'type': 'integer'}}, - 'required': ['start', 'totalLen', 'headerLen'], - 'type': 'object'}}, - 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RetryStrategyResults'}}, - 'type': 'object'}, - 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - @ReturnMapping(RetryStrategyResults) - async def RetryStrategy(self, entities): + @ReturnMapping(NotifyWatchResult) + async def WatchMachineErrorRetry(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RetryStrategyResult] + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=3, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchRetryStrategy(self, entities): + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=3, Params=params) + reply = await self.rpc(msg) return reply -class SSHClient(Type): - name = 'SSHClient' +class ProxyUpdaterFacade(Type): + name = 'ProxyUpdater' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -14854,159 +15183,102 @@ class SSHClient(Type): 'caveats', 'sig'], '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'], + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'NotifyWatcherId': {'type': 'string'}}, + 'required': ['NotifyWatcherId', 'Error'], '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'}, - 'caveat': {'additionalProperties': False, - 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, - 'location': {'$ref': '#/definitions/packet'}, - 'verificationId': {'$ref': '#/definitions/packet'}}, - 'required': ['location', - 'caveatId', - 'verificationId'], - 'type': 'object'}, - 'packet': {'additionalProperties': False, - 'properties': {'headerLen': {'type': 'integer'}, - 'start': {'type': 'integer'}, - 'totalLen': {'type': 'integer'}}, - 'required': ['start', 'totalLen', 'headerLen'], - 'type': 'object'}}, - 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}}, - 'type': 'object'}, - 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHAddressResults'}}, - 'type': 'object'}, - 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='SSHClient', Request='Proxy', Version=1, Params=params) - - reply = await self.rpc(msg) - return reply - - + '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'}, + 'NoProxy': {'type': 'string'}}, + 'required': ['HTTP', + 'HTTPS', + 'FTP', + 'NoProxy'], + 'type': 'object'}, + 'ProxyConfigResult': {'additionalProperties': False, + 'properties': {'APTProxySettings': {'$ref': '#/definitions/ProxyConfig'}, + 'Error': {'$ref': '#/definitions/Error'}, + 'ProxySettings': {'$ref': '#/definitions/ProxyConfig'}}, + 'required': ['ProxySettings', + 'APTProxySettings'], + 'type': 'object'}, + 'ProxyConfigResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'caveat': {'additionalProperties': False, + 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'verificationId': {'$ref': '#/definitions/packet'}}, + 'required': ['location', + 'caveatId', + 'verificationId'], + 'type': 'object'}, + 'packet': {'additionalProperties': False, + 'properties': {'headerLen': {'type': 'integer'}, + 'start': {'type': 'integer'}, + 'totalLen': {'type': 'integer'}}, + 'required': ['start', 'totalLen', 'headerLen'], + '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(SSHAddressResults) - async def PublicAddress(self, entities): + @ReturnMapping(ProxyConfigResults) + async def ProxyConfig(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] + Returns -> typing.Sequence[~ProxyConfigResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='SSHClient', Request='PublicAddress', Version=1, Params=params) + msg = dict(Type='ProxyUpdater', Request='ProxyConfig', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(SSHPublicKeysResults) - async def PublicKeys(self, entities): + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHPublicKeysResult] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='SSHClient', Request='PublicKeys', Version=1, Params=params) + msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply -class Service(Type): - name = 'Service' - version = 3 - schema = {'definitions': {'AddRelation': {'additionalProperties': False, - 'properties': {'Endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Endpoints'], - 'type': 'object'}, - 'AddRelationResults': {'additionalProperties': False, - 'properties': {'Endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/Relation'}}, - 'type': 'object'}}, - 'required': ['Endpoints'], - 'type': 'object'}, - 'AddServiceUnits': {'additionalProperties': False, - 'properties': {'NumUnits': {'type': 'integer'}, - 'Placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', - 'NumUnits', - 'Placement'], - 'type': 'object'}, - 'AddServiceUnitsResults': {'additionalProperties': False, - 'properties': {'Units': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Units'], - 'type': 'object'}, - 'Constraints': {'additionalProperties': False, - 'properties': {'Count': {'type': 'integer'}, - 'Pool': {'type': 'string'}, - 'Size': {'type': 'integer'}}, - 'required': ['Pool', 'Size', 'Count'], - 'type': 'object'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'Endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Endpoints'], - 'type': 'object'}, - 'DestroyServiceUnits': {'additionalProperties': False, - 'properties': {'UnitNames': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['UnitNames'], - 'type': 'object'}, +class RebootFacade(Type): + name = 'Reboot' + version = 2 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['Entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'Tag': {'type': 'string'}}, + 'required': ['Tag'], + 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -15026,14 +15298,6 @@ class Service(Type): 'type': 'array'}}, 'required': ['Results'], 'type': 'object'}, - 'GetConstraintsResults': {'additionalProperties': False, - 'properties': {'Constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['Constraints'], - 'type': 'object'}, - 'GetServiceConstraints': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -15049,180 +15313,19 @@ class Service(Type): 'caveats', 'sig'], 'type': 'object'}, - 'Placement': {'additionalProperties': False, - 'properties': {'Directive': {'type': 'string'}, - 'Scope': {'type': 'string'}}, - 'required': ['Scope', 'Directive'], - 'type': 'object'}, - 'Relation': {'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'}, - 'ServiceCharmRelations': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, - 'ServiceCharmRelationsResults': {'additionalProperties': False, - 'properties': {'CharmRelations': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['CharmRelations'], - 'type': 'object'}, - 'ServiceDeploy': {'additionalProperties': False, - 'properties': {'Channel': {'type': 'string'}, - 'CharmUrl': {'type': 'string'}, - 'Config': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'ConfigYAML': {'type': 'string'}, - 'Constraints': {'$ref': '#/definitions/Value'}, - 'EndpointBindings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'NumUnits': {'type': 'integer'}, - 'Placement': {'items': {'$ref': '#/definitions/Placement'}, - 'type': 'array'}, - 'Resources': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'Series': {'type': 'string'}, - 'ServiceName': {'type': 'string'}, - 'Storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, - 'type': 'object'}}, - 'required': ['ServiceName', - 'Series', - 'CharmUrl', - 'Channel', - 'NumUnits', - 'Config', - 'ConfigYAML', - 'Constraints', - 'Placement', - 'Storage', - 'EndpointBindings', - 'Resources'], - 'type': 'object'}, - 'ServiceDestroy': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, - 'ServiceExpose': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, - 'ServiceGet': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, - 'ServiceGetResults': {'additionalProperties': False, - 'properties': {'Charm': {'type': 'string'}, - 'Config': {'patternProperties': {'.*': {'additionalProperties': True, - 'type': 'object'}}, - 'type': 'object'}, - 'Constraints': {'$ref': '#/definitions/Value'}, - 'Service': {'type': 'string'}}, - 'required': ['Service', - 'Charm', - 'Config', - 'Constraints'], + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'NotifyWatcherId': {'type': 'string'}}, + 'required': ['NotifyWatcherId', 'Error'], 'type': 'object'}, - 'ServiceMetricCredential': {'additionalProperties': False, - 'properties': {'MetricCredentials': {'items': {'type': 'integer'}, - 'type': 'array'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', - 'MetricCredentials'], - 'type': 'object'}, - 'ServiceMetricCredentials': {'additionalProperties': False, - 'properties': {'Creds': {'items': {'$ref': '#/definitions/ServiceMetricCredential'}, - 'type': 'array'}}, - 'required': ['Creds'], - 'type': 'object'}, - 'ServiceSet': {'additionalProperties': False, - 'properties': {'Options': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', 'Options'], - 'type': 'object'}, - 'ServiceSetCharm': {'additionalProperties': False, - 'properties': {'charmurl': {'type': 'string'}, - 'cs-channel': {'type': 'string'}, - 'forceseries': {'type': 'boolean'}, - 'forceunits': {'type': 'boolean'}, - 'resourceids': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'servicename': {'type': 'string'}}, - 'required': ['servicename', - 'charmurl', - 'cs-channel', - 'forceunits', - 'forceseries', - 'resourceids'], - 'type': 'object'}, - 'ServiceUnexpose': {'additionalProperties': False, - 'properties': {'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName'], - 'type': 'object'}, - 'ServiceUnset': {'additionalProperties': False, - 'properties': {'Options': {'items': {'type': 'string'}, - 'type': 'array'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', 'Options'], - 'type': 'object'}, - 'ServiceUpdate': {'additionalProperties': False, - 'properties': {'CharmUrl': {'type': 'string'}, - 'Constraints': {'$ref': '#/definitions/Value'}, - 'ForceCharmUrl': {'type': 'boolean'}, - 'ForceSeries': {'type': 'boolean'}, - 'MinUnits': {'type': 'integer'}, - 'ServiceName': {'type': 'string'}, - 'SettingsStrings': {'patternProperties': {'.*': {'type': 'string'}}, - 'type': 'object'}, - 'SettingsYAML': {'type': 'string'}}, - 'required': ['ServiceName', - 'CharmUrl', - 'ForceCharmUrl', - 'ForceSeries', - 'MinUnits', - 'SettingsStrings', - 'SettingsYAML', - 'Constraints'], - 'type': 'object'}, - 'ServicesDeploy': {'additionalProperties': False, - 'properties': {'Services': {'items': {'$ref': '#/definitions/ServiceDeploy'}, - 'type': 'array'}}, - 'required': ['Services'], - 'type': 'object'}, - 'SetConstraints': {'additionalProperties': False, - 'properties': {'Constraints': {'$ref': '#/definitions/Value'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', 'Constraints'], - 'type': 'object'}, - 'StringResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Result': {'type': 'string'}}, - 'required': ['Error', 'Result'], - 'type': 'object'}, - 'Value': {'additionalProperties': False, - 'properties': {'arch': {'type': 'string'}, - 'container': {'type': 'string'}, - 'cpu-cores': {'type': 'integer'}, - 'cpu-power': {'type': 'integer'}, - 'instance-type': {'type': 'string'}, - 'mem': {'type': 'integer'}, - 'root-disk': {'type': 'integer'}, - 'spaces': {'items': {'type': 'string'}, - 'type': 'array'}, - 'tags': {'items': {'type': 'string'}, - 'type': 'array'}, - 'virt-type': {'type': 'string'}}, - 'type': 'object'}, + 'RebootActionResult': {'additionalProperties': False, + 'properties': {'error': {'$ref': '#/definitions/Error'}, + 'result': {'type': 'string'}}, + 'type': 'object'}, + 'RebootActionResults': {'additionalProperties': False, + 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'}, + 'type': 'array'}}, + 'type': 'object'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -15237,358 +15340,318 @@ class Service(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, - 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddServiceUnits'}, - 'Result': {'$ref': '#/definitions/AddServiceUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ServiceCharmRelations'}, - 'Result': {'$ref': '#/definitions/ServiceCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ServicesDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ServiceDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyServiceUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ServiceExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ServiceGet'}, - 'Result': {'$ref': '#/definitions/ServiceGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ServiceGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, - 'type': 'object'}, - 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetServiceConstraints'}, - 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, - 'type': 'object'}, - 'Set': {'properties': {'Params': {'$ref': '#/definitions/ServiceSet'}}, - 'type': 'object'}, - 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ServiceSetCharm'}}, - 'type': 'object'}, - 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, - 'type': 'object'}, - 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ServiceMetricCredentials'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ServiceUnexpose'}}, - 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ServiceUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ServiceUpdate'}}, - 'type': 'object'}}, - 'type': 'object'} - - - @ReturnMapping(AddRelationResults) - async def AddRelation(self, endpoints): - ''' - endpoints : typing.Sequence[str] - Returns -> typing.Mapping[str, ~Relation] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='AddRelation', Version=3, Params=params) - params['Endpoints'] = endpoints - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(AddServiceUnitsResults) - async def AddUnits(self, numunits, placement, servicename): - ''' - numunits : int - placement : typing.Sequence[~Placement] - servicename : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='AddUnits', Version=3, Params=params) - params['NumUnits'] = numunits - params['Placement'] = placement - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ServiceCharmRelationsResults) - async def CharmRelations(self, servicename): - ''' - servicename : str - Returns -> typing.Sequence[str] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='CharmRelations', Version=3, Params=params) - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def Deploy(self, services): - ''' - services : typing.Sequence[~ServiceDeploy] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='Deploy', Version=3, Params=params) - params['Services'] = services - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(None) - async def Destroy(self, servicename): - ''' - servicename : str - Returns -> None - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='Destroy', Version=3, Params=params) - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - + 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/RebootActionResults'}}, + 'type': 'object'}, + 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + 'type': 'object'}}, + 'type': 'object'} + - @ReturnMapping(None) - async def DestroyRelation(self, endpoints): + @ReturnMapping(ErrorResults) + async def ClearReboot(self, entities): ''' - endpoints : typing.Sequence[str] - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='DestroyRelation', Version=3, Params=params) - params['Endpoints'] = endpoints + msg = dict(Type='Reboot', Request='ClearReboot', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def DestroyUnits(self, unitnames): + @ReturnMapping(RebootActionResults) + async def GetRebootAction(self, entities): ''' - unitnames : typing.Sequence[str] - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RebootActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='DestroyUnits', Version=3, Params=params) - params['UnitNames'] = unitnames + msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Expose(self, servicename): + @ReturnMapping(ErrorResults) + async def RequestReboot(self, entities): ''' - servicename : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='Expose', Version=3, Params=params) - params['ServiceName'] = servicename + msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ServiceGetResults) - async def Get(self, servicename): - ''' - servicename : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + @ReturnMapping(NotifyWatchResult) + async def WatchForRebootEvent(self): ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='Get', Version=3, Params=params) - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - - @ReturnMapping(StringResult) - async def GetCharmURL(self, servicename): - ''' - servicename : str Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='GetCharmURL', Version=3, Params=params) - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - + msg = dict(Type='Reboot', Request='WatchForRebootEvent', Version=2, Params=params) - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, servicename): - ''' - servicename : str - Returns -> Value - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='GetConstraints', Version=3, Params=params) - params['ServiceName'] = servicename reply = await self.rpc(msg) return reply +class RelationUnitsWatcherFacade(Type): + name = 'RelationUnitsWatcher' + version = 1 + schema = {'definitions': {'Error': {'additionalProperties': False, + 'properties': {'Code': {'type': 'string'}, + 'Info': {'$ref': '#/definitions/ErrorInfo'}, + 'Message': {'type': 'string'}}, + 'required': ['Message', 'Code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, + 'MacaroonPath': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, + 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, + 'type': 'array'}, + 'data': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'id': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'sig': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['data', + 'location', + 'id', + 'caveats', + 'sig'], + 'type': 'object'}, + 'RelationUnitsChange': {'additionalProperties': False, + 'properties': {'Changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, + 'type': 'object'}, + 'Departed': {'items': {'type': 'string'}, + 'type': 'array'}}, + 'required': ['Changed', 'Departed'], + 'type': 'object'}, + 'RelationUnitsWatchResult': {'additionalProperties': False, + 'properties': {'Changes': {'$ref': '#/definitions/RelationUnitsChange'}, + 'Error': {'$ref': '#/definitions/Error'}, + 'RelationUnitsWatcherId': {'type': 'string'}}, + 'required': ['RelationUnitsWatcherId', + 'Changes', + 'Error'], + 'type': 'object'}, + 'UnitSettings': {'additionalProperties': False, + 'properties': {'Version': {'type': 'integer'}}, + 'required': ['Version'], + 'type': 'object'}, + 'caveat': {'additionalProperties': False, + 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'verificationId': {'$ref': '#/definitions/packet'}}, + 'required': ['location', + 'caveatId', + 'verificationId'], + 'type': 'object'}, + 'packet': {'additionalProperties': False, + 'properties': {'headerLen': {'type': 'integer'}, + 'start': {'type': 'integer'}, + 'totalLen': {'type': 'integer'}}, + 'required': ['start', 'totalLen', 'headerLen'], + 'type': 'object'}}, + 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}}, + 'type': 'object'}, + 'Stop': {'type': 'object'}}, + 'type': 'object'} + - @ReturnMapping(None) - async def Set(self, options, servicename): - ''' - options : typing.Mapping[str, str] - servicename : str - Returns -> None + @ReturnMapping(RelationUnitsWatchResult) + async def Next(self): ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='Set', Version=3, Params=params) - params['Options'] = options - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - - @ReturnMapping(None) - async def SetCharm(self, charmurl, cs_channel, forceseries, forceunits, resourceids, servicename): - ''' - charmurl : str - cs_channel : str - forceseries : bool - forceunits : bool - resourceids : typing.Mapping[str, str] - servicename : str - Returns -> None + Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='SetCharm', Version=3, Params=params) - params['charmurl'] = charmurl - params['cs-channel'] = cs_channel - params['forceseries'] = forceseries - params['forceunits'] = forceunits - params['resourceids'] = resourceids - params['servicename'] = servicename + msg = dict(Type='RelationUnitsWatcher', Request='Next', Version=1, Params=params) + reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def SetConstraints(self, constraints, servicename): + async def Stop(self): ''' - constraints : Value - servicename : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='SetConstraints', Version=3, Params=params) - params['Constraints'] = constraints - params['ServiceName'] = servicename - reply = await self.rpc(msg) - return reply - - + msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params) - @ReturnMapping(ErrorResults) - async def SetMetricCredentials(self, creds): - ''' - creds : typing.Sequence[~ServiceMetricCredential] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Service', Request='SetMetricCredentials', Version=3, Params=params) - params['Creds'] = creds reply = await self.rpc(msg) return reply +class ResumerFacade(Type): + name = 'Resumer' + version = 2 + schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} + @ReturnMapping(None) - async def Unexpose(self, servicename): + async def ResumeTransactions(self): ''' - servicename : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='Unexpose', Version=3, Params=params) - params['ServiceName'] = servicename + msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, Params=params) + reply = await self.rpc(msg) return reply +class RetryStrategyFacade(Type): + name = 'RetryStrategy' + version = 1 + schema = {'definitions': {'Entities': {'additionalProperties': False, + 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['Entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'Tag': {'type': 'string'}}, + 'required': ['Tag'], + 'type': 'object'}, + 'Error': {'additionalProperties': False, + 'properties': {'Code': {'type': 'string'}, + 'Info': {'$ref': '#/definitions/ErrorInfo'}, + 'Message': {'type': 'string'}}, + 'required': ['Message', 'Code'], + 'type': 'object'}, + 'ErrorInfo': {'additionalProperties': False, + 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, + 'MacaroonPath': {'type': 'string'}}, + 'type': 'object'}, + 'Macaroon': {'additionalProperties': False, + 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, + 'type': 'array'}, + 'data': {'items': {'type': 'integer'}, + 'type': 'array'}, + 'id': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'sig': {'items': {'type': 'integer'}, + 'type': 'array'}}, + 'required': ['data', + 'location', + 'id', + 'caveats', + 'sig'], + 'type': 'object'}, + 'NotifyWatchResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'NotifyWatcherId': {'type': 'string'}}, + 'required': ['NotifyWatcherId', 'Error'], + 'type': 'object'}, + 'NotifyWatchResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'RetryStrategy': {'additionalProperties': False, + 'properties': {'JitterRetryTime': {'type': 'boolean'}, + 'MaxRetryTime': {'type': 'integer'}, + 'MinRetryTime': {'type': 'integer'}, + 'RetryTimeFactor': {'type': 'integer'}, + 'ShouldRetry': {'type': 'boolean'}}, + 'required': ['ShouldRetry', + 'MinRetryTime', + 'MaxRetryTime', + 'JitterRetryTime', + 'RetryTimeFactor'], + 'type': 'object'}, + 'RetryStrategyResult': {'additionalProperties': False, + 'properties': {'Error': {'$ref': '#/definitions/Error'}, + 'Result': {'$ref': '#/definitions/RetryStrategy'}}, + 'required': ['Error', 'Result'], + 'type': 'object'}, + 'RetryStrategyResults': {'additionalProperties': False, + 'properties': {'Results': {'items': {'$ref': '#/definitions/RetryStrategyResult'}, + 'type': 'array'}}, + 'required': ['Results'], + 'type': 'object'}, + 'caveat': {'additionalProperties': False, + 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, + 'location': {'$ref': '#/definitions/packet'}, + 'verificationId': {'$ref': '#/definitions/packet'}}, + 'required': ['location', + 'caveatId', + 'verificationId'], + 'type': 'object'}, + 'packet': {'additionalProperties': False, + 'properties': {'headerLen': {'type': 'integer'}, + 'start': {'type': 'integer'}, + 'totalLen': {'type': 'integer'}}, + 'required': ['start', 'totalLen', 'headerLen'], + '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(None) - async def Unset(self, options, servicename): + @ReturnMapping(RetryStrategyResults) + async def RetryStrategy(self, entities): ''' - options : typing.Sequence[str] - servicename : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RetryStrategyResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='Unset', Version=3, Params=params) - params['Options'] = options - params['ServiceName'] = servicename + msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Update(self, charmurl, constraints, forcecharmurl, forceseries, minunits, servicename, settingsstrings, settingsyaml): + @ReturnMapping(NotifyWatchResults) + async def WatchRetryStrategy(self, entities): ''' - charmurl : str - constraints : Value - forcecharmurl : bool - forceseries : bool - minunits : int - servicename : str - settingsstrings : typing.Mapping[str, str] - settingsyaml : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Service', Request='Update', Version=3, Params=params) - params['CharmUrl'] = charmurl - params['Constraints'] = constraints - params['ForceCharmUrl'] = forcecharmurl - params['ForceSeries'] = forceseries - params['MinUnits'] = minunits - params['ServiceName'] = servicename - params['SettingsStrings'] = settingsstrings - params['SettingsYAML'] = settingsyaml + msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply -class ServiceScaler(Type): - name = 'ServiceScaler' +class SSHClientFacade(Type): + name = 'SSHClient' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -15609,15 +15672,6 @@ class ServiceScaler(Type): 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'}, 'MacaroonPath': {'type': 'string'}}, 'type': 'object'}, - 'ErrorResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}}, - 'required': ['Error'], - 'type': 'object'}, - 'ErrorResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -15633,15 +15687,29 @@ class ServiceScaler(Type): 'caveats', 'sig'], 'type': 'object'}, - 'StringsWatchResult': {'additionalProperties': False, - 'properties': {'Changes': {'items': {'type': 'string'}, - 'type': 'array'}, - 'Error': {'$ref': '#/definitions/Error'}, - 'StringsWatcherId': {'type': 'string'}}, - 'required': ['StringsWatcherId', - 'Changes', - 'Error'], - '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'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -15656,44 +15724,80 @@ class ServiceScaler(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, - '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(ErrorResults) - async def Rescale(self, entities): + @ReturnMapping(SSHAddressResults) + async def PrivateAddress(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + Returns -> typing.Sequence[~SSHAddressResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ServiceScaler', Request='Rescale', Version=1, Params=params) + msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResult) - async def Watch(self): + @ReturnMapping(SSHProxyResult) + async def Proxy(self): ''' - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] + Returns -> bool + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='SSHClient', Request='Proxy', Version=1, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHAddressResults) + async def PublicAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ServiceScaler', Request='Watch', 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 Singular(Type): +class SingularFacade(Type): name = 'Singular' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -15804,7 +15908,7 @@ class Singular(Type): return reply -class Spaces(Type): +class SpacesFacade(Type): name = 'Spaces' version = 2 schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False, @@ -15938,12 +16042,14 @@ class Spaces(Type): return reply -class StatusHistory(Type): +class StatusHistoryFacade(Type): name = 'StatusHistory' version = 2 schema = {'definitions': {'StatusHistoryPruneArgs': {'additionalProperties': False, - 'properties': {'MaxLogsPerEntity': {'type': 'integer'}}, - 'required': ['MaxLogsPerEntity'], + 'properties': {'MaxHistoryMB': {'type': 'integer'}, + 'MaxHistoryTime': {'type': 'integer'}}, + 'required': ['MaxHistoryTime', + 'MaxHistoryMB'], 'type': 'object'}}, 'properties': {'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}}, 'type': 'object'}}, @@ -15951,20 +16057,22 @@ class StatusHistory(Type): @ReturnMapping(None) - async def Prune(self, maxlogsperentity): + async def Prune(self, maxhistorymb, maxhistorytime): ''' - maxlogsperentity : int + maxhistorymb : int + maxhistorytime : int Returns -> None ''' # map input types to rpc msg params = dict() msg = dict(Type='StatusHistory', Request='Prune', Version=2, Params=params) - params['MaxLogsPerEntity'] = maxlogsperentity + params['MaxHistoryMB'] = maxhistorymb + params['MaxHistoryTime'] = maxhistorytime reply = await self.rpc(msg) return reply -class Storage(Type): +class StorageFacade(Type): name = 'Storage' version = 2 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -16337,7 +16445,7 @@ class Storage(Type): return reply -class StorageProvisioner(Type): +class StorageProvisionerFacade(Type): name = 'StorageProvisioner' version = 2 schema = {'definitions': {'BlockDevice': {'additionalProperties': False, @@ -17234,7 +17342,7 @@ class StorageProvisioner(Type): return reply -class StringsWatcher(Type): +class StringsWatcherFacade(Type): name = 'StringsWatcher' version = 1 schema = {'definitions': {'Error': {'additionalProperties': False, @@ -17320,7 +17428,7 @@ class StringsWatcher(Type): return reply -class Subnets(Type): +class SubnetsFacade(Type): name = 'Subnets' version = 2 schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False, @@ -17507,7 +17615,7 @@ class Subnets(Type): return reply -class Undertaker(Type): +class UndertakerFacade(Type): name = 'Undertaker' version = 1 schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False, @@ -17729,7 +17837,7 @@ class Undertaker(Type): return reply -class UnitAssigner(Type): +class UnitAssignerFacade(Type): name = 'UnitAssigner' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, @@ -17870,9 +17978,9 @@ class UnitAssigner(Type): return reply -class Uniter(Type): +class UniterFacade(Type): name = 'Uniter' - version = 3 + version = 4 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, 'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, 'type': 'array'}, @@ -17927,6 +18035,20 @@ class Uniter(Type): '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', + 'Error'], + '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'}}, @@ -17964,9 +18086,9 @@ class Uniter(Type): 'required': ['Results'], 'type': 'object'}, 'Endpoint': {'additionalProperties': False, - 'properties': {'Relation': {'$ref': '#/definitions/Relation'}, - 'ServiceName': {'type': 'string'}}, - 'required': ['ServiceName', 'Relation'], + 'properties': {'ApplicationName': {'type': 'string'}, + 'Relation': {'$ref': '#/definitions/Relation'}}, + 'required': ['ApplicationName', 'Relation'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -18110,10 +18232,10 @@ class Uniter(Type): 'required': ['Params'], 'type': 'object'}, 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'ServiceTag': {'type': 'string'}, + 'properties': {'ApplicationTag': {'type': 'string'}, 'Settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, - 'required': ['ServiceTag', + 'required': ['ApplicationTag', 'Settings'], 'type': 'object'}, 'MeterStatusResult': {'additionalProperties': False, @@ -18325,20 +18447,6 @@ class Uniter(Type): 'type': 'array'}}, 'required': ['Results'], 'type': 'object'}, - 'ServiceStatusResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'Service': {'$ref': '#/definitions/StatusResult'}, - 'Units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, - 'type': 'object'}}, - 'required': ['Service', - 'Units', - 'Error'], - 'type': 'object'}, - 'ServiceStatusResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ServiceStatusResult'}, - 'type': 'array'}}, - 'required': ['Results'], - 'type': 'object'}, 'SetStatus': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, 'type': 'array'}}, @@ -18541,6 +18649,12 @@ class Uniter(Type): 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, 'type': 'object'}, + 'ApplicationOwner': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringResults'}}, + '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'}, @@ -18653,21 +18767,15 @@ class Uniter(Type): 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ResolvedModeResults'}}, 'type': 'object'}, - 'ServiceOwner': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringResults'}}, - 'type': 'object'}, - 'ServiceStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ServiceStatusResults'}}, - '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'}, - 'SetServiceStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, @@ -18697,6 +18805,9 @@ class Uniter(Type): 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, 'type': 'object'}, + 'WatchApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, + 'type': 'object'}, 'WatchConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}, @@ -18711,9 +18822,6 @@ class Uniter(Type): 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}}, 'type': 'object'}, - 'WatchServiceRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, - 'type': 'object'}, 'WatchStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'}, 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}, @@ -18734,7 +18842,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='APIAddresses', Version=3, Params=params) + msg = dict(Type='Uniter', Request='APIAddresses', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -18749,7 +18857,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='APIHostPorts', Version=3, Params=params) + msg = dict(Type='Uniter', Request='APIHostPorts', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -18764,7 +18872,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Actions', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Actions', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18779,7 +18887,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AddMetricBatches', Version=3, Params=params) + msg = dict(Type='Uniter', Request='AddMetricBatches', Version=4, Params=params) params['Batches'] = batches reply = await self.rpc(msg) return reply @@ -18794,7 +18902,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AddUnitStorage', Version=3, Params=params) + msg = dict(Type='Uniter', Request='AddUnitStorage', Version=4, Params=params) params['storages'] = storages reply = await self.rpc(msg) return reply @@ -18809,7 +18917,37 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AllMachinePorts', Version=3, Params=params) + msg = dict(Type='Uniter', Request='AllMachinePorts', Version=4, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringResults) + async def ApplicationOwner(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Uniter', Request='ApplicationOwner', Version=4, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(ApplicationStatusResults) + async def ApplicationStatus(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ApplicationStatusResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Uniter', Request='ApplicationStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18824,7 +18962,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AssignedMachine', Version=3, Params=params) + msg = dict(Type='Uniter', Request='AssignedMachine', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18839,7 +18977,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AvailabilityZone', Version=3, Params=params) + msg = dict(Type='Uniter', Request='AvailabilityZone', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18854,7 +18992,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='BeginActions', Version=3, Params=params) + msg = dict(Type='Uniter', Request='BeginActions', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18869,7 +19007,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CACert', Version=3, Params=params) + msg = dict(Type='Uniter', Request='CACert', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -18884,7 +19022,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=3, Params=params) + msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=4, Params=params) params['URLs'] = urls reply = await self.rpc(msg) return reply @@ -18899,7 +19037,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=3, Params=params) + msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18914,7 +19052,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmURL', Version=3, Params=params) + msg = dict(Type='Uniter', Request='CharmURL', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18929,7 +19067,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ClearResolved', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ClearResolved', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18944,7 +19082,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ClosePorts', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ClosePorts', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18959,7 +19097,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ConfigSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ConfigSettings', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18974,7 +19112,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CurrentModel', Version=3, Params=params) + msg = dict(Type='Uniter', Request='CurrentModel', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -18989,7 +19127,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Destroy', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Destroy', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19004,7 +19142,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=3, Params=params) + msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19019,7 +19157,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19034,7 +19172,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='EnsureDead', Version=3, Params=params) + msg = dict(Type='Uniter', Request='EnsureDead', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19049,7 +19187,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='EnterScope', Version=3, Params=params) + msg = dict(Type='Uniter', Request='EnterScope', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19064,7 +19202,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='FinishActions', Version=3, Params=params) + msg = dict(Type='Uniter', Request='FinishActions', Version=4, Params=params) params['results'] = results reply = await self.rpc(msg) return reply @@ -19079,7 +19217,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='GetMeterStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='GetMeterStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19094,7 +19232,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='GetPrincipal', Version=3, Params=params) + msg = dict(Type='Uniter', Request='GetPrincipal', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19109,7 +19247,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='HasSubordinates', Version=3, Params=params) + msg = dict(Type='Uniter', Request='HasSubordinates', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19124,7 +19262,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='JoinedRelations', Version=3, Params=params) + msg = dict(Type='Uniter', Request='JoinedRelations', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19139,7 +19277,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='LeaveScope', Version=3, Params=params) + msg = dict(Type='Uniter', Request='LeaveScope', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19154,7 +19292,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Life', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Life', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19169,7 +19307,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Merge', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Merge', Version=4, Params=params) params['Params'] = params reply = await self.rpc(msg) return reply @@ -19184,7 +19322,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ModelConfig', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ModelConfig', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -19199,7 +19337,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ModelUUID', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ModelUUID', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -19214,7 +19352,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='NetworkConfig', Version=3, Params=params) + msg = dict(Type='Uniter', Request='NetworkConfig', Version=4, Params=params) params['Args'] = args reply = await self.rpc(msg) return reply @@ -19229,7 +19367,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='OpenPorts', Version=3, Params=params) + msg = dict(Type='Uniter', Request='OpenPorts', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19244,7 +19382,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='PrivateAddress', Version=3, Params=params) + msg = dict(Type='Uniter', Request='PrivateAddress', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19259,7 +19397,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ProviderType', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ProviderType', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -19274,7 +19412,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='PublicAddress', Version=3, Params=params) + msg = dict(Type='Uniter', Request='PublicAddress', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19289,7 +19427,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Read', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Read', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19304,7 +19442,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=4, Params=params) params['RelationUnitPairs'] = relationunitpairs reply = await self.rpc(msg) return reply @@ -19319,7 +19457,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ReadSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='ReadSettings', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19334,7 +19472,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Relation', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Relation', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19349,7 +19487,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RelationById', Version=3, Params=params) + msg = dict(Type='Uniter', Request='RelationById', Version=4, Params=params) params['RelationIds'] = relationids reply = await self.rpc(msg) return reply @@ -19364,7 +19502,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=4, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19379,7 +19517,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RequestReboot', Version=3, Params=params) + msg = dict(Type='Uniter', Request='RequestReboot', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19394,37 +19532,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Resolved', Version=3, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringResults) - async def ServiceOwner(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Uniter', Request='ServiceOwner', Version=3, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ServiceStatusResults) - async def ServiceStatus(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ServiceStatusResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Uniter', Request='ServiceStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Resolved', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19439,7 +19547,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetAgentStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='SetAgentStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19447,14 +19555,14 @@ class Uniter(Type): @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): + async def SetApplicationStatus(self, entities): ''' - entities : typing.Sequence[~EntityCharmURL] + entities : typing.Sequence[~EntityStatusArgs] Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetCharmURL', Version=3, Params=params) + msg = dict(Type='Uniter', Request='SetApplicationStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19462,14 +19570,14 @@ class Uniter(Type): @ReturnMapping(ErrorResults) - async def SetServiceStatus(self, entities): + async def SetCharmURL(self, entities): ''' - entities : typing.Sequence[~EntityStatusArgs] + entities : typing.Sequence[~EntityCharmURL] Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetServiceStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='SetCharmURL', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19484,7 +19592,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='SetStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19499,7 +19607,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetUnitStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='SetUnitStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19514,7 +19622,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=3, Params=params) + msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=4, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19529,7 +19637,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='StorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='StorageAttachments', Version=4, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19544,7 +19652,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UnitStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='UnitStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19559,7 +19667,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19574,7 +19682,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UpdateSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='UpdateSettings', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19589,7 +19697,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Watch', Version=3, Params=params) + msg = dict(Type='Uniter', Request='Watch', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19604,7 +19712,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -19619,7 +19727,22 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=4, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(StringsWatchResults) + async def WatchApplicationRelations(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Uniter', Request='WatchApplicationRelations', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19634,7 +19757,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19649,7 +19772,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=4, Params=params) reply = await self.rpc(msg) return reply @@ -19664,7 +19787,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19679,7 +19802,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19694,28 +19817,13 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=4, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResults) - async def WatchServiceRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Uniter', Request='WatchServiceRelations', Version=3, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - @ReturnMapping(NotifyWatchResults) async def WatchStorageAttachments(self, ids): ''' @@ -19724,7 +19832,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=4, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19739,7 +19847,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19754,13 +19862,13 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=3, Params=params) + msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=4, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply -class Upgrader(Type): +class UpgraderFacade(Type): name = 'Upgrader' version = 1 schema = {'definitions': {'Binary': {'additionalProperties': False, @@ -19967,7 +20075,7 @@ class Upgrader(Type): return reply -class UserManager(Type): +class UserManagerFacade(Type): name = 'UserManager' version = 1 schema = {'definitions': {'AddUser': {'additionalProperties': False, @@ -20216,7 +20324,7 @@ class UserManager(Type): return reply -class VolumeAttachmentsWatcher(Type): +class VolumeAttachmentsWatcherFacade(Type): name = 'VolumeAttachmentsWatcher' version = 2 schema = {'definitions': {'Error': {'additionalProperties': False, diff --git a/juju/client/connection.py b/juju/client/connection.py index 1a9e8e9..56f9e18 100644 --- a/juju/client/connection.py +++ b/juju/client/connection.py @@ -28,7 +28,13 @@ class Connection: client = await Connection.connect_current() """ - def __init__(self): + def __init__(self, endpoint, uuid, username, password, cacert=None): + self.endpoint = endpoint + self.uuid = uuid + self.username = username + self.password = password + self.cacert = cacert + self.__request_id__ = 0 self.addr = None self.ws = None @@ -70,14 +76,28 @@ class Connection: raise RuntimeError(result) return result + async def clone(self): + """Return a new Connection, connected to the same websocket endpoint + as this one. + + """ + return await Connection.connect( + self.endpoint, + self.uuid, + self.username, + self.password, + self.cacert, + ) + @classmethod async def connect(cls, endpoint, uuid, username, password, cacert=None): url = "wss://{}/model/{}/api".format(endpoint, uuid) - client = cls() + client = cls(endpoint, uuid, username, password, cacert) await client.open(url, cacert) server_info = await client.login(username, password) client.build_facades(server_info['facades']) log.info("Driver connected to juju %s", endpoint) + return client @classmethod diff --git a/juju/client/facade.py b/juju/client/facade.py index 8e3c7eb..41166c0 100644 --- a/juju/client/facade.py +++ b/juju/client/facade.py @@ -395,7 +395,7 @@ def buildFacade(schema): version=schema.version, schema=schema)) source = """ -class {name}(Type): +class {name}Facade(Type): name = '{name}' version = {version} schema = {schema} @@ -428,7 +428,11 @@ class Type: for k, v in (data or {}).items(): d[cls._toPy.get(k, k)] = v - return cls(**d) + try: + return cls(**d) + except TypeError: + print(cls) + raise def serialize(self): d = {} diff --git a/juju/client/schemas-20160608.json b/juju/client/schemas-20160608.json new file mode 100644 index 0000000..2ec58a4 --- /dev/null +++ b/juju/client/schemas-20160608.json @@ -0,0 +1,25305 @@ +[ + { + "Name": "Action", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "ApplicationsCharmsActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationsCharmActionsResults" + } + } + }, + "Cancel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "Enqueue": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Actions" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "FindActionTagsByPrefix": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindTags" + }, + "Result": { + "$ref": "#/definitions/FindTagsResults" + } + } + }, + "FindActionsByNames": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindActionsByNames" + }, + "Result": { + "$ref": "#/definitions/ActionsByNames" + } + } + }, + "ListAll": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListCompleted": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListPending": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "ListRunning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" + } + } + }, + "Run": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "RunOnAllMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RunParams" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "receiver": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "receiver", + "name" + ] + }, + "ActionResult": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/Action" + }, + "completed": { + "type": "string", + "format": "date-time" + }, + "enqueued": { + "type": "string", + "format": "date-time" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "started": { + "type": "string", + "format": "date-time" + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ActionResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } + } + }, + "additionalProperties": false + }, + "ActionSpec": { + "type": "object", + "properties": { + "Description": { + "type": "string" + }, + "Params": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Description", + "Params" + ] + }, + "Actions": { + "type": "object", + "properties": { + "ActionSpecs": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ActionSpec" + } + } + } + }, + "additionalProperties": false, + "required": [ + "ActionSpecs" + ] + }, + "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": { + "ApplicationTag": { + "type": "string" + }, + "actions": { + "$ref": "#/definitions/Actions" + }, + "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" + }, + "MacaroonPath": { + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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", + "Machines", + "Applications", + "Units" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Addresser", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CanDeallocateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BoolResult" + } + } + }, + "CleanupIPAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "WatchIPAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/EntitiesWatchResult" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "EntitiesWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "EntityWatcherId": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "EntityWatcherId", + "Changes", + "Error" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Agent", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ClearReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetEntities": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/AgentGetEntitiesResults" + } + } + }, + "IsMaster": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/IsMasterResult" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateServingInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StateServingInfo" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "AgentGetEntitiesResult": { + "type": "object", + "properties": { + "ContainerType": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "Life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Life", + "Jobs", + "ContainerType", + "Error" + ] + }, + "AgentGetEntitiesResults": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/AgentGetEntitiesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entities": { + "type": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "StateServingInfo": { + "type": "object", + "properties": { + "APIPort": { + "type": "integer" + }, + "CAPrivateKey": { + "type": "string" + }, + "Cert": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + }, + "SharedSecret": { + "type": "string" + }, + "StatePort": { + "type": "integer" + }, + "SystemIdentity": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "APIPort", + "StatePort", + "Cert", + "PrivateKey", + "CAPrivateKey", + "SharedSecret", + "SystemIdentity" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + } + } + }, + "EntityTag": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/ErrorResult" + } + }, + "additionalProperties": false, + "required": [ + "EntityTag", + "Annotations", + "Error" + ] + }, + "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" + } + } + }, + "EntityTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "EntityTag", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Application", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddApplicationUnits" + }, + "Result": { + "$ref": "#/definitions/AddApplicationUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ApplicationCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationsDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyApplicationUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/ApplicationGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetApplicationConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationSetCharm" + } + } + }, + "SetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "SetMetricCredentials": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationMetricCredentials" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Unexpose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnexpose" + } + } + }, + "Unset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUnset" + } + } + }, + "Update": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ApplicationUpdate" + } + } + } + }, + "definitions": { + "AddApplicationUnits": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "NumUnits": { + "type": "integer" + }, + "Placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "NumUnits", + "Placement" + ] + }, + "AddApplicationUnitsResults": { + "type": "object", + "properties": { + "Units": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Units" + ] + }, + "AddRelation": { + "type": "object", + "properties": { + "Endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Endpoints" + ] + }, + "AddRelationResults": { + "type": "object", + "properties": { + "Endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Relation" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Endpoints" + ] + }, + "ApplicationCharmRelations": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "ApplicationCharmRelationsResults": { + "type": "object", + "properties": { + "CharmRelations": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "CharmRelations" + ] + }, + "ApplicationDeploy": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Channel": { + "type": "string" + }, + "CharmUrl": { + "type": "string" + }, + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "ConfigYAML": { + "type": "string" + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "EndpointBindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "NumUnits": { + "type": "integer" + }, + "Placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } + }, + "Resources": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Series": { + "type": "string" + }, + "Storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "Series", + "CharmUrl", + "Channel", + "NumUnits", + "Config", + "ConfigYAML", + "Constraints", + "Placement", + "Storage", + "EndpointBindings", + "Resources" + ] + }, + "ApplicationDestroy": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "ApplicationExpose": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "ApplicationGet": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "ApplicationGetResults": { + "type": "object", + "properties": { + "Application": { + "type": "string" + }, + "Charm": { + "type": "string" + }, + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "Application", + "Charm", + "Config", + "Constraints" + ] + }, + "ApplicationMetricCredential": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "MetricCredentials": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "MetricCredentials" + ] + }, + "ApplicationMetricCredentials": { + "type": "object", + "properties": { + "Creds": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationMetricCredential" + } + } + }, + "additionalProperties": false, + "required": [ + "Creds" + ] + }, + "ApplicationSet": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "Options" + ] + }, + "ApplicationSetCharm": { + "type": "object", + "properties": { + "applicationname": { + "type": "string" + }, + "charmurl": { + "type": "string" + }, + "cs-channel": { + "type": "string" + }, + "forceseries": { + "type": "boolean" + }, + "forceunits": { + "type": "boolean" + }, + "resourceids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "applicationname", + "charmurl", + "cs-channel", + "forceunits", + "forceseries", + "resourceids" + ] + }, + "ApplicationUnexpose": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "ApplicationUnset": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Options": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "Options" + ] + }, + "ApplicationUpdate": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "CharmUrl": { + "type": "string" + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ForceCharmUrl": { + "type": "boolean" + }, + "ForceSeries": { + "type": "boolean" + }, + "MinUnits": { + "type": "integer" + }, + "SettingsStrings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "SettingsYAML": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "CharmUrl", + "ForceCharmUrl", + "ForceSeries", + "MinUnits", + "SettingsStrings", + "SettingsYAML", + "Constraints" + ] + }, + "ApplicationsDeploy": { + "type": "object", + "properties": { + "Applications": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationDeploy" + } + } + }, + "additionalProperties": false, + "required": [ + "Applications" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "DestroyApplicationUnits": { + "type": "object", + "properties": { + "UnitNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "UnitNames" + ] + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Endpoints": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Endpoints" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "GetApplicationConstraints": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName" + ] + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "Constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "Constraints" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Placement": { + "type": "object", + "properties": { + "Directive": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Scope", + "Directive" + ] + }, + "Relation": { + "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" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "Constraints" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Backups", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Create": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsCreateArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "FinishRestore": { + "type": "object" + }, + "Info": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsInfoArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsListArgs" + }, + "Result": { + "$ref": "#/definitions/BackupsListResult" + } + } + }, + "PrepareRestore": { + "type": "object" + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/BackupsRemoveArgs" + } + } + }, + "Restore": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RestoreArgs" + } + } + } + }, + "definitions": { + "BackupsCreateArgs": { + "type": "object", + "properties": { + "Notes": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Notes" + ] + }, + "BackupsInfoArgs": { + "type": "object", + "properties": { + "ID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ID" + ] + }, + "BackupsListArgs": { + "type": "object", + "additionalProperties": false + }, + "BackupsListResult": { + "type": "object", + "properties": { + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } + } + }, + "additionalProperties": false, + "required": [ + "List" + ] + }, + "BackupsMetadataResult": { + "type": "object", + "properties": { + "CACert": { + "type": "string" + }, + "CAPrivateKey": { + "type": "string" + }, + "Checksum": { + "type": "string" + }, + "ChecksumFormat": { + "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", + "ChecksumFormat", + "Size", + "Stored", + "Started", + "Finished", + "Notes", + "Model", + "Machine", + "Hostname", + "Version", + "Series", + "CACert", + "CAPrivateKey" + ] + }, + "BackupsRemoveArgs": { + "type": "object", + "properties": { + "ID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ID" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "RestoreArgs": { + "type": "object", + "properties": { + "BackupId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "BackupId" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmInfo" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "IsMetered": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmInfo" + }, + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" + }, + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmInfo": { + "type": "object", + "properties": { + "CharmURL": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmURL" + ] + }, + "CharmsList": { + "type": "object", + "properties": { + "Names": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Names" + ] + }, + "CharmsListResult": { + "type": "object", + "properties": { + "CharmURLs": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "CharmURLs" + ] + }, + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Client", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharm" + } + } + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" + } + } + }, + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AddMachinesV2": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "AgentVersion": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AgentVersionResult" + } + } + }, + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmInfo" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } + }, + "DestroyMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyMachines" + } + } + }, + "DestroyModel": { + "type": "object" + }, + "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/GetBundleChangesParams" + }, + "Result": { + "$ref": "#/definitions/GetBundleChangesResults" + } + } + }, + "GetModelConstraints": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "InjectMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + }, + "ModelGet": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResults" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelInfo" + } + } + }, + "ModelSet": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSet" + } + } + }, + "ModelUnset": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelUnset" + } + } + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" + } + } + }, + "ProvisioningScript": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" + }, + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" + }, + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" + }, + "Result": { + "$ref": "#/definitions/ResolveCharmResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Resolved" + } + } + }, + "RetryProvisioning": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" + } + } + }, + "SetModelConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetConstraints" + } + } + }, + "StatusHistory": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryRequests" + }, + "Result": { + "$ref": "#/definitions/StatusHistoryResults" + } + } + }, + "WatchAll": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "Servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Servers" + ] + }, + "AddCharm": { + "type": "object", + "properties": { + "Channel": { + "type": "string" + }, + "URL": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "URL", + "Channel" + ] + }, + "AddCharmWithAuthorization": { + "type": "object", + "properties": { + "Channel": { + "type": "string" + }, + "CharmStoreMacaroon": { + "$ref": "#/definitions/Macaroon" + }, + "URL": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "URL", + "Channel", + "CharmStoreMacaroon" + ] + }, + "AddMachineParams": { + "type": "object", + "properties": { + "Addrs": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ContainerType": { + "type": "string" + }, + "Disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "HardwareCharacteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "InstanceId": { + "type": "string" + }, + "Jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "Nonce": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/Placement" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Series", + "Constraints", + "Jobs", + "Disks", + "Placement", + "ParentId", + "ContainerType", + "InstanceId", + "Nonce", + "HardwareCharacteristics", + "Addrs" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "MachineParams": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineParams" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Machine", + "Error" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "Machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "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": { + "AllWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "AllWatcherId" + ] + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "CanUpgradeTo": { + "type": "string" + }, + "Charm": { + "type": "string" + }, + "Err": { + "type": "object", + "additionalProperties": true + }, + "Exposed": { + "type": "boolean" + }, + "Life": { + "type": "string" + }, + "MeterStatuses": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MeterStatus" + } + } + }, + "Relations": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Status": { + "$ref": "#/definitions/DetailedStatus" + }, + "SubordinateTo": { + "type": "array", + "items": { + "type": "string" + } + }, + "Units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Err", + "Charm", + "Exposed", + "Life", + "Relations", + "CanUpgradeTo", + "SubordinateTo", + "Units", + "MeterStatuses", + "Status" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BundleChangesChange": { + "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" + ] + }, + "CharmInfo": { + "type": "object", + "properties": { + "CharmURL": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "CharmURL" + ] + }, + "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" + }, + "MachineNames": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineNames", + "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", + "Err" + ] + }, + "EndpointStatus": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Role": { + "type": "string" + }, + "Subordinate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "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", + "Data", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "MajorVersion": { + "type": "integer" + }, + "MinorVersion": { + "type": "integer" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "MajorVersion", + "MinorVersion", + "Arch", + "Series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "List", + "Error" + ] + }, + "FullStatus": { + "type": "object", + "properties": { + "Applications": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ApplicationStatus" + } + } + }, + "AvailableVersion": { + "type": "string" + }, + "Machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "ModelName": { + "type": "string" + }, + "Relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "ModelName", + "AvailableVersion", + "Machines", + "Applications", + "Relations" + ] + }, + "GetBundleChangesParams": { + "type": "object", + "properties": { + "yaml": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] + }, + "GetBundleChangesResults": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChangesChange" + } + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "GetConstraintsResults": { + "type": "object", + "properties": { + "Constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "Constraints" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "CpuCores": { + "type": "integer" + }, + "CpuPower": { + "type": "integer" + }, + "Mem": { + "type": "integer" + }, + "RootDisk": { + "type": "integer" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "History": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "Statuses" + ] + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "Port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "Port" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineStatus": { + "type": "object", + "properties": { + "AgentStatus": { + "$ref": "#/definitions/DetailedStatus" + }, + "Containers": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } + }, + "DNSName": { + "type": "string" + }, + "Hardware": { + "type": "string" + }, + "HasVote": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceStatus": { + "$ref": "#/definitions/DetailedStatus" + }, + "Jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "Series": { + "type": "string" + }, + "WantsVote": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "AgentStatus", + "InstanceStatus", + "DNSName", + "InstanceId", + "Series", + "Id", + "Containers", + "Hardware", + "Jobs", + "HasVote", + "WantsVote" + ] + }, + "MeterStatus": { + "type": "object", + "properties": { + "Color": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Color", + "Message" + ] + }, + "ModelConfigResults": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "Cloud": { + "type": "string" + }, + "DefaultSeries": { + "type": "string" + }, + "Life": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OwnerTag": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "ServerUUID": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/EntityStatus" + }, + "UUID": { + "type": "string" + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "Name", + "UUID", + "ServerUUID", + "ProviderType", + "DefaultSeries", + "Cloud", + "OwnerTag", + "Life", + "Status", + "Users" + ] + }, + "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" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "displayname": { + "type": "string" + }, + "lastconnection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "displayname", + "lastconnection", + "access" + ] + }, + "ModelUserInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/ModelUserInfo" + } + }, + "additionalProperties": false + }, + "ModelUserInfoResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "Placement": { + "type": "object", + "properties": { + "Directive": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Scope", + "Directive" + ] + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Target": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Target" + ] + }, + "PrivateAddressResults": { + "type": "object", + "properties": { + "PrivateAddress": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "PrivateAddress" + ] + }, + "ProvisioningScriptParams": { + "type": "object", + "properties": { + "DataDir": { + "type": "string" + }, + "DisablePackageCommands": { + "type": "boolean" + }, + "MachineId": { + "type": "string" + }, + "Nonce": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineId", + "Nonce", + "DataDir", + "DisablePackageCommands" + ] + }, + "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": { + "PublicAddress": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "PublicAddress" + ] + }, + "RelationStatus": { + "type": "object", + "properties": { + "Endpoints": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointStatus" + } + }, + "Id": { + "type": "integer" + }, + "Interface": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Key", + "Interface", + "Scope", + "Endpoints" + ] + }, + "ResolveCharmResult": { + "type": "object", + "properties": { + "Error": { + "type": "string" + }, + "URL": { + "$ref": "#/definitions/URL" + } + }, + "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": { + "$ref": "#/definitions/URL" + } + } + }, + "additionalProperties": false, + "required": [ + "References" + ] + }, + "Resolved": { + "type": "object", + "properties": { + "Retry": { + "type": "boolean" + }, + "UnitName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UnitName", + "Retry" + ] + }, + "SetConstraints": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Constraints": { + "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "Constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "Version" + ] + }, + "StatusHistoryFilter": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "format": "date-time" + }, + "Delta": { + "type": "integer" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Size", + "Date", + "Delta" + ] + }, + "StatusHistoryRequest": { + "type": "object", + "properties": { + "Filter": { + "$ref": "#/definitions/StatusHistoryFilter" + }, + "HistoryKind": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "HistoryKind", + "Size", + "Filter", + "Tag" + ] + }, + "StatusHistoryRequests": { + "type": "object", + "properties": { + "Requests": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryRequest" + } + } + }, + "additionalProperties": false, + "required": [ + "Requests" + ] + }, + "StatusHistoryResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "History": { + "$ref": "#/definitions/History" + } + }, + "additionalProperties": false, + "required": [ + "History" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusHistoryResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "StatusParams": { + "type": "object", + "properties": { + "Patterns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Patterns" + ] + }, + "Tools": { + "type": "object", + "properties": { + "sha256": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" + } + }, + "additionalProperties": false, + "required": [ + "version", + "url", + "size" + ] + }, + "URL": { + "type": "object", + "properties": { + "Channel": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Revision": { + "type": "integer" + }, + "Schema": { + "type": "string" + }, + "Series": { + "type": "string" + }, + "User": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Schema", + "User", + "Name", + "Revision", + "Series", + "Channel" + ] + }, + "UnitStatus": { + "type": "object", + "properties": { + "AgentStatus": { + "$ref": "#/definitions/DetailedStatus" + }, + "Charm": { + "type": "string" + }, + "Machine": { + "type": "string" + }, + "OpenedPorts": { + "type": "array", + "items": { + "type": "string" + } + }, + "PublicAddress": { + "type": "string" + }, + "Subordinates": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitStatus" + } + } + }, + "WorkloadStatus": { + "$ref": "#/definitions/DetailedStatus" + } + }, + "additionalProperties": false, + "required": [ + "AgentStatus", + "WorkloadStatus", + "Machine", + "OpenedPorts", + "PublicAddress", + "Charm", + "Subordinates" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Controller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "DestroyController": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyControllerArgs" + } + } + }, + "InitiateModelMigration": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InitiateModelMigrationArgs" + }, + "Result": { + "$ref": "#/definitions/InitiateModelMigrationResults" + } + } + }, + "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" + } + } + }, + "RemoveBlocks": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RemoveBlocksArgs" + } + } + }, + "WatchAllModels": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/AllWatcherId" + } + } + } + }, + "definitions": { + "AllWatcherId": { + "type": "object", + "properties": { + "AllWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "AllWatcherId" + ] + }, + "DestroyControllerArgs": { + "type": "object", + "properties": { + "destroy-models": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "destroy-models" + ] + }, + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "InitiateModelMigrationArgs": { + "type": "object", + "properties": { + "specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelMigrationSpec" + } + } + }, + "additionalProperties": false, + "required": [ + "specs" + ] + }, + "InitiateModelMigrationResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "id": { + "type": "string" + }, + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "error", + "id" + ] + }, + "InitiateModelMigrationResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateModelMigrationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Model": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "OwnerTag": { + "type": "string" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "UUID", + "OwnerTag" + ] + }, + "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": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "ModelMigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/ModelMigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "ModelMigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag", + "password" + ] + }, + "ModelStatus": { + "type": "object", + "properties": { + "application-count": { + "type": "integer" + }, + "hosted-machine-count": { + "type": "integer" + }, + "life": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "owner-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "life", + "hosted-machine-count", + "application-count", + "owner-tag" + ] + }, + "ModelStatusResults": { + "type": "object", + "properties": { + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "models" + ] + }, + "RemoveBlocksArgs": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "LastConnection": { + "type": "string", + "format": "date-time" + }, + "Model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "Model", + "LastConnection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "UserModels": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "UserModels" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "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" + }, + "SpaceName": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "Result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "Result" + ] + }, + "DeployerConnectionValues": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "array", + "items": { + "type": "string" + } + }, + "StateAddresses": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "StateAddresses", + "APIAddresses" + ] + }, + "Entities": { + "type": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DiscoverSpacesResults" + } + } + }, + "ListSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SubnetsFilters" + }, + "Result": { + "$ref": "#/definitions/ListSubnetsResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + } + }, + "definitions": { + "AddSubnetParams": { + "type": "object", + "properties": { + "SpaceTag": { + "type": "string" + }, + "SubnetProviderId": { + "type": "string" + }, + "SubnetTag": { + "type": "string" + }, + "Zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "SpaceTag" + ] + }, + "AddSubnetsParams": { + "type": "object", + "properties": { + "Subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/AddSubnetParams" + } + } + }, + "additionalProperties": false, + "required": [ + "Subnets" + ] + }, + "CreateSpaceParams": { + "type": "object", + "properties": { + "ProviderId": { + "type": "string" + }, + "Public": { + "type": "boolean" + }, + "SpaceTag": { + "type": "string" + }, + "SubnetTags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "SubnetTags", + "SpaceTag", + "Public" + ] + }, + "CreateSpacesParams": { + "type": "object", + "properties": { + "Spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } + } + }, + "additionalProperties": false, + "required": [ + "Spaces" + ] + }, + "DiscoverSpacesResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "ProviderSpace": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Name": { + "type": "string" + }, + "ProviderId": { + "type": "string" + }, + "Subnets": { + "type": "array", + "items": { + "$ref": "#/definitions/Subnet" + } + } + }, + "additionalProperties": false, + "required": [ + "Name", + "ProviderId", + "Subnets" + ] + }, + "Subnet": { + "type": "object", + "properties": { + "CIDR": { + "type": "string" + }, + "Life": { + "type": "string" + }, + "ProviderId": { + "type": "string" + }, + "SpaceTag": { + "type": "string" + }, + "StaticRangeHighIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "StaticRangeLowIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "Status": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + }, + "Zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "CIDR", + "VLANTag", + "Life", + "SpaceTag", + "Zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "SpaceTag": { + "type": "string" + }, + "Zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "DiskManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineBlockDevices" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineBlockDevices": { + "type": "object", + "properties": { + "blockdevices": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDevice" + } + }, + "machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machine" + ] + }, + "SetMachineBlockDevices": { + "type": "object", + "properties": { + "machineblockdevices": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineBlockDevices" + } + } + }, + "additionalProperties": false, + "required": [ + "machineblockdevices" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + } + }, + "EntityWatcherId": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "EntityWatcherId", + "Changes", + "Error" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachmenttag": { + "type": "string" + }, + "machinetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machinetag", + "attachmenttag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "MachineStorageIdsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineStorageIdsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "GetExposed": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "GetMachineActiveSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BoolResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Life", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachinePortRange": { + "type": "object", + "properties": { + "PortRange": { + "$ref": "#/definitions/PortRange" + }, + "RelationTag": { + "type": "string" + }, + "UnitTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UnitTag", + "RelationTag", + "PortRange" + ] + }, + "MachinePorts": { + "type": "object", + "properties": { + "MachineTag": { + "type": "string" + }, + "SubnetTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineTag", + "SubnetTag" + ] + }, + "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": [ + "Error", + "Ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "FromPort": { + "type": "integer" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "FromPort", + "ToPort", + "Protocol" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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, + "required": [ + "Error", + "Result" + ] + }, + "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" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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", + "Error" + ] + }, + "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": { + "ModelTag": { + "type": "string" + }, + "constraints": { + "$ref": "#/definitions/Value" + }, + "num-controllers": { + "type": "integer" + }, + "placement": { + "type": "array", + "items": { + "type": "string" + } + }, + "series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ModelTag", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HAMember": { + "type": "object", + "properties": { + "PublicAddress": { + "$ref": "#/definitions/Address" + }, + "Series": { + "type": "string" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "PublicAddress", + "Series" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Member": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "Arbiter": { + "type": "boolean" + }, + "BuildIndexes": { + "type": "boolean" + }, + "Hidden": { + "type": "boolean" + }, + "Id": { + "type": "integer" + }, + "Priority": { + "type": "number" + }, + "SlaveDelay": { + "type": "integer" + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Votes": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" + ] + }, + "MongoUpgradeResults": { + "type": "object", + "properties": { + "Master": { + "$ref": "#/definitions/HAMember" + }, + "Members": { + "type": "array", + "items": { + "$ref": "#/definitions/HAMember" + } + }, + "RsMembers": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "RsMembers", + "Master", + "Members" + ] + }, + "ResumeReplicationParams": { + "type": "object", + "properties": { + "Members": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" + } + } + }, + "additionalProperties": false, + "required": [ + "Members" + ] + }, + "UpgradeMongoParams": { + "type": "object", + "properties": { + "Target": { + "$ref": "#/definitions/Version" + } + }, + "additionalProperties": false, + "required": [ + "Target" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Version": { + "type": "object", + "properties": { + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "string" + }, + "StorageEngine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Patch", + "StorageEngine" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "ImageMetadata", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Delete": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataImageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" + } + } + }, + "Save": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetadataSaveParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateFromPublishedImages": { + "type": "object" + } + }, + "definitions": { + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image_id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root_storage_size": { + "type": "integer" + }, + "root_storage_type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt_type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image_id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "CloudImageMetadataList": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ImageMetadataFilter": { + "type": "object", + "properties": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { + "type": "string" + }, + "root-storage-type": { + "type": "string" + }, + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { + "type": "string" + }, + "virt_type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ListCloudImageMetadataResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MetadataImageIds": { + "type": "object", + "properties": { + "image_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image_ids" + ] + }, + "MetadataSaveParams": { + "type": "object", + "properties": { + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadataList" + } + } + }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "SpaceName": { + "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": [ + "Error", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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": [ + "Error", + "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": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "MachineAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineAddresses" + ] + }, + "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": [ + "Error", + "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": [ + "Error", + "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" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "ModifyUserSSHKeys": { + "type": "object", + "properties": { + "Keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "User": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "User", + "Keys" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "StringsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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, + "required": [ + "Error", + "Result" + ] + }, + "StringsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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": { + "ApplicationTag": { + "type": "string" + }, + "DurationSeconds": { + "type": "number" + }, + "UnitTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationTag", + "UnitTag", + "DurationSeconds" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "LifeResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Life", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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": [ + "Error", + "Result" + ] + }, + "StringResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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": { + "actiontag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "actiontag", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "MachineManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddMachines" + }, + "Result": { + "$ref": "#/definitions/AddMachinesResults" + } + } + } + }, + "definitions": { + "AddMachineParams": { + "type": "object", + "properties": { + "Addrs": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ContainerType": { + "type": "string" + }, + "Disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } + }, + "HardwareCharacteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "InstanceId": { + "type": "string" + }, + "Jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "Nonce": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/Placement" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Series", + "Constraints", + "Jobs", + "Disks", + "Placement", + "ParentId", + "ContainerType", + "InstanceId", + "Nonce", + "HardwareCharacteristics", + "Addrs" + ] + }, + "AddMachines": { + "type": "object", + "properties": { + "MachineParams": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineParams" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Machine": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Machine", + "Error" + ] + }, + "AddMachinesResults": { + "type": "object", + "properties": { + "Machines": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachinesResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Machines" + ] + }, + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "CpuCores": { + "type": "integer" + }, + "CpuPower": { + "type": "integer" + }, + "Mem": { + "type": "integer" + }, + "RootDisk": { + "type": "integer" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Placement": { + "type": "object", + "properties": { + "Directive": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Scope", + "Directive" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Machiner", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Jobs": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/JobsResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "SetMachineAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetObservedNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" + } + } + }, + "SetProviderNetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "Servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "Result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "Result" + ] + }, + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Info": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Status", + "Info", + "Data" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "Error" + ] + }, + "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", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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" + }, + "ConfigType": { + "type": "string" + }, + "DNSSearchDomains": { + "type": "array", + "items": { + "type": "string" + } + }, + "DNSServers": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceIndex": { + "type": "integer" + }, + "Disabled": { + "type": "boolean" + }, + "GatewayAddress": { + "type": "string" + }, + "InterfaceName": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "MACAddress": { + "type": "string" + }, + "MTU": { + "type": "integer" + }, + "NoAutoStart": { + "type": "boolean" + }, + "ParentInterfaceName": { + "type": "string" + }, + "ProviderAddressId": { + "type": "string" + }, + "ProviderId": { + "type": "string" + }, + "ProviderSpaceId": { + "type": "string" + }, + "ProviderSubnetId": { + "type": "string" + }, + "ProviderVLANId": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "DeviceIndex", + "MACAddress", + "CIDR", + "MTU", + "ProviderId", + "ProviderSubnetId", + "ProviderSpaceId", + "ProviderAddressId", + "ProviderVLANId", + "VLANTag", + "InterfaceName", + "ParentInterfaceName", + "InterfaceType", + "Disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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": { + "MachineAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddresses" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineAddresses" + ] + }, + "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": [ + "Error", + "Result" + ] + }, + "StringsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Code", + "Info", + "Error" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Metric": { + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "Time": { + "type": "string", + "format": "date-time" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value", + "Time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "CharmURL": { + "type": "string" + }, + "Created": { + "type": "string", + "format": "date-time" + }, + "Metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UUID", + "CharmURL", + "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" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MeterStatusParam": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "info": { + "type": "string" + }, + "tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "tag", + "code", + "info" + ] + }, + "MeterStatusParams": { + "type": "object", + "properties": { + "statues": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusParam" + } + } + }, + "additionalProperties": false, + "required": [ + "statues" + ] + }, + "MetricResult": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" + }, + "value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "time", + "key", + "value" + ] + }, + "MetricResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityMetrics" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "MetricsManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "CleanupOldMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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, + "required": [ + "phase", + "Error" + ] + }, + "PhaseResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/PhaseResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "MigrationMaster", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Export": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SerializedModel" + } + } + }, + "GetMigrationStatus": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/FullMigrationStatus" + } + } + }, + "SetPhase": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" + } + } + }, + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FullMigrationStatus": { + "type": "object", + "properties": { + "attempt": { + "type": "integer" + }, + "phase": { + "type": "string" + }, + "spec": { + "$ref": "#/definitions/ModelMigrationSpec" + } + }, + "additionalProperties": false, + "required": [ + "spec", + "attempt", + "phase" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "ModelMigrationSpec": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + }, + "target-info": { + "$ref": "#/definitions/ModelMigrationTargetInfo" + } + }, + "additionalProperties": false, + "required": [ + "model-tag", + "target-info" + ] + }, + "ModelMigrationTargetInfo": { + "type": "object", + "properties": { + "addrs": { + "type": "array", + "items": { + "type": "string" + } + }, + "auth-tag": { + "type": "string" + }, + "ca-cert": { + "type": "string" + }, + "controller-tag": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "controller-tag", + "addrs", + "ca-cert", + "auth-tag", + "password" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes" + ] + }, + "SetMigrationPhaseArgs": { + "type": "object", + "properties": { + "phase": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "phase" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "MigrationMinion", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "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": [ + "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" + } + } + }, + "Import": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SerializedModel" + } + } + } + }, + "definitions": { + "ModelArgs": { + "type": "object", + "properties": { + "model-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "model-tag" + ] + }, + "SerializedModel": { + "type": "object", + "properties": { + "bytes": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "bytes" + ] + } + } + } + }, + { + "Name": "ModelManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "ConfigSkeleton": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelSkeletonConfigArgs" + }, + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "CreateModel": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, + "Result": { + "$ref": "#/definitions/Model" + } + } + }, + "ListModels": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entity" + }, + "Result": { + "$ref": "#/definitions/UserModelList" + } + } + }, + "ModelInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ModelInfoResults" + } + } + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ModifyModelAccessRequest" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "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", + "Data", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "Model": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "OwnerTag": { + "type": "string" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Name", + "UUID", + "OwnerTag" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "ModelCreateArgs": { + "type": "object", + "properties": { + "Account": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "OwnerTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "OwnerTag", + "Account", + "Config" + ] + }, + "ModelInfo": { + "type": "object", + "properties": { + "Cloud": { + "type": "string" + }, + "DefaultSeries": { + "type": "string" + }, + "Life": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OwnerTag": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "ServerUUID": { + "type": "string" + }, + "Status": { + "$ref": "#/definitions/EntityStatus" + }, + "UUID": { + "type": "string" + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelUserInfo" + } + } + }, + "additionalProperties": false, + "required": [ + "Name", + "UUID", + "ServerUUID", + "ProviderType", + "DefaultSeries", + "Cloud", + "OwnerTag", + "Life", + "Status", + "Users" + ] + }, + "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" + ] + }, + "ModelSkeletonConfigArgs": { + "type": "object", + "properties": { + "Provider": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Provider", + "Region" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "displayname": { + "type": "string" + }, + "lastconnection": { + "type": "string", + "format": "date-time" + }, + "user": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user", + "displayname", + "lastconnection", + "access" + ] + }, + "ModifyModelAccess": { + "type": "object", + "properties": { + "access": { + "type": "string" + }, + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" + ] + }, + "UserModel": { + "type": "object", + "properties": { + "LastConnection": { + "type": "string", + "format": "date-time" + }, + "Model": { + "$ref": "#/definitions/Model" + } + }, + "additionalProperties": false, + "required": [ + "Model", + "LastConnection" + ] + }, + "UserModelList": { + "type": "object", + "properties": { + "UserModels": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } + } + }, + "additionalProperties": false, + "required": [ + "UserModels" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "NotifyWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" + }, + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" + } + } + }, + "DistributionGroup": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/DistributionGroupResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FindTools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FindToolsParams" + }, + "Result": { + "$ref": "#/definitions/FindToolsResult" + } + } + }, + "GetContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "MachinesWithTransientErrors": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PrepareContainerInterfaceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineNetworkConfigResults" + } + } + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfoResults" + } + } + }, + "ReleaseContainerAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Series": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "SetInstanceInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/InstancesInfo" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetSupportedContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineContainersParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Tools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchAllContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/WatchContainers" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachineErrorRetry": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "Servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Servers" + ] + }, + "Address": { + "type": "object", + "properties": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope" + ] + }, + "Binary": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "Series", + "Arch" + ] + }, + "BytesResult": { + "type": "object", + "properties": { + "Result": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "Result" + ] + }, + "CloudImageMetadata": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "image_id": { + "type": "string" + }, + "priority": { + "type": "integer" + }, + "region": { + "type": "string" + }, + "root_storage_size": { + "type": "integer" + }, + "root_storage_type": { + "type": "string" + }, + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt_type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "image_id", + "region", + "version", + "series", + "arch", + "source", + "priority" + ] + }, + "ConstraintsResult": { + "type": "object", + "properties": { + "Constraints": { + "$ref": "#/definitions/Value" + }, + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Constraints" + ] + }, + "ConstraintsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConstraintsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ContainerConfig": { + "type": "object", + "properties": { + "AllowLXCLoopMounts": { + "type": "boolean" + }, + "AptMirror": { + "type": "string" + }, + "AptProxy": { + "$ref": "#/definitions/Settings" + }, + "AuthorizedKeys": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "Proxy": { + "$ref": "#/definitions/Settings" + }, + "SSLHostnameVerification": { + "type": "boolean" + }, + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" + } + }, + "additionalProperties": false, + "required": [ + "ProviderType", + "AuthorizedKeys", + "SSLHostnameVerification", + "Proxy", + "AptProxy", + "AptMirror", + "AllowLXCLoopMounts", + "UpdateBehavior" + ] + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "ManagerConfig": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "ManagerConfig" + ] + }, + "ContainerManagerConfigParams": { + "type": "object", + "properties": { + "Type": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Type" + ] + }, + "DistributionGroupResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "FindToolsParams": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "MajorVersion": { + "type": "integer" + }, + "MinorVersion": { + "type": "integer" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Number", + "MajorVersion", + "MinorVersion", + "Arch", + "Series" + ] + }, + "FindToolsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "List", + "Error" + ] + }, + "HardwareCharacteristics": { + "type": "object", + "properties": { + "Arch": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "CpuCores": { + "type": "integer" + }, + "CpuPower": { + "type": "integer" + }, + "Mem": { + "type": "integer" + }, + "RootDisk": { + "type": "integer" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "HostPort": { + "type": "object", + "properties": { + "Address": { + "$ref": "#/definitions/Address" + }, + "Port": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Address", + "Port" + ] + }, + "InstanceInfo": { + "type": "object", + "properties": { + "Characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" + }, + "InstanceId": { + "type": "string" + }, + "NetworkConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + }, + "Nonce": { + "type": "string" + }, + "Tag": { + "type": "string" + }, + "VolumeAttachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "Volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "InstanceId", + "Nonce", + "Characteristics", + "Volumes", + "VolumeAttachments", + "NetworkConfig" + ] + }, + "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", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineContainers": { + "type": "object", + "properties": { + "ContainerTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "MachineTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineTag", + "ContainerTypes" + ] + }, + "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": [ + "Error", + "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" + }, + "ConfigType": { + "type": "string" + }, + "DNSSearchDomains": { + "type": "array", + "items": { + "type": "string" + } + }, + "DNSServers": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceIndex": { + "type": "integer" + }, + "Disabled": { + "type": "boolean" + }, + "GatewayAddress": { + "type": "string" + }, + "InterfaceName": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "MACAddress": { + "type": "string" + }, + "MTU": { + "type": "integer" + }, + "NoAutoStart": { + "type": "boolean" + }, + "ParentInterfaceName": { + "type": "string" + }, + "ProviderAddressId": { + "type": "string" + }, + "ProviderId": { + "type": "string" + }, + "ProviderSpaceId": { + "type": "string" + }, + "ProviderSubnetId": { + "type": "string" + }, + "ProviderVLANId": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "DeviceIndex", + "MACAddress", + "CIDR", + "MTU", + "ProviderId", + "ProviderSubnetId", + "ProviderSpaceId", + "ProviderAddressId", + "ProviderVLANId", + "VLANTag", + "InterfaceName", + "ParentInterfaceName", + "InterfaceType", + "Disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "Number": { + "type": "object", + "properties": { + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] + }, + "ProvisioningInfo": { + "type": "object", + "properties": { + "Constraints": { + "$ref": "#/definitions/Value" + }, + "EndpointBindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "ImageMetadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } + }, + "Jobs": { + "type": "array", + "items": { + "type": "string" + } + }, + "Placement": { + "type": "string" + }, + "Series": { + "type": "string" + }, + "SubnetsToZones": { + "type": "object", + "patternProperties": { + ".*": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeParams" + } + } + }, + "additionalProperties": false, + "required": [ + "Constraints", + "Series", + "Placement", + "Jobs", + "Volumes", + "Tags", + "SubnetsToZones", + "ImageMetadata", + "EndpointBindings" + ] + }, + "ProvisioningInfoResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "$ref": "#/definitions/ProvisioningInfo" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "ProvisioningInfoResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Settings": { + "type": "object", + "properties": { + "Ftp": { + "type": "string" + }, + "Http": { + "type": "string" + }, + "Https": { + "type": "string" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Http", + "Https", + "Ftp", + "NoProxy" + ] + }, + "StatusResult": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Id": { + "type": "string" + }, + "Info": { + "type": "string" + }, + "Life": { + "type": "string" + }, + "Since": { + "type": "string", + "format": "date-time" + }, + "Status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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": [ + "Error", + "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, + "required": [ + "Error", + "Result" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "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": { + "DisableSSLHostnameVerification": { + "type": "boolean" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "ToolsList": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "ToolsList", + "DisableSSLHostnameVerification", + "Error" + ] + }, + "ToolsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ToolsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "UpdateBehavior": { + "type": "object", + "properties": { + "EnableOSRefreshUpdate": { + "type": "boolean" + }, + "EnableOSUpgrade": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "EnableOSRefreshUpdate", + "EnableOSUpgrade" + ] + }, + "Value": { + "type": "object", + "properties": { + "arch": { + "type": "string" + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { + "type": "string" + }, + "mem": { + "type": "integer" + }, + "root-disk": { + "type": "integer" + }, + "spaces": { + "type": "array", + "items": { + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "busaddress": { + "type": "string" + }, + "devicelink": { + "type": "string" + }, + "devicename": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instanceid": { + "type": "string" + }, + "machinetag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volumeid": { + "type": "string" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "machinetag", + "provider" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardwareid": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volumeid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumeid", + "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" + } + } + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "size", + "provider" + ] + }, + "WatchContainer": { + "type": "object", + "properties": { + "ContainerType": { + "type": "string" + }, + "MachineTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineTag", + "ContainerType" + ] + }, + "WatchContainers": { + "type": "object", + "properties": { + "Params": { + "type": "array", + "items": { + "$ref": "#/definitions/WatchContainer" + } + } + }, + "additionalProperties": false, + "required": [ + "Params" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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" + }, + "NoProxy": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "HTTP", + "HTTPS", + "FTP", + "NoProxy" + ] + }, + "ProxyConfigResult": { + "type": "object", + "properties": { + "APTProxySettings": { + "$ref": "#/definitions/ProxyConfig" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "ProxySettings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "ProxySettings", + "APTProxySettings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProxyConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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 + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "Changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "Departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Changed", + "Departed" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "RelationUnitsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "RelationUnitsWatcherId", + "Changes", + "Error" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "Version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Version" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "RetryStrategy": { + "type": "object", + "properties": { + "JitterRetryTime": { + "type": "boolean" + }, + "MaxRetryTime": { + "type": "integer" + }, + "MinRetryTime": { + "type": "integer" + }, + "RetryTimeFactor": { + "type": "integer" + }, + "ShouldRetry": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "ShouldRetry", + "MinRetryTime", + "MaxRetryTime", + "JitterRetryTime", + "RetryTimeFactor" + ] + }, + "RetryStrategyResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "$ref": "#/definitions/RetryStrategy" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "RetryStrategyResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/RetryStrategyResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "SSHClient", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "SSHAddressResult": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false + }, + "SSHAddressResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHAddressResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "SSHProxyResult": { + "type": "object", + "properties": { + "use-proxy": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "use-proxy" + ] + }, + "SSHPublicKeysResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "public-keys": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + "SSHPublicKeysResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSHPublicKeysResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Singular", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Claim": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SingularClaims" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Wait": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "SingularClaim": { + "type": "object", + "properties": { + "ControllerTag": { + "type": "string" + }, + "Duration": { + "type": "integer" + }, + "ModelTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ModelTag", + "ControllerTag", + "Duration" + ] + }, + "SingularClaims": { + "type": "object", + "properties": { + "Claims": { + "type": "array", + "items": { + "$ref": "#/definitions/SingularClaim" + } + } + }, + "additionalProperties": false, + "required": [ + "Claims" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Spaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CreateSpaces": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CreateSpacesParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ListSpaces": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ListSpacesResults" + } + } + } + }, + "definitions": { + "CreateSpaceParams": { + "type": "object", + "properties": { + "ProviderId": { + "type": "string" + }, + "Public": { + "type": "boolean" + }, + "SpaceTag": { + "type": "string" + }, + "SubnetTags": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "SubnetTags", + "SpaceTag", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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" + }, + "ProviderId": { + "type": "string" + }, + "SpaceTag": { + "type": "string" + }, + "StaticRangeHighIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "StaticRangeLowIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "Status": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + }, + "Zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "CIDR", + "VLANTag", + "Life", + "SpaceTag", + "Zones" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "StatusHistory", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Prune": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StatusHistoryPruneArgs" + } + } + } + }, + "definitions": { + "StatusHistoryPruneArgs": { + "type": "object", + "properties": { + "MaxHistoryMB": { + "type": "integer" + }, + "MaxHistoryTime": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "MaxHistoryTime", + "MaxHistoryMB" + ] + } + } + } + }, + { + "Name": "Storage", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddToUnit": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CreatePool": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "ListFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemFilters" + }, + "Result": { + "$ref": "#/definitions/FilesystemDetailsListResults" + } + } + }, + "ListPools": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragePoolFilters" + }, + "Result": { + "$ref": "#/definitions/StoragePoolsResults" + } + } + }, + "ListStorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageFilters" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsListResults" + } + } + }, + "ListVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeFilters" + }, + "Result": { + "$ref": "#/definitions/VolumeDetailsListResults" + } + } + }, + "StorageDetails": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageDetailsResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "EntityStatus": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Info": { + "type": "string" + }, + "Since": { + "type": "string", + "format": "date-time" + }, + "Status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Status", + "Info", + "Data", + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mountpoint": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemDetails": { + "type": "object", + "properties": { + "filesystemtag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "machineattachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystemtag", + "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": { + "filesystemid": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystemid", + "size" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "StorageAddParams": { + "type": "object", + "properties": { + "StorageName": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "StorageName", + "storage" + ] + }, + "StorageAttachmentDetails": { + "type": "object", + "properties": { + "location": { + "type": "string" + }, + "machinetag": { + "type": "string" + }, + "storagetag": { + "type": "string" + }, + "unittag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storagetag", + "unittag", + "machinetag" + ] + }, + "StorageConstraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "StorageDetails": { + "type": "object", + "properties": { + "Persistent": { + "type": "boolean" + }, + "attachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StorageAttachmentDetails" + } + } + }, + "kind": { + "type": "integer" + }, + "ownertag": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storagetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storagetag", + "ownertag", + "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" + }, + "storagepools": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePool" + } + } + }, + "additionalProperties": false + }, + "StoragePoolsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/StoragePoolsResult" + } + } + }, + "additionalProperties": false + }, + "StoragesAddParams": { + "type": "object", + "properties": { + "storages": { + "type": "array", + "items": { + "$ref": "#/definitions/StorageAddParams" + } + } + }, + "additionalProperties": false, + "required": [ + "storages" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "busaddress": { + "type": "string" + }, + "devicelink": { + "type": "string" + }, + "devicename": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeDetails": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "machineattachments": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/VolumeAttachmentInfo" + } + } + }, + "status": { + "$ref": "#/definitions/EntityStatus" + }, + "storage": { + "$ref": "#/definitions/StorageDetails" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "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": { + "hardwareid": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volumeid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumeid", + "size", + "persistent" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "StorageProvisioner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentParamsResults" + } + } + }, + "FilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/FilesystemAttachmentResults" + } + } + }, + "FilesystemParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemParamsResults" + } + } + }, + "Filesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/FilesystemResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RemoveAttachment": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/FilesystemAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetFilesystemInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Filesystems" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeAttachmentInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/VolumeAttachments" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetVolumeInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Volumes" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentParamsResults" + } + } + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/VolumeAttachmentResults" + } + } + }, + "VolumeBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachineStorageIds" + }, + "Result": { + "$ref": "#/definitions/BlockDeviceResults" + } + } + }, + "VolumeParams": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeParamsResults" + } + } + }, + "Volumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/VolumeResults" + } + } + }, + "WatchBlockDevices": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchFilesystemAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchFilesystems": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchMachines": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchVolumeAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResults" + } + } + }, + "WatchVolumes": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "BlockDevice": { + "type": "object", + "properties": { + "BusAddress": { + "type": "string" + }, + "DeviceLinks": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceName": { + "type": "string" + }, + "FilesystemType": { + "type": "string" + }, + "HardwareId": { + "type": "string" + }, + "InUse": { + "type": "boolean" + }, + "Label": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Size": { + "type": "integer" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" + ] + }, + "BlockDeviceResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/BlockDevice" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "BlockDeviceResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/BlockDeviceResult" + } + } + }, + "additionalProperties": false + }, + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Info": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Status", + "Info", + "Data" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Filesystem": { + "type": "object", + "properties": { + "filesystemtag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemInfo" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystemtag", + "info" + ] + }, + "FilesystemAttachment": { + "type": "object", + "properties": { + "filesystemtag": { + "type": "string" + }, + "info": { + "$ref": "#/definitions/FilesystemAttachmentInfo" + }, + "machinetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystemtag", + "machinetag", + "info" + ] + }, + "FilesystemAttachmentInfo": { + "type": "object", + "properties": { + "mountpoint": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "FilesystemAttachmentParams": { + "type": "object", + "properties": { + "filesystemid": { + "type": "string" + }, + "filesystemtag": { + "type": "string" + }, + "instanceid": { + "type": "string" + }, + "machinetag": { + "type": "string" + }, + "mountpoint": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "filesystemtag", + "machinetag", + "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": { + "filesystemattachments": { + "type": "array", + "items": { + "$ref": "#/definitions/FilesystemAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "filesystemattachments" + ] + }, + "FilesystemInfo": { + "type": "object", + "properties": { + "filesystemid": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "filesystemid", + "size" + ] + }, + "FilesystemParams": { + "type": "object", + "properties": { + "attachment": { + "$ref": "#/definitions/FilesystemAttachmentParams" + }, + "attributes": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "filesystemtag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "tags": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "filesystemtag", + "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", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachmenttag": { + "type": "string" + }, + "machinetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machinetag", + "attachmenttag" + ] + }, + "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" + }, + "MachineStorageIdsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineStorageIdsWatcherId", + "Changes", + "Error" + ] + }, + "MachineStorageIdsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Volume": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "info" + ] + }, + "VolumeAttachment": { + "type": "object", + "properties": { + "info": { + "$ref": "#/definitions/VolumeAttachmentInfo" + }, + "machinetag": { + "type": "string" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "machinetag", + "info" + ] + }, + "VolumeAttachmentInfo": { + "type": "object", + "properties": { + "busaddress": { + "type": "string" + }, + "devicelink": { + "type": "string" + }, + "devicename": { + "type": "string" + }, + "read-only": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "VolumeAttachmentParams": { + "type": "object", + "properties": { + "instanceid": { + "type": "string" + }, + "machinetag": { + "type": "string" + }, + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volumeid": { + "type": "string" + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "machinetag", + "provider" + ] + }, + "VolumeAttachmentParamsResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachmentParams" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentParamsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentParamsResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachmentResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/VolumeAttachment" + } + }, + "additionalProperties": false, + "required": [ + "result" + ] + }, + "VolumeAttachmentResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachmentResult" + } + } + }, + "additionalProperties": false + }, + "VolumeAttachments": { + "type": "object", + "properties": { + "volumeattachments": { + "type": "array", + "items": { + "$ref": "#/definitions/VolumeAttachment" + } + } + }, + "additionalProperties": false, + "required": [ + "volumeattachments" + ] + }, + "VolumeInfo": { + "type": "object", + "properties": { + "hardwareid": { + "type": "string" + }, + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volumeid": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumeid", + "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" + } + } + }, + "volumetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "volumetag", + "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" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "StringsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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": { + "SpaceTag": { + "type": "string" + }, + "SubnetProviderId": { + "type": "string" + }, + "SubnetTag": { + "type": "string" + }, + "Zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "SpaceTag" + ] + }, + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "SpaceResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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" + }, + "ProviderId": { + "type": "string" + }, + "SpaceTag": { + "type": "string" + }, + "StaticRangeHighIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "StaticRangeLowIP": { + "type": "array", + "items": { + "type": "integer" + } + }, + "Status": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + }, + "Zones": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "CIDR", + "VLANTag", + "Life", + "SpaceTag", + "Zones" + ] + }, + "SubnetsFilters": { + "type": "object", + "properties": { + "SpaceTag": { + "type": "string" + }, + "Zone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ZoneResult": { + "type": "object", + "properties": { + "Available": { + "type": "boolean" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Name", + "Available" + ] + }, + "ZoneResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ZoneResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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": { + "GlobalName": { + "type": "string" + }, + "IsSystem": { + "type": "boolean" + }, + "Life": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UUID", + "Name", + "GlobalName", + "IsSystem", + "Life" + ] + }, + "UndertakerModelInfoResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "$ref": "#/definitions/UndertakerModelInfo" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "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" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Uniter", + "Version": 4, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "APIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "Actions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionResults" + } + } + }, + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AddUnitStorage": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StoragesAddParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "AllMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MachinePortsResults" + } + } + }, + "ApplicationOwner": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ApplicationStatusResults" + } + } + }, + "AssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "AvailabilityZone": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "BeginActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "CharmArchiveSha256": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmURLs" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "CharmModifiedVersion": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/IntResults" + } + } + }, + "CharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "ClearResolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ClosePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ConfigSettingsResults" + } + } + }, + "CurrentModel": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelResult" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyAllSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "DestroyUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnsureDead": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnterScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "FinishActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "GetMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MeterStatusResults" + } + } + }, + "GetPrincipal": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringBoolResults" + } + } + }, + "HasSubordinates": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "JoinedRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "LeaveScope": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "Merge": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MergeLeadershipSettingsBulkParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UnitsNetworkConfig" + }, + "Result": { + "$ref": "#/definitions/UnitNetworkConfigResults" + } + } + }, + "OpenPorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesPortRanges" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "PrivateAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "ProviderType": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "Read": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/GetLeadershipSettingsBulkResults" + } + } + }, + "ReadRemoteSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitPairs" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "ReadSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/SettingsResults" + } + } + }, + "Relation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RelationById": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationIds" + }, + "Result": { + "$ref": "#/definitions/RelationResults" + } + } + }, + "RemoveStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "RequestReboot": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Resolved": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ResolvedModeResults" + } + } + }, + "SetAgentStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetApplicationStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntitiesCharmURL" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetUnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StorageAttachmentLife": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "StorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentResults" + } + } + }, + "UnitStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "UnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StorageAttachmentIdsResults" + } + } + }, + "UpdateSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnitsSettings" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchActionNotifications": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchApplicationRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, + "WatchConfigSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchLeadershipSettings": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchMeterStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchRelationUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/RelationUnits" + }, + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResults" + } + } + }, + "WatchStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/StorageAttachmentIds" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + }, + "WatchUnitStorageAttachments": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "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": { + "actiontag": { + "type": "string" + }, + "message": { + "type": "string" + }, + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "actiontag", + "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" + }, + "SpaceName": { + "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", + "Error" + ] + }, + "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": [ + "Error", + "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" + ] + }, + "CharmURL": { + "type": "object", + "properties": { + "URL": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "URL" + ] + }, + "CharmURLs": { + "type": "object", + "properties": { + "URLs": { + "type": "array", + "items": { + "$ref": "#/definitions/CharmURL" + } + } + }, + "additionalProperties": false, + "required": [ + "URLs" + ] + }, + "ConfigSettingsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Settings" + ] + }, + "ConfigSettingsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigSettingsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Endpoint": { + "type": "object", + "properties": { + "ApplicationName": { + "type": "string" + }, + "Relation": { + "$ref": "#/definitions/Relation" + } + }, + "additionalProperties": false, + "required": [ + "ApplicationName", + "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": { + "CharmURL": { + "type": "string" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "CharmURL" + ] + }, + "EntityPortRange": { + "type": "object", + "properties": { + "FromPort": { + "type": "integer" + }, + "Protocol": { + "type": "string" + }, + "Tag": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Protocol", + "FromPort", + "ToPort" + ] + }, + "EntityStatusArgs": { + "type": "object", + "properties": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Info": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Status", + "Info", + "Data" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] + }, + "ErrorInfo": { + "type": "object", + "properties": { + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "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", + "Error" + ] + }, + "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": [ + "Error", + "Result" + ] + }, + "IntResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "LifeResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Life", + "Error" + ] + }, + "LifeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachinePortRange": { + "type": "object", + "properties": { + "PortRange": { + "$ref": "#/definitions/PortRange" + }, + "RelationTag": { + "type": "string" + }, + "UnitTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UnitTag", + "RelationTag", + "PortRange" + ] + }, + "MachinePortsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Ports" + ] + }, + "MachinePortsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "MergeLeadershipSettingsBulkParams": { + "type": "object", + "properties": { + "Params": { + "type": "array", + "items": { + "$ref": "#/definitions/MergeLeadershipSettingsParam" + } + } + }, + "additionalProperties": false, + "required": [ + "Params" + ] + }, + "MergeLeadershipSettingsParam": { + "type": "object", + "properties": { + "ApplicationTag": { + "type": "string" + }, + "Settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "ApplicationTag", + "Settings" + ] + }, + "MeterStatusResult": { + "type": "object", + "properties": { + "Code": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Info": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Code", + "Info", + "Error" + ] + }, + "MeterStatusResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MeterStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Metric": { + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "Time": { + "type": "string", + "format": "date-time" + }, + "Value": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value", + "Time" + ] + }, + "MetricBatch": { + "type": "object", + "properties": { + "CharmURL": { + "type": "string" + }, + "Created": { + "type": "string", + "format": "date-time" + }, + "Metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UUID", + "CharmURL", + "Created", + "Metrics" + ] + }, + "MetricBatchParam": { + "type": "object", + "properties": { + "Batch": { + "$ref": "#/definitions/MetricBatch" + }, + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Batch" + ] + }, + "MetricBatchParams": { + "type": "object", + "properties": { + "Batches": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricBatchParam" + } + } + }, + "additionalProperties": false, + "required": [ + "Batches" + ] + }, + "ModelConfigResult": { + "type": "object", + "properties": { + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "ModelResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Name": { + "type": "string" + }, + "UUID": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Name", + "UUID" + ] + }, + "NetworkConfig": { + "type": "object", + "properties": { + "Address": { + "type": "string" + }, + "CIDR": { + "type": "string" + }, + "ConfigType": { + "type": "string" + }, + "DNSSearchDomains": { + "type": "array", + "items": { + "type": "string" + } + }, + "DNSServers": { + "type": "array", + "items": { + "type": "string" + } + }, + "DeviceIndex": { + "type": "integer" + }, + "Disabled": { + "type": "boolean" + }, + "GatewayAddress": { + "type": "string" + }, + "InterfaceName": { + "type": "string" + }, + "InterfaceType": { + "type": "string" + }, + "MACAddress": { + "type": "string" + }, + "MTU": { + "type": "integer" + }, + "NoAutoStart": { + "type": "boolean" + }, + "ParentInterfaceName": { + "type": "string" + }, + "ProviderAddressId": { + "type": "string" + }, + "ProviderId": { + "type": "string" + }, + "ProviderSpaceId": { + "type": "string" + }, + "ProviderSubnetId": { + "type": "string" + }, + "ProviderVLANId": { + "type": "string" + }, + "VLANTag": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "DeviceIndex", + "MACAddress", + "CIDR", + "MTU", + "ProviderId", + "ProviderSubnetId", + "ProviderSpaceId", + "ProviderAddressId", + "ProviderVLANId", + "VLANTag", + "InterfaceName", + "ParentInterfaceName", + "InterfaceType", + "Disabled" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "NotifyWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "FromPort": { + "type": "integer" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "FromPort", + "ToPort", + "Protocol" + ] + }, + "Relation": { + "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" + ] + }, + "RelationIds": { + "type": "object", + "properties": { + "RelationIds": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "RelationIds" + ] + }, + "RelationResult": { + "type": "object", + "properties": { + "Endpoint": { + "$ref": "#/definitions/Endpoint" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Id": { + "type": "integer" + }, + "Key": { + "type": "string" + }, + "Life": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Life", + "Id", + "Key", + "Endpoint" + ] + }, + "RelationResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "RelationUnit": { + "type": "object", + "properties": { + "Relation": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Relation", + "Unit" + ] + }, + "RelationUnitPair": { + "type": "object", + "properties": { + "LocalUnit": { + "type": "string" + }, + "Relation": { + "type": "string" + }, + "RemoteUnit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Relation", + "LocalUnit", + "RemoteUnit" + ] + }, + "RelationUnitPairs": { + "type": "object", + "properties": { + "RelationUnitPairs": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitPair" + } + } + }, + "additionalProperties": false, + "required": [ + "RelationUnitPairs" + ] + }, + "RelationUnitSettings": { + "type": "object", + "properties": { + "Relation": { + "type": "string" + }, + "Settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "Unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Relation", + "Unit", + "Settings" + ] + }, + "RelationUnits": { + "type": "object", + "properties": { + "RelationUnits": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnit" + } + } + }, + "additionalProperties": false, + "required": [ + "RelationUnits" + ] + }, + "RelationUnitsChange": { + "type": "object", + "properties": { + "Changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "Departed": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "Changed", + "Departed" + ] + }, + "RelationUnitsSettings": { + "type": "object", + "properties": { + "RelationUnits": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationUnitSettings" + } + } + }, + "additionalProperties": false, + "required": [ + "RelationUnits" + ] + }, + "RelationUnitsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "RelationUnitsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "RelationUnitsWatcherId", + "Changes", + "Error" + ] + }, + "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": [ + "Error", + "Mode" + ] + }, + "ResolvedModeResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ResolvedModeResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "SetStatus": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityStatusArgs" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "SettingsResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Settings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "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": [ + "Error", + "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": { + "StorageName": { + "type": "string" + }, + "storage": { + "$ref": "#/definitions/StorageConstraints" + }, + "unit": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "unit", + "StorageName", + "storage" + ] + }, + "StorageAttachment": { + "type": "object", + "properties": { + "Kind": { + "type": "integer" + }, + "Life": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "OwnerTag": { + "type": "string" + }, + "StorageTag": { + "type": "string" + }, + "UnitTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StorageTag", + "OwnerTag", + "UnitTag", + "Kind", + "Location", + "Life" + ] + }, + "StorageAttachmentId": { + "type": "object", + "properties": { + "storagetag": { + "type": "string" + }, + "unittag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "storagetag", + "unittag" + ] + }, + "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, + "required": [ + "Pool", + "Size", + "Count" + ] + }, + "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": [ + "Error", + "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": [ + "Error", + "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, + "required": [ + "Error", + "Result" + ] + }, + "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" + }, + "StringsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "StringsWatcherId", + "Changes", + "Error" + ] + }, + "StringsWatchResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "UnitNetworkConfig": { + "type": "object", + "properties": { + "BindingName": { + "type": "string" + }, + "UnitTag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "UnitTag", + "BindingName" + ] + }, + "UnitNetworkConfigResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Info" + ] + }, + "UnitNetworkConfigResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfigResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "UnitSettings": { + "type": "object", + "properties": { + "Version": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Version" + ] + }, + "UnitsNetworkConfig": { + "type": "object", + "properties": { + "Args": { + "type": "array", + "items": { + "$ref": "#/definitions/UnitNetworkConfig" + } + } + }, + "additionalProperties": false, + "required": [ + "Args" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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": { + "AgentTools": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityVersion" + } + } + }, + "additionalProperties": false, + "required": [ + "AgentTools" + ] + }, + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] + }, + "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": { + "DisableSSLHostnameVerification": { + "type": "boolean" + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "ToolsList": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } + } + }, + "additionalProperties": false, + "required": [ + "ToolsList", + "DisableSSLHostnameVerification", + "Error" + ] + }, + "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, + "required": [ + "Version", + "Error" + ] + }, + "VersionResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/VersionResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "UserManager", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AddUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddUsers" + }, + "Result": { + "$ref": "#/definitions/AddUserResults" + } + } + }, + "CreateLocalLoginMacaroon": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/MacaroonResults" + } + } + }, + "DisableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "EnableUser": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPassword": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UserInfoRequest" + }, + "Result": { + "$ref": "#/definitions/UserInfoResults" + } + } + } + }, + "definitions": { + "AddUser": { + "type": "object", + "properties": { + "display-name": { + "type": "string" + }, + "model-access-permission": { + "type": "string" + }, + "password": { + "type": "string" + }, + "shared-model-tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "username", + "display-name", + "shared-model-tags" + ] + }, + "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, + "additionalProperties": false, + "required": [ + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MacaroonResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Macaroon" + } + }, + "additionalProperties": false + }, + "MacaroonResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/MacaroonResult" + } + } + }, + "additionalProperties": false, + "required": [ + "results" + ] + }, + "UserInfo": { + "type": "object", + "properties": { + "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", + "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" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "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" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } + }, + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } + } + }, + "additionalProperties": false, + "required": [ + "data", + "location", + "id", + "caveats", + "sig" + ] + }, + "MachineStorageId": { + "type": "object", + "properties": { + "attachmenttag": { + "type": "string" + }, + "machinetag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "machinetag", + "attachmenttag" + ] + }, + "MachineStorageIdsWatchResult": { + "type": "object", + "properties": { + "Changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "MachineStorageIdsWatcherId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "MachineStorageIdsWatcherId", + "Changes", + "Error" + ] + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] + }, + "packet": { + "type": "object", + "properties": { + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + } +] diff --git a/juju/client/watcher.py b/juju/client/watcher.py index 346627c..8d7e15c 100644 --- a/juju/client/watcher.py +++ b/juju/client/watcher.py @@ -1,11 +1,11 @@ -from .client import AllWatcher as BaseAllWatcher -from .client import Client +from .client import AllWatcherFacade as BaseAllWatcher +from .client import ClientFacade class AllWatcher(BaseAllWatcher): async def rpc(self, msg): if not hasattr(self, 'Id'): - client = Client() + client = ClientFacade() client.connect(self.connection) result = await client.WatchAll() diff --git a/juju/model.py b/juju/model.py index 2ef903b..dce4697 100644 --- a/juju/model.py +++ b/juju/model.py @@ -16,6 +16,9 @@ class ModelEntity(object): self.data = data self.model = model + def __getattr__(self, name): + return self.data[name] + class Model(object): def __init__(self, connection): diff --git a/juju/unit.py b/juju/unit.py index 4d75484..2b7170e 100644 --- a/juju/unit.py +++ b/juju/unit.py @@ -1,7 +1,15 @@ +import logging + from . import model +from .client import client + +log = logging.getLogger(__name__) class Unit(model.ModelEntity): + def _get_tag(self): + return 'unit-{}'.format(self.data['Name'].replace('/', '-')) + def add_storage(self, name, constraints=None): """Add unit storage dynamically. @@ -42,14 +50,27 @@ class Unit(model.ModelEntity): """ pass - def run(self, command, timeout=None): + async def run(self, command, timeout=None): """Run command on this unit. :param str command: The command to run :param int timeout: Time to wait before command is considered failed """ - pass + action = client.ActionFacade() + conn = await self.model.connection.clone() + action.connect(conn) + + log.debug( + 'Running `%s` on %s', command, self.Name) + + return await action.Run( + [], + command, + [], + timeout, + [self.Name], + ) def run_action(self, action_name, **params): """Run action on this unit. diff --git a/tests/client/test_client.py b/tests/client/test_client.py index e31a69a..cdc29dc 100644 --- a/tests/client/test_client.py +++ b/tests/client/test_client.py @@ -14,7 +14,7 @@ class UserManagerTest(unittest.TestCase): conn = loop.run_until_complete( Connection.connect_current()) - um = client.UserManager() + um = client.UserManagerFacade() um.connect(conn) result = loop.run_until_complete( um.UserInfo([client.Entity('user-admin')], True)) -- 2.25.1