From: Tim Van Steenburgh Date: Fri, 10 Jun 2016 02:25:03 +0000 (-0400) Subject: FullStatus example X-Git-Tag: 0.1.0~92 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=7d8aa55bcfc13519a9b37b49e4d7a542f0adcd43;p=osm%2FN2VC.git FullStatus example --- diff --git a/examples/fullstatus.py b/examples/fullstatus.py new file mode 100644 index 0000000..55c86f8 --- /dev/null +++ b/examples/fullstatus.py @@ -0,0 +1,26 @@ +import asyncio + +from juju.client.connection import Connection +from juju.client.client import Client + + +loop = asyncio.get_event_loop() +conn = loop.run_until_complete(Connection.connect_current()) + + +async def status(): + client = Client() + client.connect(conn) + + patterns = None + status = await client.FullStatus(patterns) + await conn.close() + + print('Services:', list(status.services.keys())) + print('Machines:', list(status.machines.keys())) + print('Relations:', status.relations) + + return status + +loop.run_until_complete(status()) +loop.stop() diff --git a/juju/client/_client.py b/juju/client/_client.py index f4b5b56..68dd8bf 100644 --- a/juju/client/_client.py +++ b/juju/client/_client.py @@ -1,9 +1,12 @@ +# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. +# Changes will be overwritten/lost when the file is regenerated. from juju.client.facade import Type, ReturnMapping - + + class Action(Type): - _toSchema = {'name': 'name', 'tag': 'tag', 'receiver': 'receiver', 'parameters': 'parameters'} - _toPy = {'name': 'name', 'tag': 'tag', 'receiver': 'receiver', 'parameters': 'parameters'} + _toSchema = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'} + _toPy = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'} def __init__(self, name=None, parameters=None, receiver=None, tag=None): ''' name : str @@ -18,8 +21,8 @@ class Action(Type): class ActionResult(Type): - _toSchema = {'message': 'message', 'status': 'status', 'enqueued': 'enqueued', 'action': 'action', 'output': 'output', 'completed': 'completed', 'started': 'started', 'error': 'error'} - _toPy = {'message': 'message', 'status': 'status', 'enqueued': 'enqueued', 'action': 'action', 'output': 'output', 'completed': 'completed', 'started': 'started', 'error': 'error'} + _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'} def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None): ''' action : Action @@ -51,31 +54,19 @@ class ActionResults(Type): self.results = [ActionResult.from_json(o) for o in results or []] -class ActionSpec(Type): - _toSchema = {'params': 'Params', 'description': 'Description'} - _toPy = {'Params': 'params', 'Description': 'description'} - 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 = {'actionspecs': 'ActionSpecs'} - _toPy = {'ActionSpecs': 'actionspecs'} - def __init__(self, actionspecs=None): + _toSchema = {'actions': 'actions'} + _toPy = {'actions': 'actions'} + def __init__(self, actions=None): ''' - actionspecs : typing.Mapping[str, ~ActionSpec] + actions : typing.Sequence[~Action] ''' - self.actionspecs = {k: ActionSpec.from_json(v) for k, v in (actionspecs or dict()).items()} + self.actions = [Action.from_json(o) for o in actions or []] class ActionsByName(Type): - _toSchema = {'name': 'name', 'actions': 'actions', 'error': 'error'} - _toPy = {'name': 'name', 'actions': 'actions', 'error': 'error'} + _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'} + _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'} def __init__(self, actions=None, error=None, name=None): ''' actions : typing.Sequence[~ActionResult] @@ -98,8 +89,8 @@ class ActionsByNames(Type): class ActionsByReceiver(Type): - _toSchema = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'} - _toPy = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'} + _toSchema = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'} + _toPy = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'} def __init__(self, actions=None, error=None, receiver=None): ''' actions : typing.Sequence[~ActionResult] @@ -121,30 +112,6 @@ 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'} @@ -166,8 +133,8 @@ class Entity(Type): class Error(Type): - _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'} - _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'} + _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'} + _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'} def __init__(self, code=None, info=None, message=None): ''' code : str @@ -180,8 +147,8 @@ class Error(Type): class ErrorInfo(Type): - _toSchema = {'macaroon': 'Macaroon', 'macaroonpath': 'MacaroonPath'} - _toPy = {'Macaroon': 'macaroon', 'MacaroonPath': 'macaroonpath'} + _toSchema = {'macaroonpath': 'MacaroonPath', 'macaroon': 'Macaroon'} + _toPy = {'MacaroonPath': 'macaroonpath', 'Macaroon': 'macaroon'} def __init__(self, macaroon=None, macaroonpath=None): ''' macaroon : Macaroon @@ -222,8 +189,8 @@ class FindTagsResults(Type): class Macaroon(Type): - _toSchema = {'sig': 'sig', 'caveats': 'caveats', 'location': 'location', 'id_': 'id', 'data': 'data'} - _toPy = {'caveats': 'caveats', 'id': 'id_', 'sig': 'sig', 'location': 'location', 'data': 'data'} + _toSchema = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id_': 'id', 'data': 'data'} + _toPy = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id': 'id_', 'data': 'data'} def __init__(self, caveats=None, data=None, id_=None, location=None, sig=None): ''' caveats : typing.Sequence[~caveat] @@ -240,26 +207,50 @@ class Macaroon(Type): class RunParams(Type): - _toSchema = {'timeout': 'Timeout', 'commands': 'Commands', 'units': 'Units', 'machines': 'Machines', 'applications': 'Applications'} - _toPy = {'Commands': 'commands', 'Timeout': 'timeout', 'Machines': 'machines', 'Applications': 'applications', 'Units': 'units'} - def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None): + _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): ''' - 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 = {'caveatid': 'caveatId', 'verificationid': 'verificationId', 'location': 'location'} - _toPy = {'verificationId': 'verificationid', 'location': 'location', 'caveatId': 'caveatid'} + _toSchema = {'location': 'location', 'caveatid': 'caveatId', 'verificationid': 'verificationId'} + _toPy = {'location': 'location', 'caveatId': 'caveatid', 'verificationId': 'verificationid'} def __init__(self, caveatid=None, location=None, verificationid=None): ''' caveatid : packet @@ -273,7 +264,7 @@ class caveat(Type): class packet(Type): _toSchema = {'headerlen': 'headerLen', 'start': 'start', 'totallen': 'totalLen'} - _toPy = {'totalLen': 'totallen', 'start': 'start', 'headerLen': 'headerlen'} + _toPy = {'totalLen': 'totallen', 'headerLen': 'headerlen', 'start': 'start'} def __init__(self, headerlen=None, start=None, totallen=None): ''' headerlen : int @@ -286,8 +277,8 @@ class packet(Type): class BoolResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -298,8 +289,8 @@ class BoolResult(Type): class EntitiesWatchResult(Type): - _toSchema = {'changes': 'Changes', 'entitywatcherid': 'EntityWatcherId', 'error': 'Error'} - _toPy = {'Changes': 'changes', 'EntityWatcherId': 'entitywatcherid', 'Error': 'error'} + _toSchema = {'changes': 'Changes', 'error': 'Error', 'entitywatcherid': 'EntityWatcherId'} + _toPy = {'Changes': 'changes', 'Error': 'error', 'EntityWatcherId': 'entitywatcherid'} def __init__(self, changes=None, entitywatcherid=None, error=None): ''' changes : typing.Sequence[str] @@ -312,8 +303,8 @@ class EntitiesWatchResult(Type): class ErrorResult(Type): - _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'} - _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'} + _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'} + _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'} def __init__(self, code=None, info=None, message=None): ''' code : str @@ -326,8 +317,8 @@ class ErrorResult(Type): class AgentGetEntitiesResult(Type): - _toSchema = {'jobs': 'Jobs', 'containertype': 'ContainerType', 'life': 'Life', 'error': 'Error'} - _toPy = {'Life': 'life', 'ContainerType': 'containertype', 'Jobs': 'jobs', 'Error': 'error'} + _toSchema = {'containertype': 'ContainerType', 'error': 'Error', 'life': 'Life', 'jobs': 'Jobs'} + _toPy = {'Error': 'error', 'Jobs': 'jobs', 'ContainerType': 'containertype', 'Life': 'life'} def __init__(self, containertype=None, error=None, jobs=None, life=None): ''' containertype : str @@ -404,8 +395,8 @@ class ModelConfigResult(Type): class NotifyWatchResult(Type): - _toSchema = {'notifywatcherid': 'NotifyWatcherId', 'error': 'Error'} - _toPy = {'NotifyWatcherId': 'notifywatcherid', 'Error': 'error'} + _toSchema = {'error': 'Error', 'notifywatcherid': 'NotifyWatcherId'} + _toPy = {'Error': 'error', 'NotifyWatcherId': 'notifywatcherid'} def __init__(self, error=None, notifywatcherid=None): ''' error : Error @@ -416,8 +407,8 @@ class NotifyWatchResult(Type): class StateServingInfo(Type): - _toSchema = {'caprivatekey': 'CAPrivateKey', 'systemidentity': 'SystemIdentity', 'cert': 'Cert', 'apiport': 'APIPort', 'privatekey': 'PrivateKey', 'stateport': 'StatePort', 'sharedsecret': 'SharedSecret'} - _toPy = {'Cert': 'cert', 'CAPrivateKey': 'caprivatekey', 'APIPort': 'apiport', 'PrivateKey': 'privatekey', 'SystemIdentity': 'systemidentity', 'StatePort': 'stateport', 'SharedSecret': 'sharedsecret'} + _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'} def __init__(self, apiport=None, caprivatekey=None, cert=None, privatekey=None, sharedsecret=None, stateport=None, systemidentity=None): ''' apiport : int @@ -448,18 +439,20 @@ class AllWatcherNextResults(Type): class Delta(Type): - _toSchema = {'removed': 'Removed'} - _toPy = {'Removed': 'removed'} - def __init__(self, removed=None): + _toSchema = {'removed': 'Removed', 'entity': 'Entity'} + _toPy = {'Removed': 'removed', 'Entity': 'entity'} + def __init__(self, entity=None, removed=None): ''' + entity : typing.Mapping[str, typing.Any] removed : bool ''' + self.entity = entity self.removed = removed class AnnotationsGetResult(Type): - _toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations', 'error': 'Error'} - _toPy = {'Annotations': 'annotations', 'EntityTag': 'entitytag', 'Error': 'error'} + _toSchema = {'error': 'Error', 'entitytag': 'EntityTag', 'annotations': 'Annotations'} + _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations', 'Error': 'error'} def __init__(self, annotations=None, entitytag=None, error=None): ''' annotations : typing.Mapping[str, str] @@ -493,7 +486,7 @@ class AnnotationsSet(Type): class EntityAnnotations(Type): _toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations'} - _toPy = {'Annotations': 'annotations', 'EntityTag': 'entitytag'} + _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations'} def __init__(self, annotations=None, entitytag=None): ''' annotations : typing.Mapping[str, str] @@ -503,783 +496,880 @@ class EntityAnnotations(Type): self.entitytag = entitytag -class AddApplicationUnits(Type): - _toSchema = {'placement': 'Placement', 'numunits': 'NumUnits', 'applicationname': 'ApplicationName'} - _toPy = {'NumUnits': 'numunits', 'ApplicationName': 'applicationname', 'Placement': 'placement'} - def __init__(self, applicationname=None, numunits=None, placement=None): +class BackupsCreateArgs(Type): + _toSchema = {'notes': 'Notes'} + _toPy = {'Notes': 'notes'} + def __init__(self, notes=None): ''' - applicationname : str - numunits : int - placement : typing.Sequence[~Placement] + notes : str ''' - self.applicationname = applicationname - self.numunits = numunits - self.placement = [Placement.from_json(o) for o in placement or []] + self.notes = notes -class AddApplicationUnitsResults(Type): - _toSchema = {'units': 'Units'} - _toPy = {'Units': 'units'} - def __init__(self, units=None): +class BackupsInfoArgs(Type): + _toSchema = {'id_': 'ID'} + _toPy = {'ID': 'id_'} + def __init__(self, id_=None): ''' - units : typing.Sequence[str] + id_ : str ''' - self.units = units + self.id_ = id_ -class AddRelation(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +class BackupsListArgs(Type): + _toSchema = {} + _toPy = {} + def __init__(self): ''' - endpoints : typing.Sequence[str] + ''' - self.endpoints = endpoints + pass -class AddRelationResults(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +class BackupsListResult(Type): + _toSchema = {'list_': 'List'} + _toPy = {'List': 'list_'} + def __init__(self, list_=None): ''' - endpoints : typing.Mapping[str, ~Relation] + list_ : typing.Sequence[~BackupsMetadataResult] ''' - self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()} + self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] -class ApplicationCharmRelations(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +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): ''' - applicationname : str + 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 ''' - self.applicationname = applicationname + 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 -class ApplicationCharmRelationsResults(Type): - _toSchema = {'charmrelations': 'CharmRelations'} - _toPy = {'CharmRelations': 'charmrelations'} - def __init__(self, charmrelations=None): +class BackupsRemoveArgs(Type): + _toSchema = {'id_': 'ID'} + _toPy = {'ID': 'id_'} + def __init__(self, id_=None): ''' - charmrelations : typing.Sequence[str] + id_ : str ''' - self.charmrelations = charmrelations + self.id_ = id_ -class ApplicationDeploy(Type): - _toSchema = {'channel': 'Channel', 'resources': 'Resources', 'storage': 'Storage', 'placement': 'Placement', 'series': 'Series', 'applicationname': 'ApplicationName', 'config': 'Config', 'endpointbindings': 'EndpointBindings', 'numunits': 'NumUnits', 'constraints': 'Constraints', 'charmurl': 'CharmUrl', 'configyaml': 'ConfigYAML'} - _toPy = {'CharmUrl': 'charmurl', 'ApplicationName': 'applicationname', 'Channel': 'channel', 'Placement': 'placement', 'ConfigYAML': 'configyaml', 'EndpointBindings': 'endpointbindings', 'Storage': 'storage', 'Series': 'series', 'Resources': 'resources', 'NumUnits': 'numunits', 'Constraints': 'constraints', 'Config': 'config'} - 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): +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): ''' - 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] + build : int + major : int + minor : int + patch : int + tag : str ''' - 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()} + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class ApplicationDestroy(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +class RestoreArgs(Type): + _toSchema = {'backupid': 'BackupId'} + _toPy = {'BackupId': 'backupid'} + def __init__(self, backupid=None): ''' - applicationname : str + backupid : str ''' - self.applicationname = applicationname + self.backupid = backupid -class ApplicationExpose(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +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): ''' - applicationname : str + id_ : str + message : str + tag : str + type_ : str ''' - self.applicationname = applicationname + self.id_ = id_ + self.message = message + self.tag = tag + self.type_ = type_ -class ApplicationGet(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +class BlockResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None): ''' - applicationname : str + error : Error + result : Block ''' - self.applicationname = applicationname + self.error = Error.from_json(error) if error else None + self.result = Block.from_json(result) if result else None -class ApplicationGetResults(Type): - _toSchema = {'charm': 'Charm', 'config': 'Config', 'application': 'Application', 'constraints': 'Constraints'} - _toPy = {'Application': 'application', 'Charm': 'charm', 'Constraints': 'constraints', 'Config': 'config'} - def __init__(self, application=None, charm=None, config=None, constraints=None): +class BlockResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - application : str - charm : str - config : typing.Mapping[str, typing.Any] - constraints : Value + results : typing.Sequence[~BlockResult] ''' - self.application = application - self.charm = charm - self.config = config - self.constraints = Value.from_json(constraints) if constraints else None + self.results = [BlockResult.from_json(o) for o in results or []] -class ApplicationMetricCredential(Type): - _toSchema = {'metriccredentials': 'MetricCredentials', 'applicationname': 'ApplicationName'} - _toPy = {'MetricCredentials': 'metriccredentials', 'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None, metriccredentials=None): +class BlockSwitchParams(Type): + _toSchema = {'message': 'message', 'type_': 'type'} + _toPy = {'message': 'message', 'type': 'type_'} + def __init__(self, message=None, type_=None): ''' - applicationname : str - metriccredentials : typing.Sequence[int] + message : str + type_ : str ''' - self.applicationname = applicationname - self.metriccredentials = metriccredentials + self.message = message + self.type_ = type_ -class ApplicationMetricCredentials(Type): - _toSchema = {'creds': 'Creds'} - _toPy = {'Creds': 'creds'} - def __init__(self, creds=None): +class CharmInfo(Type): + _toSchema = {'charmurl': 'CharmURL'} + _toPy = {'CharmURL': 'charmurl'} + def __init__(self, charmurl=None): ''' - creds : typing.Sequence[~ApplicationMetricCredential] + charmurl : str ''' - self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []] + self.charmurl = charmurl -class ApplicationSet(Type): - _toSchema = {'applicationname': 'ApplicationName', 'options': 'Options'} - _toPy = {'ApplicationName': 'applicationname', 'Options': 'options'} - def __init__(self, applicationname=None, options=None): +class CharmsList(Type): + _toSchema = {'names': 'Names'} + _toPy = {'Names': 'names'} + def __init__(self, names=None): ''' - applicationname : str - options : typing.Mapping[str, str] + names : typing.Sequence[str] ''' - self.applicationname = applicationname - self.options = options + self.names = names -class ApplicationSetCharm(Type): - _toSchema = {'cs_channel': 'cs-channel', 'forceunits': 'forceunits', 'resourceids': 'resourceids', 'charmurl': 'charmurl', 'forceseries': 'forceseries', 'applicationname': 'applicationname'} - _toPy = {'cs-channel': 'cs_channel', 'forceunits': 'forceunits', 'resourceids': 'resourceids', 'charmurl': 'charmurl', 'forceseries': 'forceseries', 'applicationname': 'applicationname'} - def __init__(self, applicationname=None, charmurl=None, cs_channel=None, forceseries=None, forceunits=None, resourceids=None): +class CharmsListResult(Type): + _toSchema = {'charmurls': 'CharmURLs'} + _toPy = {'CharmURLs': 'charmurls'} + def __init__(self, charmurls=None): ''' - applicationname : str - charmurl : str - cs_channel : str - forceseries : bool - forceunits : bool - resourceids : typing.Mapping[str, str] + charmurls : typing.Sequence[str] ''' - self.applicationname = applicationname - self.charmurl = charmurl - self.cs_channel = cs_channel - self.forceseries = forceseries - self.forceunits = forceunits - self.resourceids = resourceids + self.charmurls = charmurls -class ApplicationUnexpose(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +class IsMeteredResult(Type): + _toSchema = {'metered': 'Metered'} + _toPy = {'Metered': 'metered'} + def __init__(self, metered=None): ''' - applicationname : str + metered : bool ''' - self.applicationname = applicationname + self.metered = metered -class ApplicationUnset(Type): - _toSchema = {'applicationname': 'ApplicationName', 'options': 'Options'} - _toPy = {'ApplicationName': 'applicationname', 'Options': 'options'} - def __init__(self, applicationname=None, options=None): +class APIHostPortsResult(Type): + _toSchema = {'servers': 'Servers'} + _toPy = {'Servers': 'servers'} + def __init__(self, servers=None): ''' - applicationname : str - options : typing.Sequence[str] + servers : typing.Sequence[~HostPort] ''' - self.applicationname = applicationname - self.options = options + self.servers = [HostPort.from_json(o) for o in servers or []] -class ApplicationUpdate(Type): - _toSchema = {'settingsstrings': 'SettingsStrings', 'settingsyaml': 'SettingsYAML', 'constraints': 'Constraints', 'charmurl': 'CharmUrl', 'forcecharmurl': 'ForceCharmUrl', 'forceseries': 'ForceSeries', 'minunits': 'MinUnits', 'applicationname': 'ApplicationName'} - _toPy = {'ForceCharmUrl': 'forcecharmurl', 'CharmUrl': 'charmurl', 'ApplicationName': 'applicationname', 'MinUnits': 'minunits', 'SettingsYAML': 'settingsyaml', 'ForceSeries': 'forceseries', 'SettingsStrings': 'settingsstrings', 'Constraints': 'constraints'} - def __init__(self, applicationname=None, charmurl=None, constraints=None, forcecharmurl=None, forceseries=None, minunits=None, settingsstrings=None, settingsyaml=None): +class AddCharm(Type): + _toSchema = {'channel': 'Channel', 'url': 'URL'} + _toPy = {'Channel': 'channel', 'URL': 'url'} + def __init__(self, channel=None, url=None): ''' - applicationname : str - charmurl : str - constraints : Value - forcecharmurl : bool - forceseries : bool - minunits : int - settingsstrings : typing.Mapping[str, str] - settingsyaml : str - ''' - 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 ApplicationsDeploy(Type): - _toSchema = {'applications': 'Applications'} - _toPy = {'Applications': 'applications'} - def __init__(self, applications=None): - ''' - applications : typing.Sequence[~ApplicationDeploy] - ''' - self.applications = [ApplicationDeploy.from_json(o) for o in applications or []] - - -class Constraints(Type): - _toSchema = {'size': 'Size', 'pool': 'Pool', 'count': 'Count'} - _toPy = {'Size': 'size', 'Count': 'count', 'Pool': 'pool'} - def __init__(self, count=None, pool=None, size=None): - ''' - count : int - pool : str - size : int + channel : str + url : str ''' - self.count = count - self.pool = pool - self.size = size + self.channel = channel + self.url = url -class DestroyApplicationUnits(Type): - _toSchema = {'unitnames': 'UnitNames'} - _toPy = {'UnitNames': 'unitnames'} - def __init__(self, unitnames=None): +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): ''' - unitnames : typing.Sequence[str] + channel : str + charmstoremacaroon : Macaroon + url : str ''' - self.unitnames = unitnames + self.channel = channel + self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None + self.url = url -class DestroyRelation(Type): - _toSchema = {'endpoints': 'Endpoints'} - _toPy = {'Endpoints': 'endpoints'} - def __init__(self, endpoints=None): +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): ''' - endpoints : 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.endpoints = endpoints + 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 GetApplicationConstraints(Type): - _toSchema = {'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None): +class AddMachines(Type): + _toSchema = {'machineparams': 'MachineParams'} + _toPy = {'MachineParams': 'machineparams'} + def __init__(self, machineparams=None): ''' - applicationname : str + machineparams : typing.Sequence[~AddMachineParams] ''' - self.applicationname = applicationname + self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []] -class GetConstraintsResults(Type): - _toSchema = {'cpu_cores': 'cpu-cores', 'container': 'container', 'spaces': 'spaces', 'mem': 'mem', 'arch': 'arch', 'tags': 'tags', 'cpu_power': 'cpu-power', 'virt_type': 'virt-type', 'instance_type': 'instance-type', 'root_disk': 'root-disk'} - _toPy = {'tags': 'tags', 'container': 'container', 'spaces': 'spaces', 'instance-type': 'instance_type', 'arch': 'arch', 'cpu-cores': 'cpu_cores', 'virt-type': 'virt_type', 'root-disk': 'root_disk', 'mem': 'mem', 'cpu-power': 'cpu_power'} - 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 AddMachinesResult(Type): + _toSchema = {'error': 'Error', 'machine': 'Machine'} + _toPy = {'Error': 'error', 'Machine': 'machine'} + def __init__(self, error=None, machine=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 + error : Error + machine : 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.error = Error.from_json(error) if error else None + self.machine = machine -class Placement(Type): - _toSchema = {'scope': 'Scope', 'directive': 'Directive'} - _toPy = {'Directive': 'directive', 'Scope': 'scope'} - def __init__(self, directive=None, scope=None): +class AddMachinesResults(Type): + _toSchema = {'machines': 'Machines'} + _toPy = {'Machines': 'machines'} + def __init__(self, machines=None): ''' - directive : str - scope : str + machines : typing.Sequence[~AddMachinesResult] ''' - self.directive = directive - self.scope = scope + self.machines = [AddMachinesResult.from_json(o) for o in machines or []] -class Relation(Type): - _toSchema = {'name': 'Name', 'role': 'Role', 'scope': 'Scope', 'limit': 'Limit', 'interface': 'Interface', 'optional': 'Optional'} - _toPy = {'Scope': 'scope', 'Interface': 'interface', 'Optional': 'optional', 'Role': 'role', 'Limit': 'limit', 'Name': 'name'} - def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None): +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): ''' - interface : str - limit : int - name : str - optional : bool - role : str scope : str + spacename : str + type_ : str + value : str ''' - self.interface = interface - self.limit = limit - self.name = name - self.optional = optional - self.role = role self.scope = scope + self.spacename = spacename + self.type_ = type_ + self.value = value -class SetConstraints(Type): - _toSchema = {'constraints': 'Constraints', 'applicationname': 'ApplicationName'} - _toPy = {'ApplicationName': 'applicationname', 'Constraints': 'constraints'} - def __init__(self, applicationname=None, constraints=None): +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): ''' - applicationname : str - constraints : Value + build : int + major : int + minor : int + patch : int + tag : str ''' - self.applicationname = applicationname - self.constraints = Value.from_json(constraints) if constraints else None + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class StringResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} - def __init__(self, error=None, result=None): +class AllWatcherId(Type): + _toSchema = {'allwatcherid': 'AllWatcherId'} + _toPy = {'AllWatcherId': 'allwatcherid'} + def __init__(self, allwatcherid=None): ''' - error : Error - result : str + allwatcherid : str ''' - self.error = Error.from_json(error) if error else None - self.result = result + self.allwatcherid = allwatcherid -class Value(Type): - _toSchema = {'cpu_cores': 'cpu-cores', 'container': 'container', 'spaces': 'spaces', 'mem': 'mem', 'arch': 'arch', 'tags': 'tags', 'cpu_power': 'cpu-power', 'virt_type': 'virt-type', 'instance_type': 'instance-type', 'root_disk': 'root-disk'} - _toPy = {'tags': 'tags', 'container': 'container', 'spaces': 'spaces', 'instance-type': 'instance_type', 'arch': 'arch', 'cpu-cores': 'cpu_cores', 'virt-type': 'virt_type', 'root-disk': 'root_disk', 'mem': 'mem', 'cpu-power': 'cpu_power'} - 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 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): ''' 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 + number : Number + series : 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.number = Number.from_json(number) if number else None + self.series = series -class StringsWatchResult(Type): - _toSchema = {'changes': 'Changes', 'stringswatcherid': 'StringsWatcherId', 'error': 'Error'} - _toPy = {'Changes': 'changes', 'StringsWatcherId': 'stringswatcherid', 'Error': 'error'} - def __init__(self, changes=None, error=None, stringswatcherid=None): +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): ''' - changes : typing.Sequence[str] - error : Error - stringswatcherid : str + args : typing.Sequence[typing.Any] + id_ : str + method : str + requires : typing.Sequence[str] ''' - self.changes = changes - self.error = Error.from_json(error) if error else None - self.stringswatcherid = stringswatcherid + self.args = args + self.id_ = id_ + self.method = method + self.requires = requires -class BackupsCreateArgs(Type): - _toSchema = {'notes': 'Notes'} - _toPy = {'Notes': 'notes'} - def __init__(self, notes=None): +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): ''' - notes : str + count : int + pool : str + size : int ''' - self.notes = notes + self.count = count + self.pool = pool + self.size = size -class BackupsInfoArgs(Type): - _toSchema = {'id_': 'ID'} - _toPy = {'ID': 'id_'} - def __init__(self, id_=None): +class DestroyMachines(Type): + _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'} + _toPy = {'MachineNames': 'machinenames', 'Force': 'force'} + def __init__(self, force=None, machinenames=None): ''' - id_ : str + force : bool + machinenames : typing.Sequence[str] ''' - self.id_ = id_ + self.force = force + self.machinenames = machinenames -class BackupsListArgs(Type): - _toSchema = {} - _toPy = {} - def __init__(self): +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): ''' - + data : typing.Mapping[str, typing.Any] + err : typing.Mapping[str, typing.Any] + info : str + kind : str + life : str + since : str + status : str + version : str ''' - pass + 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 BackupsListResult(Type): - _toSchema = {'list_': 'List'} - _toPy = {'List': 'list_'} - def __init__(self, list_=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): ''' - list_ : typing.Sequence[~BackupsMetadataResult] + name : str + role : str + servicename : str + subordinate : bool ''' - self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []] + self.name = name + self.role = role + self.servicename = servicename + self.subordinate = subordinate -class BackupsMetadataResult(Type): - _toSchema = {'stored': 'Stored', 'caprivatekey': 'CAPrivateKey', 'series': 'Series', 'notes': 'Notes', 'id_': 'ID', 'finished': 'Finished', 'model': 'Model', 'machine': 'Machine', 'checksumformat': 'ChecksumFormat', 'checksum': 'Checksum', 'size': 'Size', 'version': 'Version', 'cacert': 'CACert', 'started': 'Started', 'hostname': 'Hostname'} - _toPy = {'Notes': 'notes', 'ID': 'id_', 'Started': 'started', 'Version': 'version', 'Series': 'series', 'Machine': 'machine', 'ChecksumFormat': 'checksumformat', 'Finished': 'finished', 'CAPrivateKey': 'caprivatekey', 'Hostname': 'hostname', 'Model': 'model', 'CACert': 'cacert', 'Size': 'size', 'Checksum': 'checksum', 'Stored': 'stored'} - 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): +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): ''' - cacert : str - caprivatekey : str - checksum : str - checksumformat : str - finished : str - hostname : str - id_ : str - machine : str - model : str - notes : str + data : typing.Mapping[str, typing.Any] + info : str + since : str + status : str + ''' + self.data = data + self.info = info + self.since = since + self.status = status + + +class 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): + ''' + arch : str + majorversion : int + minorversion : int + number : Number series : str - size : int - started : str - stored : str - version : Number ''' - 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.arch = arch + self.majorversion = majorversion + self.minorversion = minorversion + self.number = Number.from_json(number) if number else None self.series = series - self.size = size - self.started = started - self.stored = stored - self.version = Number.from_json(version) if version else None -class BackupsRemoveArgs(Type): - _toSchema = {'id_': 'ID'} - _toPy = {'ID': 'id_'} - def __init__(self, id_=None): +class FindToolsResult(Type): + _toSchema = {'error': 'Error', 'list_': 'List'} + _toPy = {'Error': 'error', 'List': 'list_'} + def __init__(self, error=None, list_=None): ''' - id_ : str + error : Error + list_ : typing.Sequence[~Tools] ''' - self.id_ = id_ + self.error = Error.from_json(error) if error else None + self.list_ = [Tools.from_json(o) for o in list_ or []] -class Number(Type): - _toSchema = {'patch': 'Patch', 'tag': 'Tag', 'major': 'Major', 'build': 'Build', 'minor': 'Minor'} - _toPy = {'Patch': 'patch', 'Major': 'major', 'Build': 'build', 'Minor': 'minor', 'Tag': 'tag'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=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): ''' - build : int - major : int - minor : int - patch : int - tag : str + availableversion : str + machines : typing.Mapping[str, ~MachineStatus] + modelname : str + relations : typing.Sequence[~RelationStatus] + services : typing.Mapping[str, ~ServiceStatus] ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + 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()} -class RestoreArgs(Type): - _toSchema = {'backupid': 'BackupId'} - _toPy = {'BackupId': 'backupid'} - def __init__(self, backupid=None): +class GetBundleChangesParams(Type): + _toSchema = {'yaml': 'yaml'} + _toPy = {'yaml': 'yaml'} + def __init__(self, yaml=None): ''' - backupid : str + yaml : str ''' - self.backupid = backupid + self.yaml = yaml -class Block(Type): - _toSchema = {'tag': 'tag', 'message': 'message', 'type_': 'type', 'id_': 'id'} - _toPy = {'id': 'id_', 'message': 'message', 'type': 'type_', 'tag': 'tag'} - def __init__(self, id_=None, message=None, tag=None, type_=None): +class GetBundleChangesResults(Type): + _toSchema = {'errors': 'errors', 'changes': 'changes'} + _toPy = {'errors': 'errors', 'changes': 'changes'} + def __init__(self, changes=None, errors=None): ''' - id_ : str - message : str - tag : str - type_ : str + changes : typing.Sequence[~BundleChangesChange] + errors : typing.Sequence[str] ''' - self.id_ = id_ - self.message = message - self.tag = tag - self.type_ = type_ + self.changes = [BundleChangesChange.from_json(o) for o in changes or []] + self.errors = errors -class BlockResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} - def __init__(self, error=None, result=None): +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): ''' - error : Error - result : Block + 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.error = Error.from_json(error) if error else None - self.result = Block.from_json(result) if result else None + 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 BlockResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~BlockResult] + arch : str + availabilityzone : str + cpucores : int + cpupower : int + mem : int + rootdisk : int + tags : typing.Sequence[str] ''' - self.results = [BlockResult.from_json(o) for o in results or []] + self.arch = arch + self.availabilityzone = availabilityzone + self.cpucores = cpucores + self.cpupower = cpupower + self.mem = mem + self.rootdisk = rootdisk + self.tags = tags -class BlockSwitchParams(Type): - _toSchema = {'message': 'message', 'type_': 'type'} - _toPy = {'message': 'message', 'type': 'type_'} - def __init__(self, message=None, type_=None): +class HostPort(Type): + _toSchema = {'address': 'Address', 'port': 'Port'} + _toPy = {'Port': 'port', 'Address': 'address'} + def __init__(self, address=None, port=None): ''' - message : str - type_ : str + address : Address + port : int ''' - self.message = message - self.type_ = type_ + self.address = Address.from_json(address) if address else None + self.port = port -class CharmInfo(Type): - _toSchema = {'charmurl': 'CharmURL'} - _toPy = {'CharmURL': 'charmurl'} - def __init__(self, charmurl=None): +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): ''' - charmurl : str + 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.charmurl = charmurl + 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 CharmsList(Type): - _toSchema = {'names': 'Names'} - _toPy = {'Names': 'names'} - def __init__(self, names=None): +class MeterStatus(Type): + _toSchema = {'message': 'Message', 'color': 'Color'} + _toPy = {'Message': 'message', 'Color': 'color'} + def __init__(self, color=None, message=None): ''' - names : typing.Sequence[str] + color : str + message : str ''' - self.names = names + self.color = color + self.message = message -class CharmsListResult(Type): - _toSchema = {'charmurls': 'CharmURLs'} - _toPy = {'CharmURLs': 'charmurls'} - def __init__(self, charmurls=None): +class ModelConfigResults(Type): + _toSchema = {'config': 'Config'} + _toPy = {'Config': 'config'} + def __init__(self, config=None): ''' - charmurls : typing.Sequence[str] + config : typing.Mapping[str, typing.Any] ''' - self.charmurls = charmurls + self.config = config -class IsMeteredResult(Type): - _toSchema = {'metered': 'Metered'} - _toPy = {'Metered': 'metered'} - def __init__(self, metered=None): +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): ''' - metered : bool + defaultseries : str + life : str + name : str + ownertag : str + providertype : str + serveruuid : str + status : EntityStatus + uuid : str + users : typing.Sequence[~ModelUserInfo] ''' - self.metered = metered + 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 APIHostPortsResult(Type): - _toSchema = {'servers': 'Servers'} - _toPy = {'Servers': 'servers'} - def __init__(self, servers=None): +class ModelSet(Type): + _toSchema = {'config': 'Config'} + _toPy = {'Config': 'config'} + def __init__(self, config=None): ''' - servers : typing.Sequence[~HostPort] + config : typing.Mapping[str, typing.Any] ''' - self.servers = [HostPort.from_json(o) for o in servers or []] + self.config = config -class AddCharm(Type): - _toSchema = {'channel': 'Channel', 'url': 'URL'} - _toPy = {'URL': 'url', 'Channel': 'channel'} - def __init__(self, channel=None, url=None): +class ModelUnset(Type): + _toSchema = {'keys': 'Keys'} + _toPy = {'Keys': 'keys'} + def __init__(self, keys=None): ''' - channel : str - url : str + keys : typing.Sequence[str] ''' - self.channel = channel - self.url = url + self.keys = keys -class AddCharmWithAuthorization(Type): - _toSchema = {'charmstoremacaroon': 'CharmStoreMacaroon', 'channel': 'Channel', 'url': 'URL'} - _toPy = {'CharmStoreMacaroon': 'charmstoremacaroon', 'URL': 'url', 'Channel': 'channel'} - def __init__(self, channel=None, charmstoremacaroon=None, url=None): +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): ''' - channel : str - charmstoremacaroon : Macaroon - url : str + access : str + displayname : str + lastconnection : str + user : str ''' - self.channel = channel - self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None - self.url = url + self.access = access + self.displayname = displayname + self.lastconnection = lastconnection + self.user = user -class AddMachineParams(Type): - _toSchema = {'hardwarecharacteristics': 'HardwareCharacteristics', 'instanceid': 'InstanceId', 'parentid': 'ParentId', 'disks': 'Disks', 'constraints': 'Constraints', 'placement': 'Placement', 'containertype': 'ContainerType', 'addrs': 'Addrs', 'jobs': 'Jobs', 'nonce': 'Nonce', 'series': 'Series'} - _toPy = {'Placement': 'placement', 'ContainerType': 'containertype', 'InstanceId': 'instanceid', 'HardwareCharacteristics': 'hardwarecharacteristics', 'ParentId': 'parentid', 'Nonce': 'nonce', 'Series': 'series', 'Addrs': 'addrs', 'Disks': 'disks', 'Constraints': 'constraints', '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): +class ModelUserInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=None): ''' - addrs : typing.Sequence[~Address] - constraints : Value - containertype : str - disks : typing.Sequence[~Constraints] - hardwarecharacteristics : HardwareCharacteristics - instanceid : str - jobs : typing.Sequence[str] + error : Error + result : ModelUserInfo + ''' + self.error = Error.from_json(error) if error else None + self.result = ModelUserInfo.from_json(result) if result else None + + +class ModelUserInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): + ''' + results : typing.Sequence[~ModelUserInfoResult] + ''' + self.results = [ModelUserInfoResult.from_json(o) for o in results or []] + + +class Placement(Type): + _toSchema = {'scope': 'Scope', 'directive': 'Directive'} + _toPy = {'Directive': 'directive', 'Scope': 'scope'} + def __init__(self, directive=None, scope=None): + ''' + directive : str + scope : str + ''' + self.directive = directive + self.scope = scope + + +class PrivateAddress(Type): + _toSchema = {'target': 'Target'} + _toPy = {'Target': 'target'} + def __init__(self, target=None): + ''' + target : str + ''' + self.target = target + + +class PrivateAddressResults(Type): + _toSchema = {'privateaddress': 'PrivateAddress'} + _toPy = {'PrivateAddress': 'privateaddress'} + def __init__(self, privateaddress=None): + ''' + privateaddress : str + ''' + self.privateaddress = privateaddress + + +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): + ''' + datadir : str + disablepackagecommands : bool + machineid : str nonce : str - parentid : str - placement : Placement - series : str ''' - 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.datadir = datadir + self.disablepackagecommands = disablepackagecommands + self.machineid = machineid self.nonce = nonce - self.parentid = parentid - self.placement = Placement.from_json(placement) if placement else None - self.series = series -class AddMachines(Type): - _toSchema = {'machineparams': 'MachineParams'} - _toPy = {'MachineParams': 'machineparams'} - def __init__(self, machineparams=None): +class ProvisioningScriptResult(Type): + _toSchema = {'script': 'Script'} + _toPy = {'Script': 'script'} + def __init__(self, script=None): ''' - machineparams : typing.Sequence[~AddMachineParams] + script : str ''' - self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []] + self.script = script -class AddMachinesResult(Type): - _toSchema = {'machine': 'Machine', 'error': 'Error'} - _toPy = {'Machine': 'machine', 'Error': 'error'} - def __init__(self, error=None, machine=None): +class PublicAddress(Type): + _toSchema = {'target': 'Target'} + _toPy = {'Target': 'target'} + def __init__(self, target=None): ''' - error : Error - machine : str + target : str ''' - self.error = Error.from_json(error) if error else None - self.machine = machine + self.target = target -class AddMachinesResults(Type): - _toSchema = {'machines': 'Machines'} - _toPy = {'Machines': 'machines'} - def __init__(self, machines=None): +class PublicAddressResults(Type): + _toSchema = {'publicaddress': 'PublicAddress'} + _toPy = {'PublicAddress': 'publicaddress'} + def __init__(self, publicaddress=None): ''' - machines : typing.Sequence[~AddMachinesResult] + publicaddress : str ''' - self.machines = [AddMachinesResult.from_json(o) for o in machines or []] + self.publicaddress = publicaddress -class Address(Type): - _toSchema = {'value': 'Value', 'spacename': 'SpaceName', 'scope': 'Scope', 'type_': 'Type'} - _toPy = {'Scope': 'scope', 'SpaceName': 'spacename', 'Value': 'value', 'Type': 'type_'} - def __init__(self, scope=None, spacename=None, type_=None, value=None): +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 - spacename : str - type_ : str - value : str ''' + self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] + self.id_ = id_ + self.interface = interface + self.key = key self.scope = scope - self.spacename = spacename - self.type_ = type_ - self.value = value -class AgentVersionResult(Type): - _toSchema = {'patch': 'Patch', 'tag': 'Tag', 'major': 'Major', 'build': 'Build', 'minor': 'Minor'} - _toPy = {'Patch': 'patch', 'Major': 'major', 'Build': 'build', 'Minor': 'minor', 'Tag': 'tag'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): +class ResolveCharmResult(Type): + _toSchema = {'error': 'Error', 'url': 'URL'} + _toPy = {'Error': 'error', 'URL': 'url'} + def __init__(self, error=None, url=None): ''' - build : int - major : int - minor : int - patch : int - tag : str + error : str + url : URL ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + self.error = error + self.url = URL.from_json(url) if url else None -class AllWatcherId(Type): - _toSchema = {'allwatcherid': 'AllWatcherId'} - _toPy = {'AllWatcherId': 'allwatcherid'} - def __init__(self, allwatcherid=None): +class ResolveCharmResults(Type): + _toSchema = {'urls': 'URLs'} + _toPy = {'URLs': 'urls'} + def __init__(self, urls=None): ''' - allwatcherid : str + urls : typing.Sequence[~ResolveCharmResult] ''' - self.allwatcherid = allwatcherid + self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] + + +class ResolveCharms(Type): + _toSchema = {'references': 'References'} + _toPy = {'References': 'references'} + def __init__(self, references=None): + ''' + references : typing.Sequence[~URL] + ''' + self.references = [URL.from_json(o) for o in references or []] + + +class Resolved(Type): + _toSchema = {'retry': 'Retry', 'unitname': 'UnitName'} + _toPy = {'UnitName': 'unitname', 'Retry': 'retry'} + def __init__(self, retry=None, unitname=None): + ''' + retry : bool + unitname : str + ''' + self.retry = retry + self.unitname = unitname -class ApplicationStatus(Type): - _toSchema = {'meterstatuses': 'MeterStatuses', 'relations': 'Relations', 'units': 'Units', 'exposed': 'Exposed', 'life': 'Life', 'charm': 'Charm', 'status': 'Status', 'canupgradeto': 'CanUpgradeTo', 'subordinateto': 'SubordinateTo'} - _toPy = {'Status': 'status', 'SubordinateTo': 'subordinateto', 'CanUpgradeTo': 'canupgradeto', 'Relations': 'relations', 'Life': 'life', 'MeterStatuses': 'meterstatuses', 'Exposed': 'exposed', 'Charm': 'charm', 'Units': 'units'} - def __init__(self, canupgradeto=None, charm=None, exposed=None, life=None, meterstatuses=None, relations=None, status=None, subordinateto=None, units=None): +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): ''' canupgradeto : str charm : str + err : typing.Mapping[str, typing.Any] exposed : bool life : str meterstatuses : typing.Mapping[str, ~MeterStatus] @@ -1290,6 +1380,7 @@ class ApplicationStatus(Type): ''' 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()} @@ -1299,2655 +1390,2509 @@ class ApplicationStatus(Type): self.units = {k: UnitStatus.from_json(v) for k, v in (units or dict()).items()} -class Binary(Type): - _toSchema = {'series': 'Series', 'number': 'Number', 'arch': 'Arch'} - _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'} - def __init__(self, arch=None, number=None, series=None): - ''' - arch : str - number : Number - series : str - ''' - self.arch = arch - self.number = Number.from_json(number) if number else None - self.series = series - - -class BundleChangesChange(Type): - _toSchema = {'method': 'method', 'requires': 'requires', 'args': 'args', 'id_': 'id'} - _toPy = {'method': 'method', 'id': 'id_', 'args': 'args', 'requires': 'requires'} - def __init__(self, args=None, id_=None, method=None, requires=None): +class SetConstraints(Type): + _toSchema = {'constraints': 'Constraints', 'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints'} + def __init__(self, constraints=None, servicename=None): ''' - args : typing.Sequence[typing.Any] - id_ : str - method : str - requires : typing.Sequence[str] + constraints : Value + servicename : str ''' - self.args = args - self.id_ = id_ - self.method = method - self.requires = requires + self.constraints = Value.from_json(constraints) if constraints else None + self.servicename = servicename -class DestroyMachines(Type): - _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'} - _toPy = {'MachineNames': 'machinenames', 'Force': 'force'} - def __init__(self, force=None, machinenames=None): +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): ''' - force : bool - machinenames : typing.Sequence[str] + build : int + major : int + minor : int + patch : int + tag : str ''' - self.force = force - self.machinenames = machinenames + self.build = build + self.major = major + self.minor = minor + self.patch = patch + self.tag = tag -class DetailedStatus(Type): - _toSchema = {'status': 'Status', 'version': 'Version', 'kind': 'Kind', 'life': 'Life', 'data': 'Data', 'since': 'Since', 'info': 'Info'} - _toPy = {'Life': 'life', 'Version': 'version', 'Data': 'data', 'Since': 'since', 'Status': 'status', 'Kind': 'kind', 'Info': 'info'} - def __init__(self, data=None, info=None, kind=None, life=None, since=None, status=None, version=None): +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): ''' - data : typing.Mapping[str, typing.Any] - info : str kind : str - life : str - since : str - status : str - version : str - ''' - self.data = data - self.info = info - self.kind = kind - self.life = life - self.since = since - self.status = status - self.version = version - - -class EndpointStatus(Type): - _toSchema = {'name': 'Name', 'role': 'Role', 'subordinate': 'Subordinate', 'applicationname': 'ApplicationName'} - _toPy = {'Role': 'role', 'ApplicationName': 'applicationname', 'Subordinate': 'subordinate', 'Name': 'name'} - def __init__(self, applicationname=None, name=None, role=None, subordinate=None): - ''' - applicationname : str name : str - role : str - subordinate : bool + size : int ''' - self.applicationname = applicationname + self.kind = kind self.name = name - self.role = role - self.subordinate = subordinate - - -class EntityStatus(Type): - _toSchema = {'data': 'Data', 'since': 'Since', 'status': 'Status', 'info': 'Info'} - _toPy = {'Data': 'data', 'Since': 'since', 'Status': 'status', 'Info': 'info'} - def __init__(self, data=None, info=None, since=None, status=None): - ''' - data : typing.Mapping[str, typing.Any] - info : str - since : str - status : str - ''' - self.data = data - self.info = info - self.since = since - self.status = status + self.size = size -class FindToolsParams(Type): - _toSchema = {'series': 'Series', 'minorversion': 'MinorVersion', 'majorversion': 'MajorVersion', 'number': 'Number', 'arch': 'Arch'} - _toPy = {'MajorVersion': 'majorversion', 'Arch': 'arch', 'Number': 'number', 'Series': 'series', 'MinorVersion': 'minorversion'} - def __init__(self, arch=None, majorversion=None, minorversion=None, number=None, series=None): +class StatusHistoryResults(Type): + _toSchema = {'statuses': 'Statuses'} + _toPy = {'Statuses': 'statuses'} + def __init__(self, statuses=None): ''' - arch : str - majorversion : int - minorversion : int - number : Number - series : str + statuses : typing.Sequence[~DetailedStatus] ''' - self.arch = arch - self.majorversion = majorversion - self.minorversion = minorversion - self.number = Number.from_json(number) if number else None - self.series = series + self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] -class FindToolsResult(Type): - _toSchema = {'list_': 'List', 'error': 'Error'} - _toPy = {'List': 'list_', 'Error': 'error'} - def __init__(self, error=None, list_=None): +class StatusParams(Type): + _toSchema = {'patterns': 'Patterns'} + _toPy = {'Patterns': 'patterns'} + def __init__(self, patterns=None): ''' - error : Error - list_ : typing.Sequence[~Tools] + patterns : typing.Sequence[str] ''' - self.error = Error.from_json(error) if error else None - self.list_ = [Tools.from_json(o) for o in list_ or []] + self.patterns = patterns -class FullStatus(Type): - _toSchema = {'relations': 'Relations', 'modelname': 'ModelName', 'machines': 'Machines', 'availableversion': 'AvailableVersion', 'applications': 'Applications'} - _toPy = {'Relations': 'relations', 'Machines': 'machines', 'Applications': 'applications', 'AvailableVersion': 'availableversion', 'ModelName': 'modelname'} - def __init__(self, applications=None, availableversion=None, machines=None, modelname=None, relations=None): +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): ''' - applications : typing.Mapping[str, ~ApplicationStatus] - availableversion : str - machines : typing.Mapping[str, ~MachineStatus] - modelname : str - relations : typing.Sequence[~RelationStatus] + sha256 : str + size : int + url : str + version : Binary ''' - 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 []] + self.sha256 = sha256 + self.size = size + self.url = url + self.version = Binary.from_json(version) if version else None -class GetBundleChangesParams(Type): - _toSchema = {'yaml': 'yaml'} - _toPy = {'yaml': 'yaml'} - def __init__(self, yaml=None): +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): ''' - yaml : str + channel : str + name : str + revision : int + schema : str + series : str + user : str ''' - self.yaml = yaml + self.channel = channel + self.name = name + self.revision = revision + self.schema = schema + self.series = series + self.user = user -class GetBundleChangesResults(Type): - _toSchema = {'changes': 'changes', 'errors': 'errors'} - _toPy = {'changes': 'changes', 'errors': 'errors'} - def __init__(self, changes=None, errors=None): +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): ''' - changes : typing.Sequence[~BundleChangesChange] - errors : typing.Sequence[str] + agentstatus : DetailedStatus + charm : str + machine : str + openedports : typing.Sequence[str] + publicaddress : str + subordinates : typing.Mapping[str, ~UnitStatus] + workloadstatus : DetailedStatus ''' - self.changes = [BundleChangesChange.from_json(o) for o in changes or []] - self.errors = errors + 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 HardwareCharacteristics(Type): - _toSchema = {'tags': 'Tags', 'cpupower': 'CpuPower', 'availabilityzone': 'AvailabilityZone', 'rootdisk': 'RootDisk', 'arch': 'Arch', 'cpucores': 'CpuCores', 'mem': 'Mem'} - _toPy = {'RootDisk': 'rootdisk', 'Arch': 'arch', 'Tags': 'tags', 'CpuPower': 'cpupower', 'CpuCores': 'cpucores', 'Mem': 'mem', 'AvailabilityZone': 'availabilityzone'} - def __init__(self, arch=None, availabilityzone=None, cpucores=None, cpupower=None, mem=None, rootdisk=None, tags=None): +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): ''' arch : str - availabilityzone : str - cpucores : int - cpupower : int + container : str + cpu_cores : int + cpu_power : int + instance_type : str mem : int - rootdisk : int + root_disk : int + spaces : typing.Sequence[str] tags : typing.Sequence[str] + virt_type : str ''' self.arch = arch - self.availabilityzone = availabilityzone - self.cpucores = cpucores - self.cpupower = cpupower + self.container = container + self.cpu_cores = cpu_cores + self.cpu_power = cpu_power + self.instance_type = instance_type self.mem = mem - self.rootdisk = rootdisk + self.root_disk = root_disk + self.spaces = spaces self.tags = tags + self.virt_type = virt_type -class History(Type): - _toSchema = {'statuses': 'Statuses', 'error': 'Error'} - _toPy = {'Statuses': 'statuses', 'Error': 'error'} - def __init__(self, error=None, statuses=None): +class DestroyControllerArgs(Type): + _toSchema = {'destroy_models': 'destroy-models'} + _toPy = {'destroy-models': 'destroy_models'} + def __init__(self, destroy_models=None): ''' - error : Error - statuses : typing.Sequence[~DetailedStatus] + destroy_models : bool ''' - self.error = Error.from_json(error) if error else None - self.statuses = [DetailedStatus.from_json(o) for o in statuses or []] + self.destroy_models = destroy_models -class HostPort(Type): - _toSchema = {'address': 'Address', 'port': 'Port'} - _toPy = {'Address': 'address', 'Port': 'port'} - def __init__(self, address=None, port=None): +class InitiateModelMigrationArgs(Type): + _toSchema = {'specs': 'specs'} + _toPy = {'specs': 'specs'} + def __init__(self, specs=None): ''' - address : Address - port : int + specs : typing.Sequence[~ModelMigrationSpec] ''' - self.address = Address.from_json(address) if address else None - self.port = port + self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []] -class MachineStatus(Type): - _toSchema = {'jobs': 'Jobs', 'instanceid': 'InstanceId', 'series': 'Series', 'dnsname': 'DNSName', 'hasvote': 'HasVote', 'id_': 'Id', 'wantsvote': 'WantsVote', 'hardware': 'Hardware', 'agentstatus': 'AgentStatus', 'containers': 'Containers', 'instancestatus': 'InstanceStatus'} - _toPy = {'WantsVote': 'wantsvote', 'Containers': 'containers', 'HasVote': 'hasvote', 'InstanceStatus': 'instancestatus', 'Hardware': 'hardware', 'DNSName': 'dnsname', 'Jobs': 'jobs', 'Series': 'series', 'Id': 'id_', 'InstanceId': 'instanceid', 'AgentStatus': 'agentstatus'} - 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 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): ''' - agentstatus : DetailedStatus - containers : typing.Mapping[str, ~MachineStatus] - dnsname : str - hardware : str - hasvote : bool + error : Error id_ : str - instanceid : str - instancestatus : DetailedStatus - jobs : typing.Sequence[str] - series : str - wantsvote : bool + model_tag : str ''' - 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.error = Error.from_json(error) if error else None 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.model_tag = model_tag -class MeterStatus(Type): - _toSchema = {'color': 'Color', 'message': 'Message'} - _toPy = {'Message': 'message', 'Color': 'color'} - def __init__(self, color=None, message=None): +class InitiateModelMigrationResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=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] + results : typing.Sequence[~InitiateModelMigrationResult] ''' - self.config = config + self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []] -class ModelInfo(Type): - _toSchema = {'name': 'Name', 'providertype': 'ProviderType', 'ownertag': 'OwnerTag', 'uuid': 'UUID', 'life': 'Life', 'status': 'Status', 'users': 'Users', 'defaultseries': 'DefaultSeries', 'serveruuid': 'ServerUUID', 'cloud': 'Cloud'} - _toPy = {'ServerUUID': 'serveruuid', 'Users': 'users', 'UUID': 'uuid', 'ProviderType': 'providertype', 'OwnerTag': 'ownertag', 'DefaultSeries': 'defaultseries', 'Status': 'status', 'Life': 'life', 'Cloud': 'cloud', 'Name': 'name'} - def __init__(self, cloud=None, defaultseries=None, life=None, name=None, ownertag=None, providertype=None, serveruuid=None, status=None, uuid=None, users=None): +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): ''' - cloud : str - defaultseries : str - life : str name : str ownertag : str - providertype : str - serveruuid : str - status : EntityStatus uuid : str - users : typing.Sequence[~ModelUserInfo] ''' - 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 ModelSet(Type): - _toSchema = {'config': 'Config'} - _toPy = {'Config': 'config'} - def __init__(self, config=None): +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): ''' - config : typing.Mapping[str, typing.Any] + blocks : typing.Sequence[str] + model_uuid : str + name : str + owner_tag : str ''' - self.config = config + self.blocks = blocks + self.model_uuid = model_uuid + self.name = name + self.owner_tag = owner_tag -class ModelUnset(Type): - _toSchema = {'keys': 'Keys'} - _toPy = {'Keys': 'keys'} - def __init__(self, keys=None): +class ModelBlockInfoList(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None): ''' - keys : typing.Sequence[str] + models : typing.Sequence[~ModelBlockInfo] ''' - self.keys = keys + self.models = [ModelBlockInfo.from_json(o) for o in models or []] -class ModelUserInfo(Type): - _toSchema = {'user': 'user', 'displayname': 'displayname', 'lastconnection': 'lastconnection', 'access': 'access'} - _toPy = {'user': 'user', 'displayname': 'displayname', 'lastconnection': 'lastconnection', 'access': 'access'} - def __init__(self, access=None, displayname=None, lastconnection=None, user=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): ''' - access : str - displayname : str - lastconnection : str - user : str + model_tag : str + target_info : ModelMigrationTargetInfo ''' - self.access = access - self.displayname = displayname - self.lastconnection = lastconnection - self.user = user + self.model_tag = model_tag + self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None -class ModelUserInfoResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} - def __init__(self, error=None, result=None): +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): ''' - error : Error - result : ModelUserInfo + addrs : typing.Sequence[str] + auth_tag : str + ca_cert : str + controller_tag : str + password : str ''' - self.error = Error.from_json(error) if error else None - self.result = ModelUserInfo.from_json(result) if result else None + self.addrs = addrs + self.auth_tag = auth_tag + self.ca_cert = ca_cert + self.controller_tag = controller_tag + self.password = password -class ModelUserInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~ModelUserInfoResult] + hosted_machine_count : int + life : str + model_tag : str + owner_tag : str + service_count : int ''' - self.results = [ModelUserInfoResult.from_json(o) for o in results or []] + 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 -class PrivateAddress(Type): - _toSchema = {'target': 'Target'} - _toPy = {'Target': 'target'} - def __init__(self, target=None): +class ModelStatusResults(Type): + _toSchema = {'models': 'models'} + _toPy = {'models': 'models'} + def __init__(self, models=None): ''' - target : str + models : typing.Sequence[~ModelStatus] ''' - self.target = target + self.models = [ModelStatus.from_json(o) for o in models or []] -class PrivateAddressResults(Type): - _toSchema = {'privateaddress': 'PrivateAddress'} - _toPy = {'PrivateAddress': 'privateaddress'} - def __init__(self, privateaddress=None): +class RemoveBlocksArgs(Type): + _toSchema = {'all_': 'all'} + _toPy = {'all': 'all_'} + def __init__(self, all_=None): ''' - privateaddress : str + all_ : bool ''' - self.privateaddress = privateaddress + self.all_ = all_ -class ProvisioningScriptParams(Type): - _toSchema = {'datadir': 'DataDir', 'disablepackagecommands': 'DisablePackageCommands', 'machineid': 'MachineId', 'nonce': 'Nonce'} - _toPy = {'MachineId': 'machineid', 'DisablePackageCommands': 'disablepackagecommands', 'DataDir': 'datadir', 'Nonce': 'nonce'} - def __init__(self, datadir=None, disablepackagecommands=None, machineid=None, nonce=None): +class UserModel(Type): + _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'} + _toPy = {'LastConnection': 'lastconnection', 'Model': 'model'} + def __init__(self, lastconnection=None, model=None): ''' - datadir : str - disablepackagecommands : bool - machineid : str - nonce : str + lastconnection : str + model : Model ''' - self.datadir = datadir - self.disablepackagecommands = disablepackagecommands - self.machineid = machineid - self.nonce = nonce + self.lastconnection = lastconnection + self.model = Model.from_json(model) if model else None -class ProvisioningScriptResult(Type): - _toSchema = {'script': 'Script'} - _toPy = {'Script': 'script'} - def __init__(self, script=None): +class UserModelList(Type): + _toSchema = {'usermodels': 'UserModels'} + _toPy = {'UserModels': 'usermodels'} + def __init__(self, usermodels=None): ''' - script : str + usermodels : typing.Sequence[~UserModel] ''' - self.script = script + self.usermodels = [UserModel.from_json(o) for o in usermodels or []] -class PublicAddress(Type): - _toSchema = {'target': 'Target'} - _toPy = {'Target': 'target'} - def __init__(self, target=None): +class BytesResult(Type): + _toSchema = {'result': 'Result'} + _toPy = {'Result': 'result'} + def __init__(self, result=None): ''' - target : str + result : typing.Sequence[int] ''' - self.target = target + self.result = result -class PublicAddressResults(Type): - _toSchema = {'publicaddress': 'PublicAddress'} - _toPy = {'PublicAddress': 'publicaddress'} - def __init__(self, publicaddress=None): +class DeployerConnectionValues(Type): + _toSchema = {'apiaddresses': 'APIAddresses', 'stateaddresses': 'StateAddresses'} + _toPy = {'StateAddresses': 'stateaddresses', 'APIAddresses': 'apiaddresses'} + def __init__(self, apiaddresses=None, stateaddresses=None): ''' - publicaddress : str + apiaddresses : typing.Sequence[str] + stateaddresses : typing.Sequence[str] ''' - self.publicaddress = publicaddress + self.apiaddresses = apiaddresses + self.stateaddresses = stateaddresses -class RelationStatus(Type): - _toSchema = {'scope': 'Scope', 'interface': 'Interface', 'endpoints': 'Endpoints', 'id_': 'Id', 'key': 'Key'} - _toPy = {'Scope': 'scope', 'Id': 'id_', 'Endpoints': 'endpoints', 'Key': 'key', 'Interface': 'interface'} - def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None): +class LifeResult(Type): + _toSchema = {'error': 'Error', 'life': 'Life'} + _toPy = {'Error': 'error', 'Life': 'life'} + def __init__(self, error=None, life=None): ''' - endpoints : typing.Sequence[~EndpointStatus] - id_ : int - interface : str - key : str - scope : str + error : Error + life : str ''' - self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []] - self.id_ = id_ - self.interface = interface - self.key = key - self.scope = scope + self.error = Error.from_json(error) if error else None + self.life = life -class ResolveCharmResult(Type): - _toSchema = {'url': 'URL', 'error': 'Error'} - _toPy = {'URL': 'url', 'Error': 'error'} - def __init__(self, error=None, url=None): +class LifeResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - error : str - url : URL + results : typing.Sequence[~LifeResult] ''' - self.error = error - self.url = URL.from_json(url) if url else None + self.results = [LifeResult.from_json(o) for o in results or []] -class ResolveCharmResults(Type): - _toSchema = {'urls': 'URLs'} - _toPy = {'URLs': 'urls'} - def __init__(self, urls=None): +class StringResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} + def __init__(self, error=None, result=None): ''' - urls : typing.Sequence[~ResolveCharmResult] + error : Error + result : str ''' - self.urls = [ResolveCharmResult.from_json(o) for o in urls or []] + self.error = Error.from_json(error) if error else None + self.result = result -class ResolveCharms(Type): - _toSchema = {'references': 'References'} - _toPy = {'References': 'references'} - def __init__(self, references=None): +class StringsResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} + def __init__(self, error=None, result=None): ''' - references : typing.Sequence[~URL] + error : Error + result : typing.Sequence[str] ''' - self.references = [URL.from_json(o) for o in references or []] + self.error = Error.from_json(error) if error else None + self.result = result -class Resolved(Type): - _toSchema = {'unitname': 'UnitName', 'retry': 'Retry'} - _toPy = {'UnitName': 'unitname', 'Retry': 'retry'} - def __init__(self, retry=None, unitname=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): ''' - retry : bool - unitname : str + changes : typing.Sequence[str] + error : Error + stringswatcherid : str ''' - self.retry = retry - self.unitname = unitname + self.changes = changes + self.error = Error.from_json(error) if error else None + self.stringswatcherid = stringswatcherid -class SetModelAgentVersion(Type): - _toSchema = {'patch': 'Patch', 'tag': 'Tag', 'major': 'Major', 'build': 'Build', 'minor': 'Minor'} - _toPy = {'Patch': 'patch', 'Major': 'major', 'Build': 'build', 'Minor': 'minor', 'Tag': 'tag'} - def __init__(self, build=None, major=None, minor=None, patch=None, tag=None): +class StringsWatchResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - build : int - major : int - minor : int - patch : int - tag : str + results : typing.Sequence[~StringsWatchResult] ''' - self.build = build - self.major = major - self.minor = minor - self.patch = patch - self.tag = tag + self.results = [StringsWatchResult.from_json(o) for o in results or []] -class StatusHistoryFilter(Type): - _toSchema = {'delta': 'Delta', 'date': 'Date', 'size': 'Size'} - _toPy = {'Size': 'size', 'Delta': 'delta', 'Date': 'date'} - def __init__(self, date=None, delta=None, size=None): +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): ''' - date : str - delta : int - size : int + spacetag : str + subnetproviderid : str + subnettag : str + zones : typing.Sequence[str] ''' - self.date = date - self.delta = delta - self.size = size + self.spacetag = spacetag + self.subnetproviderid = subnetproviderid + self.subnettag = subnettag + self.zones = zones -class StatusHistoryRequest(Type): - _toSchema = {'tag': 'Tag', 'filter_': 'Filter', 'historykind': 'HistoryKind', 'size': 'Size'} - _toPy = {'Size': 'size', 'Filter': 'filter_', 'HistoryKind': 'historykind', 'Tag': 'tag'} - def __init__(self, filter_=None, historykind=None, size=None, tag=None): +class AddSubnetsParams(Type): + _toSchema = {'subnets': 'Subnets'} + _toPy = {'Subnets': 'subnets'} + def __init__(self, subnets=None): ''' - filter_ : StatusHistoryFilter - historykind : str - size : int - tag : str + subnets : typing.Sequence[~AddSubnetParams] ''' - self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None - self.historykind = historykind - self.size = size - self.tag = tag + self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] -class StatusHistoryRequests(Type): - _toSchema = {'requests': 'Requests'} - _toPy = {'Requests': 'requests'} - def __init__(self, requests=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): ''' - requests : typing.Sequence[~StatusHistoryRequest] + providerid : str + public : bool + spacetag : str + subnettags : typing.Sequence[str] ''' - self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []] + self.providerid = providerid + self.public = public + self.spacetag = spacetag + self.subnettags = subnettags -class StatusHistoryResult(Type): - _toSchema = {'history': 'History', 'error': 'Error'} - _toPy = {'History': 'history', 'Error': 'error'} - def __init__(self, error=None, history=None): +class CreateSpacesParams(Type): + _toSchema = {'spaces': 'Spaces'} + _toPy = {'Spaces': 'spaces'} + def __init__(self, spaces=None): ''' - error : Error - history : History + spaces : typing.Sequence[~CreateSpaceParams] ''' - self.error = Error.from_json(error) if error else None - self.history = History.from_json(history) if history else None + self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] -class StatusHistoryResults(Type): +class DiscoverSpacesResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StatusHistoryResult] + results : typing.Sequence[~ProviderSpace] ''' - self.results = [StatusHistoryResult.from_json(o) for o in results or []] + self.results = [ProviderSpace.from_json(o) for o in results or []] -class StatusParams(Type): - _toSchema = {'patterns': 'Patterns'} - _toPy = {'Patterns': 'patterns'} - def __init__(self, patterns=None): +class ListSubnetsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - patterns : typing.Sequence[str] + results : typing.Sequence[~Subnet] ''' - self.patterns = patterns + self.results = [Subnet.from_json(o) for o in results or []] -class Tools(Type): - _toSchema = {'url': 'url', 'size': 'size', 'version': 'version', 'sha256': 'sha256'} - _toPy = {'url': 'url', 'size': 'size', 'version': 'version', 'sha256': 'sha256'} - def __init__(self, sha256=None, size=None, url=None, version=None): +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): ''' - sha256 : str - size : int - url : str - version : Binary + error : Error + name : str + providerid : str + subnets : typing.Sequence[~Subnet] ''' - self.sha256 = sha256 - self.size = size - self.url = url - self.version = Binary.from_json(version) if version else None + 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 URL(Type): - _toSchema = {'name': 'Name', 'channel': 'Channel', 'schema': 'Schema', 'user': 'User', 'series': 'Series', 'revision': 'Revision'} - _toPy = {'Channel': 'channel', 'User': 'user', 'Name': 'name', 'Series': 'series', 'Revision': 'revision', 'Schema': 'schema'} - def __init__(self, channel=None, name=None, revision=None, schema=None, series=None, user=None): +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): ''' - channel : str - name : str - revision : int - schema : str - series : str - user : 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.channel = channel - self.name = name - self.revision = revision - self.schema = schema - self.series = series - self.user = user + 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 UnitStatus(Type): - _toSchema = {'publicaddress': 'PublicAddress', 'charm': 'Charm', 'agentstatus': 'AgentStatus', 'subordinates': 'Subordinates', 'machine': 'Machine', 'workloadstatus': 'WorkloadStatus', 'openedports': 'OpenedPorts'} - _toPy = {'WorkloadStatus': 'workloadstatus', 'OpenedPorts': 'openedports', 'PublicAddress': 'publicaddress', 'Subordinates': 'subordinates', 'AgentStatus': 'agentstatus', 'Machine': 'machine', 'Charm': 'charm'} - def __init__(self, agentstatus=None, charm=None, machine=None, openedports=None, publicaddress=None, subordinates=None, workloadstatus=None): +class SubnetsFilters(Type): + _toSchema = {'zone': 'Zone', 'spacetag': 'SpaceTag'} + _toPy = {'SpaceTag': 'spacetag', 'Zone': 'zone'} + def __init__(self, spacetag=None, zone=None): ''' - agentstatus : DetailedStatus - charm : str + spacetag : str + zone : str + ''' + self.spacetag = spacetag + self.zone = zone + + +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): + ''' + busaddress : str + devicelinks : typing.Sequence[str] + devicename : str + filesystemtype : str + hardwareid : str + inuse : bool + label : str + mountpoint : str + size : int + uuid : str + ''' + self.busaddress = busaddress + self.devicelinks = devicelinks + self.devicename = devicename + self.filesystemtype = filesystemtype + self.hardwareid = hardwareid + self.inuse = inuse + self.label = label + self.mountpoint = mountpoint + self.size = size + self.uuid = uuid + + +class MachineBlockDevices(Type): + _toSchema = {'machine': 'machine', 'blockdevices': 'blockdevices'} + _toPy = {'machine': 'machine', 'blockdevices': 'blockdevices'} + def __init__(self, blockdevices=None, machine=None): + ''' + blockdevices : typing.Sequence[~BlockDevice] machine : str - openedports : typing.Sequence[str] - publicaddress : str - subordinates : typing.Mapping[str, ~UnitStatus] - workloadstatus : DetailedStatus ''' - self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None - self.charm = charm + self.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []] 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 DestroyControllerArgs(Type): - _toSchema = {'destroy_models': 'destroy-models'} - _toPy = {'destroy-models': 'destroy_models'} - def __init__(self, destroy_models=None): +class SetMachineBlockDevices(Type): + _toSchema = {'machineblockdevices': 'machineblockdevices'} + _toPy = {'machineblockdevices': 'machineblockdevices'} + def __init__(self, machineblockdevices=None): ''' - destroy_models : bool + machineblockdevices : typing.Sequence[~MachineBlockDevices] ''' - self.destroy_models = destroy_models + self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []] -class InitiateModelMigrationArgs(Type): - _toSchema = {'specs': 'specs'} - _toPy = {'specs': 'specs'} - def __init__(self, specs=None): +class MachineStorageId(Type): + _toSchema = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} + _toPy = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} + def __init__(self, attachmenttag=None, machinetag=None): ''' - specs : typing.Sequence[~ModelMigrationSpec] + attachmenttag : str + machinetag : str ''' - self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []] + self.attachmenttag = attachmenttag + self.machinetag = machinetag -class InitiateModelMigrationResult(Type): - _toSchema = {'model_tag': 'model-tag', 'id_': 'id', 'error': 'error'} - _toPy = {'id': 'id_', 'model-tag': 'model_tag', 'error': 'error'} - def __init__(self, error=None, id_=None, model_tag=None): +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): ''' + changes : typing.Sequence[~MachineStorageId] error : Error - id_ : str - model_tag : str + machinestorageidswatcherid : str ''' + self.changes = [MachineStorageId.from_json(o) for o in changes or []] self.error = Error.from_json(error) if error else None - self.id_ = id_ - self.model_tag = model_tag + self.machinestorageidswatcherid = machinestorageidswatcherid -class InitiateModelMigrationResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} +class BoolResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~InitiateModelMigrationResult] + results : typing.Sequence[~BoolResult] ''' - self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []] + self.results = [BoolResult.from_json(o) for o in results or []] -class Model(Type): - _toSchema = {'name': 'Name', 'ownertag': 'OwnerTag', 'uuid': 'UUID'} - _toPy = {'OwnerTag': 'ownertag', 'UUID': 'uuid', 'Name': 'name'} - def __init__(self, name=None, ownertag=None, uuid=None): +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): ''' - name : str - ownertag : str - uuid : str + portrange : PortRange + relationtag : str + unittag : str ''' - self.name = name - self.ownertag = ownertag - self.uuid = uuid + self.portrange = PortRange.from_json(portrange) if portrange else None + self.relationtag = relationtag + self.unittag = unittag -class ModelBlockInfo(Type): - _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'owner_tag': 'owner-tag', 'name': 'name'} - _toPy = {'blocks': 'blocks', 'model-uuid': 'model_uuid', 'owner-tag': 'owner_tag', 'name': 'name'} - def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None): +class MachinePorts(Type): + _toSchema = {'machinetag': 'MachineTag', 'subnettag': 'SubnetTag'} + _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'} + def __init__(self, machinetag=None, subnettag=None): ''' - blocks : typing.Sequence[str] - model_uuid : str - name : str - owner_tag : str + machinetag : str + subnettag : str ''' - self.blocks = blocks - self.model_uuid = model_uuid - self.name = name - self.owner_tag = owner_tag + self.machinetag = machinetag + self.subnettag = subnettag -class ModelBlockInfoList(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None): +class MachinePortsParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - models : typing.Sequence[~ModelBlockInfo] + params : typing.Sequence[~MachinePorts] ''' - self.models = [ModelBlockInfo.from_json(o) for o in models or []] + self.params = [MachinePorts.from_json(o) for o in params or []] -class ModelMigrationSpec(Type): - _toSchema = {'model_tag': 'model-tag', 'target_info': 'target-info'} - _toPy = {'target-info': 'target_info', 'model-tag': 'model_tag'} - def __init__(self, model_tag=None, target_info=None): +class MachinePortsResult(Type): + _toSchema = {'error': 'Error', 'ports': 'Ports'} + _toPy = {'Error': 'error', 'Ports': 'ports'} + def __init__(self, error=None, ports=None): ''' - model_tag : str - target_info : ModelMigrationTargetInfo + error : Error + ports : typing.Sequence[~MachinePortRange] ''' - self.model_tag = model_tag - self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None + self.error = Error.from_json(error) if error else None + self.ports = [MachinePortRange.from_json(o) for o in ports or []] -class ModelMigrationTargetInfo(Type): - _toSchema = {'password': 'password', 'addrs': 'addrs', 'auth_tag': 'auth-tag', 'controller_tag': 'controller-tag', 'ca_cert': 'ca-cert'} - _toPy = {'password': 'password', 'ca-cert': 'ca_cert', 'addrs': 'addrs', 'controller-tag': 'controller_tag', 'auth-tag': 'auth_tag'} - def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, password=None): +class MachinePortsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - addrs : typing.Sequence[str] - auth_tag : str - ca_cert : str - controller_tag : str - password : str + results : typing.Sequence[~MachinePortsResult] ''' - self.addrs = addrs - self.auth_tag = auth_tag - self.ca_cert = ca_cert - self.controller_tag = controller_tag - self.password = password + self.results = [MachinePortsResult.from_json(o) for o in results or []] -class ModelStatus(Type): - _toSchema = {'model_tag': 'model-tag', 'owner_tag': 'owner-tag', 'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'life': 'life'} - _toPy = {'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'owner-tag': 'owner_tag', 'model-tag': 'model_tag', 'life': 'life'} - def __init__(self, application_count=None, hosted_machine_count=None, life=None, model_tag=None, owner_tag=None): +class NotifyWatchResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - application_count : int - hosted_machine_count : int - life : str - model_tag : str - owner_tag : str + results : typing.Sequence[~NotifyWatchResult] ''' - 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 + self.results = [NotifyWatchResult.from_json(o) for o in results or []] -class ModelStatusResults(Type): - _toSchema = {'models': 'models'} - _toPy = {'models': 'models'} - def __init__(self, models=None): +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): ''' - models : typing.Sequence[~ModelStatus] + fromport : int + protocol : str + toport : int ''' - self.models = [ModelStatus.from_json(o) for o in models or []] + self.fromport = fromport + self.protocol = protocol + self.toport = toport -class RemoveBlocksArgs(Type): - _toSchema = {'all_': 'all'} - _toPy = {'all': 'all_'} - def __init__(self, all_=None): +class StringResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - all_ : bool + results : typing.Sequence[~StringResult] ''' - self.all_ = all_ + self.results = [StringResult.from_json(o) for o in results or []] -class UserModel(Type): - _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'} - _toPy = {'LastConnection': 'lastconnection', 'Model': 'model'} - def __init__(self, lastconnection=None, model=None): +class StringsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - lastconnection : str - model : Model + results : typing.Sequence[~StringsResult] ''' - self.lastconnection = lastconnection - self.model = Model.from_json(model) if model else None + self.results = [StringsResult.from_json(o) for o in results or []] -class UserModelList(Type): - _toSchema = {'usermodels': 'UserModels'} - _toPy = {'UserModels': 'usermodels'} - def __init__(self, usermodels=None): +class ControllersChangeResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} + def __init__(self, error=None, result=None): ''' - usermodels : typing.Sequence[~UserModel] + error : Error + result : ControllersChanges ''' - self.usermodels = [UserModel.from_json(o) for o in usermodels or []] + self.error = Error.from_json(error) if error else None + self.result = ControllersChanges.from_json(result) if result else None -class BytesResult(Type): - _toSchema = {'result': 'Result'} - _toPy = {'Result': 'result'} - def __init__(self, result=None): +class ControllersChangeResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - result : typing.Sequence[int] + results : typing.Sequence[~ControllersChangeResult] ''' - self.result = result + self.results = [ControllersChangeResult.from_json(o) for o in results or []] -class DeployerConnectionValues(Type): - _toSchema = {'stateaddresses': 'StateAddresses', 'apiaddresses': 'APIAddresses'} - _toPy = {'APIAddresses': 'apiaddresses', 'StateAddresses': 'stateaddresses'} - def __init__(self, apiaddresses=None, stateaddresses=None): +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): ''' - apiaddresses : typing.Sequence[str] - stateaddresses : typing.Sequence[str] + added : typing.Sequence[str] + converted : typing.Sequence[str] + demoted : typing.Sequence[str] + maintained : typing.Sequence[str] + promoted : typing.Sequence[str] + removed : typing.Sequence[str] ''' - self.apiaddresses = apiaddresses - self.stateaddresses = stateaddresses + self.added = added + self.converted = converted + self.demoted = demoted + self.maintained = maintained + self.promoted = promoted + self.removed = removed -class LifeResult(Type): - _toSchema = {'life': 'Life', 'error': 'Error'} - _toPy = {'Life': 'life', 'Error': 'error'} - def __init__(self, error=None, life=None): +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): ''' - error : Error - life : str + modeltag : str + constraints : Value + num_controllers : int + placement : typing.Sequence[str] + series : str ''' - self.error = Error.from_json(error) if error else None - self.life = life + 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 LifeResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ControllersSpecs(Type): + _toSchema = {'specs': 'Specs'} + _toPy = {'Specs': 'specs'} + def __init__(self, specs=None): ''' - results : typing.Sequence[~LifeResult] + specs : typing.Sequence[~ControllersSpec] ''' - self.results = [LifeResult.from_json(o) for o in results or []] + self.specs = [ControllersSpec.from_json(o) for o in specs or []] -class StringsResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} - def __init__(self, error=None, result=None): +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): ''' - error : Error - result : typing.Sequence[str] + publicaddress : Address + series : str + tag : str ''' - self.error = Error.from_json(error) if error else None - self.result = result + self.publicaddress = Address.from_json(publicaddress) if publicaddress else None + self.series = series + self.tag = tag -class StringsWatchResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~StringsWatchResult] + address : str + arbiter : bool + buildindexes : bool + hidden : bool + id_ : int + priority : float + slavedelay : int + tags : typing.Mapping[str, str] + votes : int ''' - self.results = [StringsWatchResult.from_json(o) for o in results or []] + 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 AddSubnetParams(Type): - _toSchema = {'zones': 'Zones', 'spacetag': 'SpaceTag', 'subnetproviderid': 'SubnetProviderId', 'subnettag': 'SubnetTag'} - _toPy = {'Zones': 'zones', 'SubnetProviderId': 'subnetproviderid', 'SpaceTag': 'spacetag', 'SubnetTag': 'subnettag'} - def __init__(self, spacetag=None, subnetproviderid=None, subnettag=None, zones=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): ''' - spacetag : str - subnetproviderid : str - subnettag : str - zones : typing.Sequence[str] + master : HAMember + members : typing.Sequence[~HAMember] + rsmembers : typing.Sequence[~Member] ''' - self.spacetag = spacetag - self.subnetproviderid = subnetproviderid - self.subnettag = subnettag - self.zones = zones + 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 AddSubnetsParams(Type): - _toSchema = {'subnets': 'Subnets'} - _toPy = {'Subnets': 'subnets'} - def __init__(self, subnets=None): +class ResumeReplicationParams(Type): + _toSchema = {'members': 'Members'} + _toPy = {'Members': 'members'} + def __init__(self, members=None): ''' - subnets : typing.Sequence[~AddSubnetParams] + members : typing.Sequence[~Member] ''' - self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []] + self.members = [Member.from_json(o) for o in members or []] -class CreateSpaceParams(Type): - _toSchema = {'subnettags': 'SubnetTags', 'providerid': 'ProviderId', 'spacetag': 'SpaceTag', 'public': 'Public'} - _toPy = {'Public': 'public', 'ProviderId': 'providerid', 'SpaceTag': 'spacetag', 'SubnetTags': 'subnettags'} - def __init__(self, providerid=None, public=None, spacetag=None, subnettags=None): +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): ''' - providerid : str - public : bool - spacetag : str - subnettags : typing.Sequence[str] + major : int + minor : int + patch : str + storageengine : str ''' - self.providerid = providerid - self.public = public - self.spacetag = spacetag - self.subnettags = subnettags + self.major = major + self.minor = minor + self.patch = patch + self.storageengine = storageengine -class CreateSpacesParams(Type): - _toSchema = {'spaces': 'Spaces'} - _toPy = {'Spaces': 'spaces'} - def __init__(self, spaces=None): +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): ''' - spaces : typing.Sequence[~CreateSpaceParams] + major : int + minor : int + patch : str + storageengine : str ''' - self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []] + self.major = major + self.minor = minor + self.patch = patch + self.storageengine = storageengine -class DiscoverSpacesResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class SSHHostKeySet(Type): + _toSchema = {'entity_keys': 'entity-keys'} + _toPy = {'entity-keys': 'entity_keys'} + def __init__(self, entity_keys=None): ''' - results : typing.Sequence[~ProviderSpace] + entity_keys : typing.Sequence[~SSHHostKeys] ''' - self.results = [ProviderSpace.from_json(o) for o in results or []] + self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] -class ListSubnetsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~Subnet] + public_keys : typing.Sequence[str] + tag : str ''' - self.results = [Subnet.from_json(o) for o in results or []] + self.public_keys = public_keys + self.tag = tag -class ProviderSpace(Type): - _toSchema = {'name': 'Name', 'subnets': 'Subnets', 'providerid': 'ProviderId', 'error': 'Error'} - _toPy = {'Subnets': 'subnets', 'ProviderId': 'providerid', 'Name': 'name', 'Error': 'error'} - def __init__(self, error=None, name=None, providerid=None, subnets=None): +class ImageFilterParams(Type): + _toSchema = {'images': 'images'} + _toPy = {'images': 'images'} + def __init__(self, images=None): ''' - error : Error - name : str - providerid : str - subnets : typing.Sequence[~Subnet] + images : typing.Sequence[~ImageSpec] ''' - 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 []] + self.images = [ImageSpec.from_json(o) for o in images or []] -class Subnet(Type): - _toSchema = {'vlantag': 'VLANTag', 'staticrangelowip': 'StaticRangeLowIP', 'spacetag': 'SpaceTag', 'status': 'Status', 'life': 'Life', 'zones': 'Zones', 'cidr': 'CIDR', 'providerid': 'ProviderId', 'staticrangehighip': 'StaticRangeHighIP'} - _toPy = {'Zones': 'zones', 'CIDR': 'cidr', 'StaticRangeLowIP': 'staticrangelowip', 'StaticRangeHighIP': 'staticrangehighip', 'VLANTag': 'vlantag', 'Life': 'life', 'Status': 'status', 'ProviderId': 'providerid', 'SpaceTag': 'spacetag'} - def __init__(self, cidr=None, life=None, providerid=None, spacetag=None, staticrangehighip=None, staticrangelowip=None, status=None, vlantag=None, zones=None): +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): ''' - cidr : str - life : str - providerid : str - spacetag : str - staticrangehighip : typing.Sequence[int] - staticrangelowip : typing.Sequence[int] - status : str - vlantag : int - zones : typing.Sequence[str] + arch : str + created : str + kind : str + series : str + url : 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.arch = arch + self.created = created + self.kind = kind + self.series = series + self.url = url -class SubnetsFilters(Type): - _toSchema = {'zone': 'Zone', 'spacetag': 'SpaceTag'} - _toPy = {'Zone': 'zone', 'SpaceTag': 'spacetag'} - def __init__(self, spacetag=None, zone=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): ''' - spacetag : str - zone : str + arch : str + kind : str + series : str ''' - self.spacetag = spacetag - self.zone = zone + self.arch = arch + self.kind = kind + self.series = series -class BlockDevice(Type): - _toSchema = {'uuid': 'UUID', 'label': 'Label', 'size': 'Size', 'hardwareid': 'HardwareId', 'mountpoint': 'MountPoint', 'inuse': 'InUse', 'devicename': 'DeviceName', 'devicelinks': 'DeviceLinks', 'busaddress': 'BusAddress', 'filesystemtype': 'FilesystemType'} - _toPy = {'Label': 'label', 'DeviceLinks': 'devicelinks', 'UUID': 'uuid', 'BusAddress': 'busaddress', 'HardwareId': 'hardwareid', 'Size': 'size', 'InUse': 'inuse', 'FilesystemType': 'filesystemtype', 'DeviceName': 'devicename', '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 ListImageResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None): ''' - busaddress : str - devicelinks : typing.Sequence[str] - devicename : str - filesystemtype : str - hardwareid : str - inuse : bool - label : str - mountpoint : str - size : int - uuid : str + result : typing.Sequence[~ImageMetadata] ''' - 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 + self.result = [ImageMetadata.from_json(o) for o in result or []] -class MachineBlockDevices(Type): - _toSchema = {'blockdevices': 'blockdevices', 'machine': 'machine'} - _toPy = {'blockdevices': 'blockdevices', 'machine': 'machine'} - def __init__(self, blockdevices=None, machine=None): +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): ''' - blockdevices : typing.Sequence[~BlockDevice] - machine : 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.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []] - self.machine = machine + 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 SetMachineBlockDevices(Type): - _toSchema = {'machineblockdevices': 'machineblockdevices'} - _toPy = {'machineblockdevices': 'machineblockdevices'} - def __init__(self, machineblockdevices=None): +class CloudImageMetadataList(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None): ''' - machineblockdevices : typing.Sequence[~MachineBlockDevices] + metadata : typing.Sequence[~CloudImageMetadata] ''' - self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []] + self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] -class MachineStorageId(Type): - _toSchema = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} - _toPy = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'} - def __init__(self, attachmenttag=None, machinetag=None): +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): ''' - attachmenttag : str - machinetag : str + arches : typing.Sequence[str] + region : str + root_storage_type : str + series : typing.Sequence[str] + stream : str + virt_type : str ''' - self.attachmenttag = attachmenttag - self.machinetag = machinetag + 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 MachineStorageIdsWatchResult(Type): - _toSchema = {'changes': 'Changes', 'machinestorageidswatcherid': 'MachineStorageIdsWatcherId', 'error': 'Error'} - _toPy = {'Changes': 'changes', 'MachineStorageIdsWatcherId': 'machinestorageidswatcherid', 'Error': 'error'} - def __init__(self, changes=None, error=None, machinestorageidswatcherid=None): +class ListCloudImageMetadataResult(Type): + _toSchema = {'result': 'result'} + _toPy = {'result': 'result'} + def __init__(self, result=None): ''' - changes : typing.Sequence[~MachineStorageId] - error : Error - machinestorageidswatcherid : str + result : typing.Sequence[~CloudImageMetadata] ''' - 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.result = [CloudImageMetadata.from_json(o) for o in result or []] -class BoolResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class MetadataImageIds(Type): + _toSchema = {'image_ids': 'image_ids'} + _toPy = {'image_ids': 'image_ids'} + def __init__(self, image_ids=None): ''' - results : typing.Sequence[~BoolResult] + image_ids : typing.Sequence[str] ''' - self.results = [BoolResult.from_json(o) for o in results or []] + self.image_ids = image_ids -class MachinePortRange(Type): - _toSchema = {'portrange': 'PortRange', 'relationtag': 'RelationTag', 'unittag': 'UnitTag'} - _toPy = {'RelationTag': 'relationtag', 'PortRange': 'portrange', 'UnitTag': 'unittag'} - def __init__(self, portrange=None, relationtag=None, unittag=None): +class MetadataSaveParams(Type): + _toSchema = {'metadata': 'metadata'} + _toPy = {'metadata': 'metadata'} + def __init__(self, metadata=None): ''' - portrange : PortRange - relationtag : str - unittag : str + metadata : typing.Sequence[~CloudImageMetadataList] ''' - self.portrange = PortRange.from_json(portrange) if portrange else None - self.relationtag = relationtag - self.unittag = unittag + self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] -class MachinePorts(Type): - _toSchema = {'machinetag': 'MachineTag', 'subnettag': 'SubnetTag'} - _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'} - def __init__(self, machinetag=None, subnettag=None): - ''' - machinetag : str - subnettag : str +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): ''' - self.machinetag = machinetag - self.subnettag = subnettag + data : typing.Mapping[str, typing.Any] + info : str + status : str + tag : str + ''' + self.data = data + self.info = info + self.status = status + self.tag = tag -class MachinePortsParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class MachineAddresses(Type): + _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'Addresses': 'addresses'} + def __init__(self, addresses=None, tag=None): ''' - params : typing.Sequence[~MachinePorts] + addresses : typing.Sequence[~Address] + tag : str ''' - self.params = [MachinePorts.from_json(o) for o in params or []] + self.addresses = [Address.from_json(o) for o in addresses or []] + self.tag = tag -class MachinePortsResult(Type): - _toSchema = {'ports': 'Ports', 'error': 'Error'} - _toPy = {'Ports': 'ports', 'Error': 'error'} - def __init__(self, error=None, ports=None): +class MachineAddressesResult(Type): + _toSchema = {'addresses': 'Addresses', 'error': 'Error'} + _toPy = {'Error': 'error', 'Addresses': 'addresses'} + def __init__(self, addresses=None, error=None): ''' + addresses : typing.Sequence[~Address] error : Error - ports : typing.Sequence[~MachinePortRange] ''' + self.addresses = [Address.from_json(o) for o in addresses or []] self.error = Error.from_json(error) if error else None - self.ports = [MachinePortRange.from_json(o) for o in ports or []] -class MachinePortsResults(Type): +class MachineAddressesResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~MachinePortsResult] + results : typing.Sequence[~MachineAddressesResult] ''' - self.results = [MachinePortsResult.from_json(o) for o in results or []] + self.results = [MachineAddressesResult.from_json(o) for o in results or []] -class NotifyWatchResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class SetMachinesAddresses(Type): + _toSchema = {'machineaddresses': 'MachineAddresses'} + _toPy = {'MachineAddresses': 'machineaddresses'} + def __init__(self, machineaddresses=None): ''' - results : typing.Sequence[~NotifyWatchResult] + machineaddresses : typing.Sequence[~MachineAddresses] ''' - self.results = [NotifyWatchResult.from_json(o) for o in results or []] + self.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []] -class PortRange(Type): - _toSchema = {'toport': 'ToPort', 'protocol': 'Protocol', 'fromport': 'FromPort'} - _toPy = {'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'} - def __init__(self, fromport=None, protocol=None, toport=None): +class SetStatus(Type): + _toSchema = {'entities': 'Entities'} + _toPy = {'Entities': 'entities'} + def __init__(self, entities=None): ''' - fromport : int - protocol : str - toport : int + entities : typing.Sequence[~EntityStatusArgs] ''' - self.fromport = fromport - self.protocol = protocol - self.toport = toport + self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] -class StringResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~StringResult] + data : typing.Mapping[str, typing.Any] + error : Error + id_ : str + info : str + life : str + since : str + status : str ''' - self.results = [StringResult.from_json(o) for o in results or []] + 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 StringsResults(Type): +class StatusResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StringsResult] + results : typing.Sequence[~StatusResult] ''' - self.results = [StringsResult.from_json(o) for o in results or []] + self.results = [StatusResult.from_json(o) for o in results or []] -class ControllersChangeResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} - def __init__(self, error=None, result=None): +class ListSSHKeys(Type): + _toSchema = {'mode': 'Mode', 'entities': 'Entities'} + _toPy = {'Mode': 'mode', 'Entities': 'entities'} + def __init__(self, entities=None, mode=None): ''' - error : Error - result : ControllersChanges + entities : Entities + mode : bool ''' - self.error = Error.from_json(error) if error else None - self.result = ControllersChanges.from_json(result) if result else None + self.entities = Entities.from_json(entities) if entities else None + self.mode = mode -class ControllersChangeResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ModifyUserSSHKeys(Type): + _toSchema = {'keys': 'Keys', 'user': 'User'} + _toPy = {'Keys': 'keys', 'User': 'user'} + def __init__(self, keys=None, user=None): ''' - results : typing.Sequence[~ControllersChangeResult] + keys : typing.Sequence[str] + user : str ''' - self.results = [ControllersChangeResult.from_json(o) for o in results or []] + self.keys = keys + self.user = user -class ControllersChanges(Type): - _toSchema = {'added': 'added', 'promoted': 'promoted', 'converted': 'converted', 'maintained': 'maintained', 'removed': 'removed', 'demoted': 'demoted'} - _toPy = {'added': 'added', 'promoted': 'promoted', 'converted': 'converted', 'maintained': 'maintained', 'removed': 'removed', 'demoted': 'demoted'} - def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None): +class ClaimLeadershipBulkParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=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] + params : typing.Sequence[~ClaimLeadershipParams] ''' - self.added = added - self.converted = converted - self.demoted = demoted - self.maintained = maintained - self.promoted = promoted - self.removed = removed + self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] -class ControllersSpec(Type): - _toSchema = {'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series', 'constraints': 'constraints', 'modeltag': 'ModelTag'} - _toPy = {'placement': 'placement', 'num-controllers': 'num_controllers', 'ModelTag': 'modeltag', 'series': 'series', 'constraints': 'constraints'} - def __init__(self, modeltag=None, constraints=None, num_controllers=None, placement=None, series=None): +class ClaimLeadershipBulkResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - modeltag : str - constraints : Value - num_controllers : int - placement : typing.Sequence[str] - series : str + results : typing.Sequence[~ErrorResult] ''' - 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.results = [ErrorResult.from_json(o) for o in results or []] -class ControllersSpecs(Type): - _toSchema = {'specs': 'Specs'} - _toPy = {'Specs': 'specs'} - def __init__(self, specs=None): +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): ''' - specs : typing.Sequence[~ControllersSpec] + durationseconds : float + servicetag : str + unittag : str ''' - self.specs = [ControllersSpec.from_json(o) for o in specs or []] + self.durationseconds = durationseconds + self.servicetag = servicetag + self.unittag = unittag -class HAMember(Type): - _toSchema = {'publicaddress': 'PublicAddress', 'series': 'Series', 'tag': 'Tag'} - _toPy = {'PublicAddress': 'publicaddress', 'Series': 'series', 'Tag': 'tag'} - def __init__(self, publicaddress=None, series=None, tag=None): +class ServiceTag(Type): + _toSchema = {'name': 'Name'} + _toPy = {'Name': 'name'} + def __init__(self, name=None): ''' - publicaddress : Address - series : str - tag : str + name : str ''' - self.publicaddress = Address.from_json(publicaddress) if publicaddress else None - self.series = series - self.tag = tag + self.name = name -class Member(Type): - _toSchema = {'hidden': 'Hidden', 'slavedelay': 'SlaveDelay', 'votes': 'Votes', 'priority': 'Priority', 'id_': 'Id', 'buildindexes': 'BuildIndexes', 'tags': 'Tags', 'address': 'Address', 'arbiter': 'Arbiter'} - _toPy = {'BuildIndexes': 'buildindexes', 'Arbiter': 'arbiter', 'Votes': 'votes', 'Hidden': 'hidden', 'Id': 'id_', 'Priority': 'priority', 'Tags': 'tags', 'Address': 'address', 'SlaveDelay': 'slavedelay'} - def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None): +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): ''' - address : str - arbiter : bool - buildindexes : bool - hidden : bool - id_ : int - priority : float - slavedelay : int - tags : typing.Mapping[str, str] - votes : int + actiontag : str + message : str + results : typing.Mapping[str, typing.Any] + status : str ''' - 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.actiontag = actiontag + self.message = message + self.results = results + self.status = status -class MongoUpgradeResults(Type): - _toSchema = {'rsmembers': 'RsMembers', 'master': 'Master', 'members': 'Members'} - _toPy = {'Members': 'members', 'RsMembers': 'rsmembers', 'Master': 'master'} - def __init__(self, master=None, members=None, rsmembers=None): +class ActionExecutionResults(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[~ActionExecutionResult] ''' - 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 = [ActionExecutionResult.from_json(o) for o in results or []] -class ResumeReplicationParams(Type): - _toSchema = {'members': 'Members'} - _toPy = {'Members': 'members'} - def __init__(self, members=None): +class JobsResult(Type): + _toSchema = {'jobs': 'Jobs', 'error': 'Error'} + _toPy = {'Error': 'error', 'Jobs': 'jobs'} + def __init__(self, error=None, jobs=None): ''' - members : typing.Sequence[~Member] + error : Error + jobs : typing.Sequence[str] ''' - self.members = [Member.from_json(o) for o in members or []] + self.error = Error.from_json(error) if error else None + self.jobs = jobs -class UpgradeMongoParams(Type): - _toSchema = {'storageengine': 'StorageEngine', 'major': 'Major', 'minor': 'Minor', 'patch': 'Patch'} - _toPy = {'StorageEngine': 'storageengine', 'Patch': 'patch', 'Major': 'major', 'Minor': 'minor'} - def __init__(self, major=None, minor=None, patch=None, storageengine=None): +class JobsResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - major : int - minor : int - patch : str - storageengine : str + results : typing.Sequence[~JobsResult] ''' - self.major = major - self.minor = minor - self.patch = patch - self.storageengine = storageengine + self.results = [JobsResult.from_json(o) for o in results or []] -class Version(Type): - _toSchema = {'storageengine': 'StorageEngine', 'major': 'Major', 'minor': 'Minor', 'patch': 'Patch'} - _toPy = {'StorageEngine': 'storageengine', 'Patch': 'patch', 'Major': 'major', 'Minor': 'minor'} - def __init__(self, major=None, minor=None, patch=None, storageengine=None): +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): ''' - major : int - minor : int - patch : str - storageengine : 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.major = major - self.minor = minor - self.patch = patch - self.storageengine = storageengine + 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 SSHHostKeySet(Type): - _toSchema = {'entity_keys': 'entity-keys'} - _toPy = {'entity-keys': 'entity_keys'} - def __init__(self, entity_keys=None): +class SetMachineNetworkConfig(Type): + _toSchema = {'config': 'Config', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'Config': 'config'} + def __init__(self, config=None, tag=None): ''' - entity_keys : typing.Sequence[~SSHHostKeys] + config : typing.Sequence[~NetworkConfig] + tag : str ''' - self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []] + self.config = [NetworkConfig.from_json(o) for o in config or []] + self.tag = tag -class SSHHostKeys(Type): - _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'} - _toPy = {'tag': 'tag', 'public-keys': 'public_keys'} - def __init__(self, public_keys=None, tag=None): +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): ''' - public_keys : typing.Sequence[str] - tag : str + code : str + error : Error + info : str ''' - self.public_keys = public_keys - self.tag = tag + self.code = code + self.error = Error.from_json(error) if error else None + self.info = info -class ImageFilterParams(Type): - _toSchema = {'images': 'images'} - _toPy = {'images': 'images'} - def __init__(self, images=None): +class MeterStatusResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - images : typing.Sequence[~ImageSpec] + results : typing.Sequence[~MeterStatusResult] ''' - self.images = [ImageSpec.from_json(o) for o in images or []] + self.results = [MeterStatusResult.from_json(o) for o in results or []] -class ImageMetadata(Type): - _toSchema = {'series': 'series', 'url': 'url', 'created': 'created', 'kind': 'kind', 'arch': 'arch'} - _toPy = {'series': 'series', 'url': 'url', 'created': 'created', 'kind': 'kind', 'arch': 'arch'} - def __init__(self, arch=None, created=None, kind=None, series=None, url=None): +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): ''' - arch : str + key : str + time : str + value : str + ''' + self.key = key + self.time = time + self.value = value + + +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): + ''' + charmurl : str created : str - kind : str - series : str - url : str + metrics : typing.Sequence[~Metric] + uuid : str ''' - self.arch = arch + self.charmurl = charmurl self.created = created - self.kind = kind - self.series = series - self.url = url + self.metrics = [Metric.from_json(o) for o in metrics or []] + self.uuid = uuid -class ImageSpec(Type): - _toSchema = {'series': 'series', 'kind': 'kind', 'arch': 'arch'} - _toPy = {'series': 'series', 'kind': 'kind', 'arch': 'arch'} - def __init__(self, arch=None, kind=None, series=None): +class MetricBatchParam(Type): + _toSchema = {'batch': 'Batch', 'tag': 'Tag'} + _toPy = {'Tag': 'tag', 'Batch': 'batch'} + def __init__(self, batch=None, tag=None): ''' - arch : str - kind : str - series : str + batch : MetricBatch + tag : str ''' - self.arch = arch - self.kind = kind - self.series = series + self.batch = MetricBatch.from_json(batch) if batch else None + self.tag = tag -class ListImageResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, result=None): +class MetricBatchParams(Type): + _toSchema = {'batches': 'Batches'} + _toPy = {'Batches': 'batches'} + def __init__(self, batches=None): ''' - result : typing.Sequence[~ImageMetadata] + batches : typing.Sequence[~MetricBatchParam] ''' - self.result = [ImageMetadata.from_json(o) for o in result or []] + self.batches = [MetricBatchParam.from_json(o) for o in batches or []] -class CloudImageMetadata(Type): - _toSchema = {'series': 'series', 'priority': 'priority', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'image_id': 'image_id', 'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'region': 'region', 'stream': 'stream'} - _toPy = {'series': 'series', 'priority': 'priority', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'image_id': 'image_id', 'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'region': 'region', 'stream': 'stream'} - 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 EntityMetrics(Type): + _toSchema = {'error': 'error', 'metrics': 'metrics'} + _toPy = {'error': 'error', 'metrics': 'metrics'} + def __init__(self, error=None, metrics=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 + error : Error + metrics : typing.Sequence[~MetricResult] ''' - 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.error = Error.from_json(error) if error else None + self.metrics = [MetricResult.from_json(o) for o in metrics or []] -class CloudImageMetadataList(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None): +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): ''' - metadata : typing.Sequence[~CloudImageMetadata] + code : str + info : str + tag : str ''' - self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []] + self.code = code + self.info = info + self.tag = tag -class ImageMetadataFilter(Type): - _toSchema = {'series': 'series', 'root_storage_type': 'root-storage-type', 'arches': 'arches', 'virt_type': 'virt_type', 'region': 'region', 'stream': 'stream'} - _toPy = {'series': 'series', 'arches': 'arches', 'root-storage-type': 'root_storage_type', 'virt_type': 'virt_type', 'region': 'region', 'stream': 'stream'} - def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None): +class MeterStatusParams(Type): + _toSchema = {'statues': 'statues'} + _toPy = {'statues': 'statues'} + def __init__(self, statues=None): ''' - arches : typing.Sequence[str] - region : str - root_storage_type : str - series : typing.Sequence[str] - stream : str - virt_type : str + statues : typing.Sequence[~MeterStatusParam] ''' - self.arches = arches - self.region = region - self.root_storage_type = root_storage_type - self.series = series - self.stream = stream - self.virt_type = virt_type + self.statues = [MeterStatusParam.from_json(o) for o in statues or []] -class ListCloudImageMetadataResult(Type): - _toSchema = {'result': 'result'} - _toPy = {'result': 'result'} - def __init__(self, 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): ''' - result : typing.Sequence[~CloudImageMetadata] + key : str + time : str + value : str ''' - self.result = [CloudImageMetadata.from_json(o) for o in result or []] + self.key = key + self.time = time + self.value = value -class MetadataImageIds(Type): - _toSchema = {'image_ids': 'image_ids'} - _toPy = {'image_ids': 'image_ids'} - def __init__(self, image_ids=None): +class MetricResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - image_ids : typing.Sequence[str] + results : typing.Sequence[~EntityMetrics] ''' - self.image_ids = image_ids + self.results = [EntityMetrics.from_json(o) for o in results or []] -class MetadataSaveParams(Type): - _toSchema = {'metadata': 'metadata'} - _toPy = {'metadata': 'metadata'} - def __init__(self, metadata=None): +class PhaseResult(Type): + _toSchema = {'error': 'Error', 'phase': 'phase'} + _toPy = {'Error': 'error', 'phase': 'phase'} + def __init__(self, error=None, phase=None): ''' - metadata : typing.Sequence[~CloudImageMetadataList] + error : Error + phase : str ''' - self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []] + self.error = Error.from_json(error) if error else None + self.phase = phase -class EntityStatusArgs(Type): - _toSchema = {'data': 'Data', 'tag': 'Tag', 'status': 'Status', 'info': 'Info'} - _toPy = {'Data': 'data', 'Status': 'status', 'Info': 'info', 'Tag': 'tag'} - def __init__(self, data=None, info=None, status=None, tag=None): - ''' - data : typing.Mapping[str, typing.Any] - info : str - status : str - tag : str +class PhaseResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - self.data = data - self.info = info - self.status = status - self.tag = tag + results : typing.Sequence[~PhaseResult] + ''' + self.results = [PhaseResult.from_json(o) for o in results or []] -class MachineAddresses(Type): - _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'} - _toPy = {'Addresses': 'addresses', 'Tag': 'tag'} - def __init__(self, addresses=None, tag=None): +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): ''' - addresses : typing.Sequence[~Address] - tag : str + attempt : int + phase : str + spec : ModelMigrationSpec ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.tag = tag + self.attempt = attempt + self.phase = phase + self.spec = ModelMigrationSpec.from_json(spec) if spec else None -class MachineAddressesResult(Type): - _toSchema = {'addresses': 'Addresses', 'error': 'Error'} - _toPy = {'Addresses': 'addresses', 'Error': 'error'} - def __init__(self, addresses=None, error=None): +class SerializedModel(Type): + _toSchema = {'bytes_': 'bytes'} + _toPy = {'bytes': 'bytes_'} + def __init__(self, bytes_=None): ''' - addresses : typing.Sequence[~Address] - error : Error + bytes_ : typing.Sequence[int] ''' - self.addresses = [Address.from_json(o) for o in addresses or []] - self.error = Error.from_json(error) if error else None + self.bytes_ = bytes_ -class MachineAddressesResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class SetMigrationPhaseArgs(Type): + _toSchema = {'phase': 'phase'} + _toPy = {'phase': 'phase'} + def __init__(self, phase=None): ''' - results : typing.Sequence[~MachineAddressesResult] + phase : str ''' - self.results = [MachineAddressesResult.from_json(o) for o in results or []] + self.phase = phase -class SetMachinesAddresses(Type): - _toSchema = {'machineaddresses': 'MachineAddresses'} - _toPy = {'MachineAddresses': 'machineaddresses'} - def __init__(self, machineaddresses=None): +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): ''' - machineaddresses : typing.Sequence[~MachineAddresses] + 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.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []] + 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 SetStatus(Type): - _toSchema = {'entities': 'Entities'} - _toPy = {'Entities': 'entities'} - def __init__(self, entities=None): +class ModelArgs(Type): + _toSchema = {'model_tag': 'model-tag'} + _toPy = {'model-tag': 'model_tag'} + def __init__(self, model_tag=None): ''' - entities : typing.Sequence[~EntityStatusArgs] + model_tag : str ''' - self.entities = [EntityStatusArgs.from_json(o) for o in entities or []] + self.model_tag = model_tag -class StatusResult(Type): - _toSchema = {'status': 'Status', 'id_': 'Id', 'life': 'Life', 'data': 'Data', 'since': 'Since', 'error': 'Error', 'info': 'Info'} - _toPy = {'Since': 'since', 'Error': 'error', 'Data': 'data', 'Id': 'id_', 'Status': 'status', 'Life': 'life', 'Info': 'info'} - def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None): +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): + ''' + account : typing.Mapping[str, typing.Any] + config : typing.Mapping[str, typing.Any] + ownertag : str + ''' + self.account = account + self.config = config + self.ownertag = ownertag + + +class ModelInfoResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + 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 : ModelInfo ''' - 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 = ModelInfo.from_json(result) if result else None -class StatusResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} +class ModelInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~StatusResult] + results : typing.Sequence[~ModelInfoResult] ''' - self.results = [StatusResult.from_json(o) for o in results or []] + self.results = [ModelInfoResult.from_json(o) for o in results or []] -class ListSSHKeys(Type): - _toSchema = {'entities': 'Entities', 'mode': 'Mode'} - _toPy = {'Mode': 'mode', 'Entities': 'entities'} - def __init__(self, entities=None, mode=None): +class ModelSkeletonConfigArgs(Type): + _toSchema = {'provider': 'Provider', 'region': 'Region'} + _toPy = {'Region': 'region', 'Provider': 'provider'} + def __init__(self, provider=None, region=None): ''' - entities : Entities - mode : bool + provider : str + region : str ''' - self.entities = Entities.from_json(entities) if entities else None - self.mode = mode + self.provider = provider + self.region = region -class ModifyUserSSHKeys(Type): - _toSchema = {'keys': 'Keys', 'user': 'User'} - _toPy = {'User': 'user', 'Keys': 'keys'} - def __init__(self, keys=None, user=None): +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): ''' - keys : typing.Sequence[str] - user : str + access : str + action : str + model_tag : str + user_tag : str ''' - self.keys = keys - self.user = user + self.access = access + self.action = action + self.model_tag = model_tag + self.user_tag = user_tag -class ApplicationTag(Type): - _toSchema = {'name': 'Name'} - _toPy = {'Name': 'name'} - def __init__(self, name=None): +class ModifyModelAccessRequest(Type): + _toSchema = {'changes': 'changes'} + _toPy = {'changes': 'changes'} + def __init__(self, changes=None): ''' - name : str + changes : typing.Sequence[~ModifyModelAccess] ''' - self.name = name + self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] -class ClaimLeadershipBulkParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class ConstraintsResult(Type): + _toSchema = {'error': 'Error', 'constraints': 'Constraints'} + _toPy = {'Constraints': 'constraints', 'Error': 'error'} + def __init__(self, constraints=None, error=None): ''' - params : typing.Sequence[~ClaimLeadershipParams] + constraints : Value + error : Error ''' - self.params = [ClaimLeadershipParams.from_json(o) for o in params or []] + self.constraints = Value.from_json(constraints) if constraints else None + self.error = Error.from_json(error) if error else None -class ClaimLeadershipBulkResults(Type): +class ConstraintsResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ErrorResult] + results : typing.Sequence[~ConstraintsResult] ''' - self.results = [ErrorResult.from_json(o) for o in results or []] + self.results = [ConstraintsResult.from_json(o) for o in results or []] -class ClaimLeadershipParams(Type): - _toSchema = {'applicationtag': 'ApplicationTag', 'durationseconds': 'DurationSeconds', 'unittag': 'UnitTag'} - _toPy = {'UnitTag': 'unittag', 'ApplicationTag': 'applicationtag', 'DurationSeconds': 'durationseconds'} - def __init__(self, applicationtag=None, durationseconds=None, unittag=None): +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): ''' - applicationtag : str - durationseconds : float - unittag : str + allowlxcloopmounts : bool + aptmirror : str + aptproxy : Settings + authorizedkeys : str + preferipv6 : bool + providertype : str + proxy : Settings + sslhostnameverification : bool + updatebehavior : UpdateBehavior ''' - self.applicationtag = applicationtag - self.durationseconds = durationseconds - self.unittag = unittag + 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 -class ActionExecutionResult(Type): - _toSchema = {'actiontag': 'actiontag', 'message': 'message', 'status': 'status', 'results': 'results'} - _toPy = {'actiontag': 'actiontag', 'message': 'message', 'status': 'status', 'results': 'results'} - def __init__(self, actiontag=None, message=None, results=None, status=None): +class ContainerManagerConfig(Type): + _toSchema = {'managerconfig': 'ManagerConfig'} + _toPy = {'ManagerConfig': 'managerconfig'} + def __init__(self, managerconfig=None): ''' - actiontag : str - message : str - results : typing.Mapping[str, typing.Any] - status : str + managerconfig : typing.Mapping[str, str] ''' - self.actiontag = actiontag - self.message = message - self.results = results - self.status = status + self.managerconfig = managerconfig -class ActionExecutionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ContainerManagerConfigParams(Type): + _toSchema = {'type_': 'Type'} + _toPy = {'Type': 'type_'} + def __init__(self, type_=None): ''' - results : typing.Sequence[~ActionExecutionResult] + type_ : str ''' - self.results = [ActionExecutionResult.from_json(o) for o in results or []] + self.type_ = type_ -class JobsResult(Type): - _toSchema = {'jobs': 'Jobs', 'error': 'Error'} - _toPy = {'Jobs': 'jobs', 'Error': 'error'} - def __init__(self, error=None, jobs=None): +class DistributionGroupResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} + def __init__(self, error=None, result=None): ''' error : Error - jobs : typing.Sequence[str] + result : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None - self.jobs = jobs + self.result = result -class JobsResults(Type): +class DistributionGroupResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~JobsResult] + results : typing.Sequence[~DistributionGroupResult] ''' - self.results = [JobsResult.from_json(o) for o in results or []] + self.results = [DistributionGroupResult.from_json(o) for o in results or []] -class NetworkConfig(Type): - _toSchema = {'providerspaceid': 'ProviderSpaceId', 'vlantag': 'VLANTag', 'configtype': 'ConfigType', 'mtu': 'MTU', 'provideraddressid': 'ProviderAddressId', 'gatewayaddress': 'GatewayAddress', 'providersubnetid': 'ProviderSubnetId', 'interfacetype': 'InterfaceType', 'providervlanid': 'ProviderVLANId', 'dnsservers': 'DNSServers', 'disabled': 'Disabled', 'providerid': 'ProviderId', 'parentinterfacename': 'ParentInterfaceName', 'cidr': 'CIDR', 'dnssearchdomains': 'DNSSearchDomains', 'deviceindex': 'DeviceIndex', 'noautostart': 'NoAutoStart', 'interfacename': 'InterfaceName', 'address': 'Address', 'macaddress': 'MACAddress'} - _toPy = {'ProviderSpaceId': 'providerspaceid', 'ProviderAddressId': 'provideraddressid', 'DeviceIndex': 'deviceindex', 'GatewayAddress': 'gatewayaddress', 'ConfigType': 'configtype', 'Disabled': 'disabled', 'ProviderSubnetId': 'providersubnetid', 'VLANTag': 'vlantag', 'NoAutoStart': 'noautostart', 'MTU': 'mtu', 'InterfaceType': 'interfacetype', 'InterfaceName': 'interfacename', 'Address': 'address', 'CIDR': 'cidr', 'DNSSearchDomains': 'dnssearchdomains', 'MACAddress': 'macaddress', 'DNSServers': 'dnsservers', 'ProviderId': 'providerid', 'ParentInterfaceName': 'parentinterfacename', 'ProviderVLANId': 'providervlanid'} - 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): - ''' - 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.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 SetMachineNetworkConfig(Type): - _toSchema = {'tag': 'Tag', 'config': 'Config'} - _toPy = {'Tag': 'tag', 'Config': 'config'} - def __init__(self, config=None, tag=None): +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): ''' - config : typing.Sequence[~NetworkConfig] + characteristics : HardwareCharacteristics + instanceid : str + networkconfig : typing.Sequence[~NetworkConfig] + nonce : str tag : str + volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo] + volumes : typing.Sequence[~Volume] ''' - self.config = [NetworkConfig.from_json(o) for o in config or []] + 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 MeterStatusResult(Type): - _toSchema = {'code': 'Code', 'info': 'Info', 'error': 'Error'} - _toPy = {'Code': 'code', 'Info': 'info', 'Error': 'error'} - def __init__(self, code=None, error=None, info=None): +class InstancesInfo(Type): + _toSchema = {'machines': 'Machines'} + _toPy = {'Machines': 'machines'} + def __init__(self, machines=None): ''' - code : str - error : Error - info : str + machines : typing.Sequence[~InstanceInfo] ''' - self.code = code - self.error = Error.from_json(error) if error else None - self.info = info + self.machines = [InstanceInfo.from_json(o) for o in machines or []] -class MeterStatusResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class MachineContainers(Type): + _toSchema = {'machinetag': 'MachineTag', 'containertypes': 'ContainerTypes'} + _toPy = {'ContainerTypes': 'containertypes', 'MachineTag': 'machinetag'} + def __init__(self, containertypes=None, machinetag=None): ''' - results : typing.Sequence[~MeterStatusResult] + containertypes : typing.Sequence[str] + machinetag : str ''' - self.results = [MeterStatusResult.from_json(o) for o in results or []] + self.containertypes = containertypes + self.machinetag = machinetag -class Metric(Type): - _toSchema = {'value': 'Value', 'time': 'Time', 'key': 'Key'} - _toPy = {'Key': 'key', 'Time': 'time', 'Value': 'value'} - def __init__(self, key=None, time=None, value=None): +class MachineContainersParams(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - key : str - time : str - value : str + params : typing.Sequence[~MachineContainers] ''' - self.key = key - self.time = time - self.value = value + self.params = [MachineContainers.from_json(o) for o in params or []] -class MetricBatch(Type): - _toSchema = {'charmurl': 'CharmURL', 'metrics': 'Metrics', 'created': 'Created', 'uuid': 'UUID'} - _toPy = {'CharmURL': 'charmurl', 'Created': 'created', 'Metrics': 'metrics', 'UUID': 'uuid'} - def __init__(self, charmurl=None, created=None, metrics=None, uuid=None): +class MachineNetworkConfigResult(Type): + _toSchema = {'info': 'Info', 'error': 'Error'} + _toPy = {'Info': 'info', 'Error': 'error'} + def __init__(self, error=None, info=None): ''' - charmurl : str - created : str - metrics : typing.Sequence[~Metric] - uuid : str + error : Error + info : typing.Sequence[~NetworkConfig] ''' - self.charmurl = charmurl - self.created = created - self.metrics = [Metric.from_json(o) for o in metrics or []] - self.uuid = uuid + self.error = Error.from_json(error) if error else None + self.info = [NetworkConfig.from_json(o) for o in info or []] -class MetricBatchParam(Type): - _toSchema = {'tag': 'Tag', 'batch': 'Batch'} - _toPy = {'Batch': 'batch', 'Tag': 'tag'} - def __init__(self, batch=None, tag=None): +class MachineNetworkConfigResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - batch : MetricBatch - tag : str + results : typing.Sequence[~MachineNetworkConfigResult] ''' - self.batch = MetricBatch.from_json(batch) if batch else None - self.tag = tag + self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] -class MetricBatchParams(Type): - _toSchema = {'batches': 'Batches'} - _toPy = {'Batches': 'batches'} - def __init__(self, batches=None): +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): ''' - batches : typing.Sequence[~MetricBatchParam] + 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.batches = [MetricBatchParam.from_json(o) for o in batches or []] + 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 EntityMetrics(Type): - _toSchema = {'metrics': 'metrics', 'error': 'error'} - _toPy = {'metrics': 'metrics', 'error': 'error'} - def __init__(self, error=None, metrics=None): +class ProvisioningInfoResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} + def __init__(self, error=None, result=None): ''' error : Error - metrics : typing.Sequence[~MetricResult] + result : ProvisioningInfo ''' self.error = Error.from_json(error) if error else None - self.metrics = [MetricResult.from_json(o) for o in metrics or []] - - -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): - ''' - code : str - info : str - tag : str - ''' - self.code = code - self.info = info - self.tag = tag - - -class MeterStatusParams(Type): - _toSchema = {'statues': 'statues'} - _toPy = {'statues': 'statues'} - def __init__(self, statues=None): - ''' - statues : typing.Sequence[~MeterStatusParam] - ''' - self.statues = [MeterStatusParam.from_json(o) for o in statues or []] + self.result = ProvisioningInfo.from_json(result) if result else None -class MetricResult(Type): - _toSchema = {'value': 'value', 'time': 'time', 'key': 'key'} - _toPy = {'value': 'value', 'time': 'time', 'key': 'key'} - def __init__(self, key=None, time=None, value=None): +class ProvisioningInfoResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - key : str - time : str - value : str + results : typing.Sequence[~ProvisioningInfoResult] ''' - self.key = key - self.time = time - self.value = value + self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] -class MetricResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~EntityMetrics] + ftp : str + http : str + https : str + noproxy : str ''' - self.results = [EntityMetrics.from_json(o) for o in results or []] + self.ftp = ftp + self.http = http + self.https = https + self.noproxy = noproxy -class PhaseResult(Type): - _toSchema = {'phase': 'phase', 'error': 'Error'} - _toPy = {'phase': 'phase', 'Error': 'error'} - def __init__(self, error=None, phase=None): +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): ''' + disablesslhostnameverification : bool error : Error - phase : str + toolslist : typing.Sequence[~Tools] ''' + self.disablesslhostnameverification = disablesslhostnameverification self.error = Error.from_json(error) if error else None - self.phase = phase + self.toolslist = [Tools.from_json(o) for o in toolslist or []] -class PhaseResults(Type): +class ToolsResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~PhaseResult] + results : typing.Sequence[~ToolsResult] ''' - self.results = [PhaseResult.from_json(o) for o in results or []] + self.results = [ToolsResult.from_json(o) for o in results or []] -class FullMigrationStatus(Type): - _toSchema = {'phase': 'phase', 'spec': 'spec', 'attempt': 'attempt'} - _toPy = {'phase': 'phase', 'spec': 'spec', 'attempt': 'attempt'} - def __init__(self, attempt=None, phase=None, spec=None): +class UpdateBehavior(Type): + _toSchema = {'enableosupgrade': 'EnableOSUpgrade', 'enableosrefreshupdate': 'EnableOSRefreshUpdate'} + _toPy = {'EnableOSUpgrade': 'enableosupgrade', 'EnableOSRefreshUpdate': 'enableosrefreshupdate'} + def __init__(self, enableosrefreshupdate=None, enableosupgrade=None): ''' - attempt : int - phase : str - spec : ModelMigrationSpec + enableosrefreshupdate : bool + enableosupgrade : bool ''' - self.attempt = attempt - self.phase = phase - self.spec = ModelMigrationSpec.from_json(spec) if spec else None + self.enableosrefreshupdate = enableosrefreshupdate + self.enableosupgrade = enableosupgrade -class SerializedModel(Type): - _toSchema = {'bytes_': 'bytes'} - _toPy = {'bytes': 'bytes_'} - def __init__(self, bytes_=None): +class Volume(Type): + _toSchema = {'info': 'info', 'volumetag': 'volumetag'} + _toPy = {'info': 'info', 'volumetag': 'volumetag'} + def __init__(self, info=None, volumetag=None): ''' - bytes_ : typing.Sequence[int] + info : VolumeInfo + volumetag : str ''' - self.bytes_ = bytes_ + self.info = VolumeInfo.from_json(info) if info else None + self.volumetag = volumetag -class SetMigrationPhaseArgs(Type): - _toSchema = {'phase': 'phase'} - _toPy = {'phase': 'phase'} - def __init__(self, phase=None): +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): ''' - phase : str + busaddress : str + devicelink : str + devicename : str + read_only : bool ''' - self.phase = phase + self.busaddress = busaddress + self.devicelink = devicelink + self.devicename = devicename + self.read_only = read_only -class MigrationStatus(Type): - _toSchema = {'phase': 'phase', 'source_api_addrs': 'source-api-addrs', 'source_ca_cert': 'source-ca-cert', 'target_api_addrs': 'target-api-addrs', 'target_ca_cert': 'target-ca-cert', 'attempt': 'attempt'} - _toPy = {'phase': 'phase', 'source-api-addrs': 'source_api_addrs', 'attempt': 'attempt', 'target-api-addrs': 'target_api_addrs', 'source-ca-cert': 'source_ca_cert', 'target-ca-cert': 'target_ca_cert'} - def __init__(self, attempt=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None): +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): ''' - attempt : int - phase : str - source_api_addrs : typing.Sequence[str] - source_ca_cert : str - target_api_addrs : typing.Sequence[str] - target_ca_cert : str + instanceid : str + machinetag : str + provider : str + read_only : bool + volumeid : str + volumetag : str ''' - 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.instanceid = instanceid + self.machinetag = machinetag + self.provider = provider + self.read_only = read_only + self.volumeid = volumeid + self.volumetag = volumetag -class ModelArgs(Type): - _toSchema = {'model_tag': 'model-tag'} - _toPy = {'model-tag': 'model_tag'} - def __init__(self, model_tag=None): +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): ''' - model_tag : str + hardwareid : str + persistent : bool + size : int + volumeid : str ''' - self.model_tag = model_tag + self.hardwareid = hardwareid + self.persistent = persistent + self.size = size + self.volumeid = volumeid -class ModelCreateArgs(Type): - _toSchema = {'account': 'Account', 'ownertag': 'OwnerTag', 'config': 'Config'} - _toPy = {'Config': 'config', 'OwnerTag': 'ownertag', 'Account': 'account'} - def __init__(self, account=None, config=None, ownertag=None): +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): ''' - account : typing.Mapping[str, typing.Any] - config : typing.Mapping[str, typing.Any] - ownertag : str + attachment : VolumeAttachmentParams + attributes : typing.Mapping[str, typing.Any] + provider : str + size : int + tags : typing.Mapping[str, str] + volumetag : str ''' - self.account = account - self.config = config - self.ownertag = ownertag + 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 ModelInfoResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} - def __init__(self, error=None, result=None): +class WatchContainer(Type): + _toSchema = {'containertype': 'ContainerType', 'machinetag': 'MachineTag'} + _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'} + def __init__(self, containertype=None, machinetag=None): ''' - error : Error - result : ModelInfo + containertype : str + machinetag : str ''' - self.error = Error.from_json(error) if error else None - self.result = ModelInfo.from_json(result) if result else None + self.containertype = containertype + self.machinetag = machinetag -class ModelInfoResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class WatchContainers(Type): + _toSchema = {'params': 'Params'} + _toPy = {'Params': 'params'} + def __init__(self, params=None): ''' - results : typing.Sequence[~ModelInfoResult] + params : typing.Sequence[~WatchContainer] ''' - self.results = [ModelInfoResult.from_json(o) for o in results or []] + self.params = [WatchContainer.from_json(o) for o in params or []] -class ModelSkeletonConfigArgs(Type): - _toSchema = {'provider': 'Provider', 'region': 'Region'} - _toPy = {'Provider': 'provider', 'Region': 'region'} - def __init__(self, provider=None, region=None): +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): ''' - provider : str - region : str + ftp : str + http : str + https : str + noproxy : str ''' - self.provider = provider - self.region = region + self.ftp = ftp + self.http = http + self.https = https + self.noproxy = noproxy -class ModifyModelAccess(Type): - _toSchema = {'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag', 'access': 'access'} - _toPy = {'action': 'action', 'user-tag': 'user_tag', 'access': 'access', 'model-tag': 'model_tag'} - def __init__(self, access=None, action=None, model_tag=None, user_tag=None): +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): ''' - access : str - action : str - model_tag : str - user_tag : str + aptproxysettings : ProxyConfig + error : Error + proxysettings : ProxyConfig ''' - self.access = access - self.action = action - self.model_tag = model_tag - self.user_tag = user_tag + 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 ModifyModelAccessRequest(Type): - _toSchema = {'changes': 'changes'} - _toPy = {'changes': 'changes'} - def __init__(self, changes=None): +class ProxyConfigResults(Type): + _toSchema = {'results': 'Results'} + _toPy = {'Results': 'results'} + def __init__(self, results=None): ''' - changes : typing.Sequence[~ModifyModelAccess] + results : typing.Sequence[~ProxyConfigResult] ''' - self.changes = [ModifyModelAccess.from_json(o) for o in changes or []] + self.results = [ProxyConfigResult.from_json(o) for o in results or []] -class ConstraintsResult(Type): - _toSchema = {'constraints': 'Constraints', 'error': 'Error'} - _toPy = {'Constraints': 'constraints', 'Error': 'error'} - def __init__(self, constraints=None, error=None): +class RebootActionResult(Type): + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} + def __init__(self, error=None, result=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 ConstraintsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} +class RebootActionResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~ConstraintsResult] + results : typing.Sequence[~RebootActionResult] ''' - self.results = [ConstraintsResult.from_json(o) for o in results or []] + self.results = [RebootActionResult.from_json(o) for o in results or []] -class ContainerConfig(Type): - _toSchema = {'sslhostnameverification': 'SSLHostnameVerification', 'aptproxy': 'AptProxy', 'providertype': 'ProviderType', 'proxy': 'Proxy', 'updatebehavior': 'UpdateBehavior', 'authorizedkeys': 'AuthorizedKeys', 'aptmirror': 'AptMirror', 'allowlxcloopmounts': 'AllowLXCLoopMounts'} - _toPy = {'AuthorizedKeys': 'authorizedkeys', 'Proxy': 'proxy', 'UpdateBehavior': 'updatebehavior', 'SSLHostnameVerification': 'sslhostnameverification', 'AptMirror': 'aptmirror', 'AllowLXCLoopMounts': 'allowlxcloopmounts', 'ProviderType': 'providertype', 'AptProxy': 'aptproxy'} - def __init__(self, allowlxcloopmounts=None, aptmirror=None, aptproxy=None, authorizedkeys=None, providertype=None, proxy=None, sslhostnameverification=None, updatebehavior=None): +class RelationUnitsChange(Type): + _toSchema = {'departed': 'Departed', 'changed': 'Changed'} + _toPy = {'Departed': 'departed', 'Changed': 'changed'} + def __init__(self, changed=None, departed=None): ''' - allowlxcloopmounts : bool - aptmirror : str - aptproxy : Settings - authorizedkeys : str - providertype : str - proxy : Settings - sslhostnameverification : bool - updatebehavior : UpdateBehavior + changed : typing.Mapping[str, ~UnitSettings] + departed : typing.Sequence[str] ''' - 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 + self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()} + self.departed = departed -class ContainerManagerConfig(Type): - _toSchema = {'managerconfig': 'ManagerConfig'} - _toPy = {'ManagerConfig': 'managerconfig'} - def __init__(self, managerconfig=None): +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): ''' - managerconfig : typing.Mapping[str, str] + changes : RelationUnitsChange + error : Error + relationunitswatcherid : str ''' - self.managerconfig = managerconfig + self.changes = RelationUnitsChange.from_json(changes) if changes else None + self.error = Error.from_json(error) if error else None + self.relationunitswatcherid = relationunitswatcherid -class ContainerManagerConfigParams(Type): - _toSchema = {'type_': 'Type'} - _toPy = {'Type': 'type_'} - def __init__(self, type_=None): +class UnitSettings(Type): + _toSchema = {'version': 'Version'} + _toPy = {'Version': 'version'} + def __init__(self, version=None): ''' - type_ : str + version : int ''' - self.type_ = type_ + self.version = version -class DistributionGroupResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} +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): + ''' + jitterretrytime : bool + maxretrytime : int + minretrytime : int + retrytimefactor : int + shouldretry : bool + ''' + self.jitterretrytime = jitterretrytime + self.maxretrytime = maxretrytime + self.minretrytime = minretrytime + self.retrytimefactor = retrytimefactor + self.shouldretry = shouldretry + + +class RetryStrategyResult(Type): + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} def __init__(self, error=None, result=None): ''' error : Error - result : typing.Sequence[str] + result : RetryStrategy ''' self.error = Error.from_json(error) if error else None - self.result = result + self.result = RetryStrategy.from_json(result) if result else None -class DistributionGroupResults(Type): +class RetryStrategyResults(Type): _toSchema = {'results': 'Results'} _toPy = {'Results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~DistributionGroupResult] + results : typing.Sequence[~RetryStrategyResult] ''' - self.results = [DistributionGroupResult.from_json(o) for o in results or []] - - -class InstanceInfo(Type): - _toSchema = {'instanceid': 'InstanceId', 'tag': 'Tag', 'networkconfig': 'NetworkConfig', 'volumes': 'Volumes', 'nonce': 'Nonce', 'characteristics': 'Characteristics', 'volumeattachments': 'VolumeAttachments'} - _toPy = {'InstanceId': 'instanceid', 'Characteristics': 'characteristics', 'Nonce': 'nonce', 'VolumeAttachments': 'volumeattachments', 'NetworkConfig': 'networkconfig', 'Tag': 'tag', 'Volumes': 'volumes'} - def __init__(self, characteristics=None, instanceid=None, networkconfig=None, nonce=None, tag=None, volumeattachments=None, volumes=None): - ''' - characteristics : HardwareCharacteristics - instanceid : str - networkconfig : typing.Sequence[~NetworkConfig] - nonce : str - tag : str - volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo] - volumes : typing.Sequence[~Volume] - ''' - 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.results = [RetryStrategyResult.from_json(o) for o in results or []] -class InstancesInfo(Type): - _toSchema = {'machines': 'Machines'} - _toPy = {'Machines': 'machines'} - def __init__(self, machines=None): +class SSHAddressResult(Type): + _toSchema = {'error': 'error', 'address': 'address'} + _toPy = {'error': 'error', 'address': 'address'} + def __init__(self, address=None, error=None): ''' - machines : typing.Sequence[~InstanceInfo] + address : str + error : Error ''' - self.machines = [InstanceInfo.from_json(o) for o in machines or []] + self.address = address + self.error = Error.from_json(error) if error else None -class MachineContainers(Type): - _toSchema = {'machinetag': 'MachineTag', 'containertypes': 'ContainerTypes'} - _toPy = {'MachineTag': 'machinetag', 'ContainerTypes': 'containertypes'} - def __init__(self, containertypes=None, machinetag=None): +class SSHAddressResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - containertypes : typing.Sequence[str] - machinetag : str + results : typing.Sequence[~SSHAddressResult] ''' - self.containertypes = containertypes - self.machinetag = machinetag + self.results = [SSHAddressResult.from_json(o) for o in results or []] -class MachineContainersParams(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): +class SSHProxyResult(Type): + _toSchema = {'use_proxy': 'use-proxy'} + _toPy = {'use-proxy': 'use_proxy'} + def __init__(self, use_proxy=None): ''' - params : typing.Sequence[~MachineContainers] + use_proxy : bool ''' - self.params = [MachineContainers.from_json(o) for o in params or []] + self.use_proxy = use_proxy -class MachineNetworkConfigResult(Type): - _toSchema = {'info': 'Info', 'error': 'Error'} - _toPy = {'Info': 'info', 'Error': 'error'} - def __init__(self, error=None, info=None): +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): ''' error : Error - info : typing.Sequence[~NetworkConfig] + public_keys : typing.Sequence[str] ''' self.error = Error.from_json(error) if error else None - self.info = [NetworkConfig.from_json(o) for o in info or []] + self.public_keys = public_keys -class MachineNetworkConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} +class SSHPublicKeysResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} def __init__(self, results=None): ''' - results : typing.Sequence[~MachineNetworkConfigResult] + results : typing.Sequence[~SSHPublicKeysResult] ''' - self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []] + self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] -class ProvisioningInfo(Type): - _toSchema = {'jobs': 'Jobs', 'volumes': 'Volumes', 'endpointbindings': 'EndpointBindings', 'constraints': 'Constraints', 'tags': 'Tags', 'placement': 'Placement', 'imagemetadata': 'ImageMetadata', 'series': 'Series', 'subnetstozones': 'SubnetsToZones'} - _toPy = {'Volumes': 'volumes', 'Tags': 'tags', 'Placement': 'placement', 'EndpointBindings': 'endpointbindings', 'ImageMetadata': 'imagemetadata', 'Series': 'series', 'SubnetsToZones': 'subnetstozones', 'Constraints': 'constraints', 'Jobs': 'jobs'} - def __init__(self, constraints=None, endpointbindings=None, imagemetadata=None, jobs=None, placement=None, series=None, subnetstozones=None, tags=None, volumes=None): +class AddRelation(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=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] + endpoints : typing.Sequence[str] ''' - 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.endpoints = endpoints -class ProvisioningInfoResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} - def __init__(self, error=None, result=None): +class AddRelationResults(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=None): ''' - error : Error - result : ProvisioningInfo + endpoints : typing.Mapping[str, ~Relation] ''' - self.error = Error.from_json(error) if error else None - self.result = ProvisioningInfo.from_json(result) if result else None + self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()} -class ProvisioningInfoResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +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): ''' - results : typing.Sequence[~ProvisioningInfoResult] + numunits : int + placement : typing.Sequence[~Placement] + servicename : str ''' - self.results = [ProvisioningInfoResult.from_json(o) for o in results or []] + self.numunits = numunits + self.placement = [Placement.from_json(o) for o in placement or []] + self.servicename = servicename -class Settings(Type): - _toSchema = {'noproxy': 'NoProxy', 'https': 'Https', 'ftp': 'Ftp', 'http': 'Http'} - _toPy = {'Https': 'https', 'NoProxy': 'noproxy', 'Http': 'http', 'Ftp': 'ftp'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None): +class AddServiceUnitsResults(Type): + _toSchema = {'units': 'Units'} + _toPy = {'Units': 'units'} + def __init__(self, units=None): ''' - ftp : str - http : str - https : str - noproxy : str + units : typing.Sequence[str] ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy + self.units = units -class ToolsResult(Type): - _toSchema = {'disablesslhostnameverification': 'DisableSSLHostnameVerification', 'toolslist': 'ToolsList', 'error': 'Error'} - _toPy = {'ToolsList': 'toolslist', 'DisableSSLHostnameVerification': 'disablesslhostnameverification', 'Error': 'error'} - def __init__(self, disablesslhostnameverification=None, error=None, toolslist=None): +class DestroyRelation(Type): + _toSchema = {'endpoints': 'Endpoints'} + _toPy = {'Endpoints': 'endpoints'} + def __init__(self, endpoints=None): ''' - disablesslhostnameverification : bool - error : Error - toolslist : typing.Sequence[~Tools] + endpoints : typing.Sequence[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.endpoints = endpoints -class ToolsResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class DestroyServiceUnits(Type): + _toSchema = {'unitnames': 'UnitNames'} + _toPy = {'UnitNames': 'unitnames'} + def __init__(self, unitnames=None): ''' - results : typing.Sequence[~ToolsResult] + unitnames : typing.Sequence[str] ''' - self.results = [ToolsResult.from_json(o) for o in results or []] + self.unitnames = unitnames -class UpdateBehavior(Type): - _toSchema = {'enableosrefreshupdate': 'EnableOSRefreshUpdate', 'enableosupgrade': 'EnableOSUpgrade'} - _toPy = {'EnableOSRefreshUpdate': 'enableosrefreshupdate', 'EnableOSUpgrade': 'enableosupgrade'} - def __init__(self, enableosrefreshupdate=None, enableosupgrade=None): +class GetServiceConstraints(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - enableosrefreshupdate : bool - enableosupgrade : bool + servicename : str ''' - self.enableosrefreshupdate = enableosrefreshupdate - self.enableosupgrade = enableosupgrade + self.servicename = servicename -class Volume(Type): - _toSchema = {'volumetag': 'volumetag', 'info': 'info'} - _toPy = {'volumetag': 'volumetag', 'info': 'info'} - def __init__(self, info=None, volumetag=None): +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): ''' - info : VolumeInfo - volumetag : str + interface : str + limit : int + name : str + optional : bool + role : str + scope : str ''' - self.info = VolumeInfo.from_json(info) if info else None - self.volumetag = volumetag + self.interface = interface + self.limit = limit + self.name = name + self.optional = optional + self.role = role + self.scope = scope -class VolumeAttachmentInfo(Type): - _toSchema = {'read_only': 'read-only', 'devicename': 'devicename', 'devicelink': 'devicelink', 'busaddress': 'busaddress'} - _toPy = {'devicename': 'devicename', 'devicelink': 'devicelink', 'busaddress': 'busaddress', 'read-only': 'read_only'} - def __init__(self, busaddress=None, devicelink=None, devicename=None, read_only=None): +class ServiceCharmRelations(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - busaddress : str - devicelink : str - devicename : str - read_only : bool + servicename : str ''' - self.busaddress = busaddress - self.devicelink = devicelink - self.devicename = devicename - self.read_only = read_only + self.servicename = servicename -class VolumeAttachmentParams(Type): - _toSchema = {'instanceid': 'instanceid', 'read_only': 'read-only', 'volumeid': 'volumeid', 'machinetag': 'machinetag', 'provider': 'provider', 'volumetag': 'volumetag'} - _toPy = {'read-only': 'read_only', 'instanceid': 'instanceid', 'volumeid': 'volumeid', 'machinetag': 'machinetag', 'provider': 'provider', 'volumetag': 'volumetag'} - def __init__(self, instanceid=None, machinetag=None, provider=None, read_only=None, volumeid=None, volumetag=None): +class ServiceCharmRelationsResults(Type): + _toSchema = {'charmrelations': 'CharmRelations'} + _toPy = {'CharmRelations': 'charmrelations'} + def __init__(self, charmrelations=None): ''' - instanceid : str - machinetag : str - provider : str - read_only : bool - volumeid : str - volumetag : str + charmrelations : typing.Sequence[str] ''' - self.instanceid = instanceid - self.machinetag = machinetag - self.provider = provider - self.read_only = read_only - self.volumeid = volumeid - self.volumetag = volumetag + self.charmrelations = charmrelations -class VolumeInfo(Type): - _toSchema = {'volumeid': 'volumeid', 'persistent': 'persistent', 'size': 'size', 'hardwareid': 'hardwareid'} - _toPy = {'volumeid': 'volumeid', 'persistent': 'persistent', 'size': 'size', 'hardwareid': 'hardwareid'} - def __init__(self, hardwareid=None, persistent=None, size=None, volumeid=None): +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): ''' - hardwareid : str - persistent : bool - size : int - volumeid : 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 + servicename : str + storage : typing.Mapping[str, ~Constraints] ''' - self.hardwareid = hardwareid - self.persistent = persistent - self.size = size - self.volumeid = volumeid + 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()} -class VolumeParams(Type): - _toSchema = {'size': 'size', 'attributes': 'attributes', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider'} - _toPy = {'size': 'size', 'attributes': 'attributes', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider'} - def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volumetag=None): +class ServiceDestroy(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - attachment : VolumeAttachmentParams - attributes : typing.Mapping[str, typing.Any] - provider : str - size : int - tags : typing.Mapping[str, str] - volumetag : 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 - - -class WatchContainer(Type): - _toSchema = {'machinetag': 'MachineTag', 'containertype': 'ContainerType'} - _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'} - def __init__(self, containertype=None, machinetag=None): - ''' - containertype : str - machinetag : str - ''' - self.containertype = containertype - self.machinetag = machinetag - - -class WatchContainers(Type): - _toSchema = {'params': 'Params'} - _toPy = {'Params': 'params'} - def __init__(self, params=None): - ''' - params : typing.Sequence[~WatchContainer] - ''' - self.params = [WatchContainer.from_json(o) for o in params or []] - - -class ProxyConfig(Type): - _toSchema = {'noproxy': 'NoProxy', 'https': 'HTTPS', 'ftp': 'FTP', 'http': 'HTTP'} - _toPy = {'NoProxy': 'noproxy', 'HTTP': 'http', 'HTTPS': 'https', 'FTP': 'ftp'} - def __init__(self, ftp=None, http=None, https=None, noproxy=None): - ''' - ftp : str - http : str - https : str - noproxy : str - ''' - self.ftp = ftp - self.http = http - self.https = https - self.noproxy = noproxy - - -class ProxyConfigResult(Type): - _toSchema = {'proxysettings': 'ProxySettings', 'aptproxysettings': 'APTProxySettings', 'error': 'Error'} - _toPy = {'APTProxySettings': 'aptproxysettings', 'ProxySettings': 'proxysettings', 'Error': 'error'} - def __init__(self, aptproxysettings=None, error=None, proxysettings=None): - ''' - aptproxysettings : ProxyConfig - error : Error - proxysettings : ProxyConfig - ''' - 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 ProxyConfigResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): - ''' - results : typing.Sequence[~ProxyConfigResult] - ''' - self.results = [ProxyConfigResult.from_json(o) for o in results or []] - - -class RebootActionResult(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 RebootActionResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): - ''' - results : typing.Sequence[~RebootActionResult] + servicename : str ''' - self.results = [RebootActionResult.from_json(o) for o in results or []] + self.servicename = servicename -class RelationUnitsChange(Type): - _toSchema = {'changed': 'Changed', 'departed': 'Departed'} - _toPy = {'Departed': 'departed', 'Changed': 'changed'} - def __init__(self, changed=None, departed=None): +class ServiceExpose(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - changed : typing.Mapping[str, ~UnitSettings] - departed : typing.Sequence[str] + servicename : str ''' - self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()} - self.departed = departed + self.servicename = servicename -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): +class ServiceGet(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - changes : RelationUnitsChange - error : Error - relationunitswatcherid : str + servicename : 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.servicename = servicename -class UnitSettings(Type): - _toSchema = {'version': 'Version'} - _toPy = {'Version': 'version'} - def __init__(self, version=None): +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): ''' - version : int + charm : str + config : typing.Mapping[str, typing.Any] + constraints : Value + service : str ''' - self.version = version + self.charm = charm + self.config = config + self.constraints = Value.from_json(constraints) if constraints else None + self.service = service -class RetryStrategy(Type): - _toSchema = {'shouldretry': 'ShouldRetry', 'jitterretrytime': 'JitterRetryTime', 'minretrytime': 'MinRetryTime', 'retrytimefactor': 'RetryTimeFactor', 'maxretrytime': 'MaxRetryTime'} - _toPy = {'RetryTimeFactor': 'retrytimefactor', 'MaxRetryTime': 'maxretrytime', 'ShouldRetry': 'shouldretry', 'MinRetryTime': 'minretrytime', 'JitterRetryTime': 'jitterretrytime'} - def __init__(self, jitterretrytime=None, maxretrytime=None, minretrytime=None, retrytimefactor=None, shouldretry=None): +class ServiceMetricCredential(Type): + _toSchema = {'metriccredentials': 'MetricCredentials', 'servicename': 'ServiceName'} + _toPy = {'MetricCredentials': 'metriccredentials', 'ServiceName': 'servicename'} + def __init__(self, metriccredentials=None, servicename=None): ''' - jitterretrytime : bool - maxretrytime : int - minretrytime : int - retrytimefactor : int - shouldretry : bool + metriccredentials : typing.Sequence[int] + servicename : str ''' - self.jitterretrytime = jitterretrytime - self.maxretrytime = maxretrytime - self.minretrytime = minretrytime - self.retrytimefactor = retrytimefactor - self.shouldretry = shouldretry + self.metriccredentials = metriccredentials + self.servicename = servicename -class RetryStrategyResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} - def __init__(self, error=None, result=None): +class ServiceMetricCredentials(Type): + _toSchema = {'creds': 'Creds'} + _toPy = {'Creds': 'creds'} + def __init__(self, creds=None): ''' - error : Error - result : RetryStrategy + creds : typing.Sequence[~ServiceMetricCredential] ''' - self.error = Error.from_json(error) if error else None - self.result = RetryStrategy.from_json(result) if result else None + self.creds = [ServiceMetricCredential.from_json(o) for o in creds or []] -class RetryStrategyResults(Type): - _toSchema = {'results': 'Results'} - _toPy = {'Results': 'results'} - def __init__(self, results=None): +class ServiceSet(Type): + _toSchema = {'options': 'Options', 'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename', 'Options': 'options'} + def __init__(self, options=None, servicename=None): ''' - results : typing.Sequence[~RetryStrategyResult] + options : typing.Mapping[str, str] + servicename : str ''' - self.results = [RetryStrategyResult.from_json(o) for o in results or []] + self.options = options + self.servicename = servicename -class SSHAddressResult(Type): - _toSchema = {'address': 'address', 'error': 'error'} - _toPy = {'address': 'address', 'error': 'error'} - def __init__(self, address=None, error=None): +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): ''' - address : str - error : Error + charmurl : str + cs_channel : str + forceseries : bool + forceunits : bool + resourceids : typing.Mapping[str, str] + servicename : str ''' - self.address = address - self.error = Error.from_json(error) if error else None + self.charmurl = charmurl + self.cs_channel = cs_channel + self.forceseries = forceseries + self.forceunits = forceunits + self.resourceids = resourceids + self.servicename = servicename -class SSHAddressResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ServiceUnexpose(Type): + _toSchema = {'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename'} + def __init__(self, servicename=None): ''' - results : typing.Sequence[~SSHAddressResult] + servicename : str ''' - self.results = [SSHAddressResult.from_json(o) for o in results or []] + self.servicename = servicename -class SSHProxyResult(Type): - _toSchema = {'use_proxy': 'use-proxy'} - _toPy = {'use-proxy': 'use_proxy'} - def __init__(self, use_proxy=None): +class ServiceUnset(Type): + _toSchema = {'options': 'Options', 'servicename': 'ServiceName'} + _toPy = {'ServiceName': 'servicename', 'Options': 'options'} + def __init__(self, options=None, servicename=None): ''' - use_proxy : bool + options : typing.Sequence[str] + servicename : str ''' - self.use_proxy = use_proxy + self.options = options + self.servicename = servicename -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): +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): ''' - error : Error - public_keys : typing.Sequence[str] + charmurl : str + constraints : Value + forcecharmurl : bool + forceseries : bool + minunits : int + servicename : str + settingsstrings : typing.Mapping[str, str] + settingsyaml : str ''' - self.error = Error.from_json(error) if error else None - self.public_keys = public_keys + 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 -class SSHPublicKeysResults(Type): - _toSchema = {'results': 'results'} - _toPy = {'results': 'results'} - def __init__(self, results=None): +class ServicesDeploy(Type): + _toSchema = {'services': 'Services'} + _toPy = {'Services': 'services'} + def __init__(self, services=None): ''' - results : typing.Sequence[~SSHPublicKeysResult] + services : typing.Sequence[~ServiceDeploy] ''' - self.results = [SSHPublicKeysResult.from_json(o) for o in results or []] + self.services = [ServiceDeploy.from_json(o) for o in services or []] class SingularClaim(Type): - _toSchema = {'controllertag': 'ControllerTag', 'duration': 'Duration', 'modeltag': 'ModelTag'} - _toPy = {'Duration': 'duration', 'ModelTag': 'modeltag', 'ControllerTag': 'controllertag'} + _toSchema = {'modeltag': 'ModelTag', 'controllertag': 'ControllerTag', 'duration': 'Duration'} + _toPy = {'ControllerTag': 'controllertag', 'Duration': 'duration', 'ModelTag': 'modeltag'} def __init__(self, controllertag=None, duration=None, modeltag=None): ''' controllertag : str @@ -3980,8 +3925,8 @@ class ListSpacesResults(Type): class Space(Type): - _toSchema = {'name': 'Name', 'subnets': 'Subnets', 'error': 'Error'} - _toPy = {'Subnets': 'subnets', 'Name': 'name', 'Error': 'error'} + _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'} + _toPy = {'Error': 'error', 'Subnets': 'subnets', 'Name': 'name'} def __init__(self, error=None, name=None, subnets=None): ''' error : Error @@ -3994,20 +3939,18 @@ class Space(Type): class StatusHistoryPruneArgs(Type): - _toSchema = {'maxhistorytime': 'MaxHistoryTime', 'maxhistorymb': 'MaxHistoryMB'} - _toPy = {'MaxHistoryTime': 'maxhistorytime', 'MaxHistoryMB': 'maxhistorymb'} - def __init__(self, maxhistorymb=None, maxhistorytime=None): + _toSchema = {'maxlogsperentity': 'MaxLogsPerEntity'} + _toPy = {'MaxLogsPerEntity': 'maxlogsperentity'} + def __init__(self, maxlogsperentity=None): ''' - maxhistorymb : int - maxhistorytime : int + maxlogsperentity : int ''' - self.maxhistorymb = maxhistorymb - self.maxhistorytime = maxhistorytime + self.maxlogsperentity = maxlogsperentity class FilesystemAttachmentInfo(Type): - _toSchema = {'read_only': 'read-only', 'mountpoint': 'mountpoint'} - _toPy = {'read-only': 'read_only', 'mountpoint': 'mountpoint'} + _toSchema = {'mountpoint': 'mountpoint', 'read_only': 'read-only'} + _toPy = {'mountpoint': 'mountpoint', 'read-only': 'read_only'} def __init__(self, mountpoint=None, read_only=None): ''' mountpoint : str @@ -4018,8 +3961,8 @@ class FilesystemAttachmentInfo(Type): class FilesystemDetails(Type): - _toSchema = {'volumetag': 'volumetag', 'machineattachments': 'machineattachments', 'status': 'status', 'storage': 'storage', 'filesystemtag': 'filesystemtag', 'info': 'info'} - _toPy = {'volumetag': 'volumetag', 'machineattachments': 'machineattachments', 'status': 'status', 'storage': 'storage', 'filesystemtag': 'filesystemtag', 'info': 'info'} + _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): ''' filesystemtag : str @@ -4038,8 +3981,8 @@ class FilesystemDetails(Type): class FilesystemDetailsListResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4092,8 +4035,8 @@ class FilesystemInfo(Type): class StorageAddParams(Type): - _toSchema = {'storage': 'storage', 'unit': 'unit', 'storagename': 'StorageName'} - _toPy = {'storage': 'storage', 'unit': 'unit', 'StorageName': 'storagename'} + _toSchema = {'unit': 'unit', 'storagename': 'StorageName', 'storage': 'storage'} + _toPy = {'unit': 'unit', 'StorageName': 'storagename', 'storage': 'storage'} def __init__(self, storagename=None, storage=None, unit=None): ''' storagename : str @@ -4106,8 +4049,8 @@ class StorageAddParams(Type): class StorageAttachmentDetails(Type): - _toSchema = {'machinetag': 'machinetag', 'storagetag': 'storagetag', 'location': 'location', 'unittag': 'unittag'} - _toPy = {'machinetag': 'machinetag', 'storagetag': 'storagetag', 'location': 'location', 'unittag': 'unittag'} + _toSchema = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'} + _toPy = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'} def __init__(self, location=None, machinetag=None, storagetag=None, unittag=None): ''' location : str @@ -4122,8 +4065,8 @@ class StorageAttachmentDetails(Type): class StorageConstraints(Type): - _toSchema = {'size': 'Size', 'pool': 'Pool', 'count': 'Count'} - _toPy = {'Size': 'size', 'Count': 'count', 'Pool': 'pool'} + _toSchema = {'pool': 'Pool', 'count': 'Count', 'size': 'Size'} + _toPy = {'Pool': 'pool', 'Count': 'count', 'Size': 'size'} def __init__(self, count=None, pool=None, size=None): ''' count : int @@ -4136,8 +4079,8 @@ class StorageConstraints(Type): class StorageDetails(Type): - _toSchema = {'attachments': 'attachments', 'ownertag': 'ownertag', 'kind': 'kind', 'status': 'status', 'persistent': 'Persistent', 'storagetag': 'storagetag'} - _toPy = {'attachments': 'attachments', 'ownertag': 'ownertag', 'kind': 'kind', 'status': 'status', 'storagetag': 'storagetag', 'Persistent': 'persistent'} + _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'} def __init__(self, persistent=None, attachments=None, kind=None, ownertag=None, status=None, storagetag=None): ''' persistent : bool @@ -4156,8 +4099,8 @@ class StorageDetails(Type): class StorageDetailsListResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4178,8 +4121,8 @@ class StorageDetailsListResults(Type): class StorageDetailsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4288,8 +4231,8 @@ class StoragesAddParams(Type): class VolumeDetails(Type): - _toSchema = {'storage': 'storage', 'volumetag': 'volumetag', 'machineattachments': 'machineattachments', 'status': 'status', 'info': 'info'} - _toPy = {'storage': 'storage', 'volumetag': 'volumetag', 'machineattachments': 'machineattachments', 'status': 'status', 'info': 'info'} + _toSchema = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'} + _toPy = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'} def __init__(self, info=None, machineattachments=None, status=None, storage=None, volumetag=None): ''' info : VolumeInfo @@ -4306,8 +4249,8 @@ class VolumeDetails(Type): class VolumeDetailsListResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4348,8 +4291,8 @@ class VolumeFilters(Type): class BlockDeviceResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4370,8 +4313,8 @@ class BlockDeviceResults(Type): class Filesystem(Type): - _toSchema = {'volumetag': 'volumetag', 'info': 'info', 'filesystemtag': 'filesystemtag'} - _toPy = {'volumetag': 'volumetag', 'info': 'info', 'filesystemtag': 'filesystemtag'} + _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'} + _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'} def __init__(self, filesystemtag=None, info=None, volumetag=None): ''' filesystemtag : str @@ -4384,8 +4327,8 @@ class Filesystem(Type): class FilesystemAttachment(Type): - _toSchema = {'machinetag': 'machinetag', 'info': 'info', 'filesystemtag': 'filesystemtag'} - _toPy = {'machinetag': 'machinetag', 'info': 'info', 'filesystemtag': 'filesystemtag'} + _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'machinetag': 'machinetag'} + _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'machinetag': 'machinetag'} def __init__(self, filesystemtag=None, info=None, machinetag=None): ''' filesystemtag : str @@ -4398,8 +4341,8 @@ class FilesystemAttachment(Type): class FilesystemAttachmentParams(Type): - _toSchema = {'instanceid': 'instanceid', 'filesystemid': 'filesystemid', 'read_only': 'read-only', 'machinetag': 'machinetag', 'provider': 'provider', 'mountpoint': 'mountpoint', 'filesystemtag': 'filesystemtag'} - _toPy = {'instanceid': 'instanceid', 'filesystemid': 'filesystemid', 'read-only': 'read_only', 'machinetag': 'machinetag', 'provider': 'provider', 'mountpoint': 'mountpoint', 'filesystemtag': 'filesystemtag'} + _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'} def __init__(self, filesystemid=None, filesystemtag=None, instanceid=None, machinetag=None, mountpoint=None, provider=None, read_only=None): ''' filesystemid : str @@ -4420,8 +4363,8 @@ class FilesystemAttachmentParams(Type): class FilesystemAttachmentParamsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4442,8 +4385,8 @@ class FilesystemAttachmentParamsResults(Type): class FilesystemAttachmentResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4474,8 +4417,8 @@ class FilesystemAttachments(Type): class FilesystemParams(Type): - _toSchema = {'size': 'size', 'attributes': 'attributes', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'filesystemtag': 'filesystemtag'} - _toPy = {'size': 'size', 'attributes': 'attributes', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'filesystemtag': 'filesystemtag'} + _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'} def __init__(self, attachment=None, attributes=None, filesystemtag=None, provider=None, size=None, tags=None, volumetag=None): ''' attachment : FilesystemAttachmentParams @@ -4496,8 +4439,8 @@ class FilesystemParams(Type): class FilesystemParamsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4518,8 +4461,8 @@ class FilesystemParamsResults(Type): class FilesystemResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4570,8 +4513,8 @@ class MachineStorageIdsWatchResults(Type): class VolumeAttachment(Type): - _toSchema = {'volumetag': 'volumetag', 'machinetag': 'machinetag', 'info': 'info'} - _toPy = {'volumetag': 'volumetag', 'machinetag': 'machinetag', 'info': 'info'} + _toSchema = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'} + _toPy = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'} def __init__(self, info=None, machinetag=None, volumetag=None): ''' info : VolumeAttachmentInfo @@ -4584,8 +4527,8 @@ class VolumeAttachment(Type): class VolumeAttachmentParamsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4606,8 +4549,8 @@ class VolumeAttachmentParamsResults(Type): class VolumeAttachmentResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4638,8 +4581,8 @@ class VolumeAttachments(Type): class VolumeParamsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4660,8 +4603,8 @@ class VolumeParamsResults(Type): class VolumeResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4692,7 +4635,7 @@ class Volumes(Type): class SpaceResult(Type): - _toSchema = {'tag': 'Tag', 'error': 'Error'} + _toSchema = {'error': 'Error', 'tag': 'Tag'} _toPy = {'Tag': 'tag', 'Error': 'error'} def __init__(self, error=None, tag=None): ''' @@ -4714,8 +4657,8 @@ class SpaceResults(Type): class ZoneResult(Type): - _toSchema = {'name': 'Name', 'error': 'Error', 'available': 'Available'} - _toPy = {'Error': 'error', 'Name': 'name', 'Available': 'available'} + _toSchema = {'available': 'Available', 'error': 'Error', 'name': 'Name'} + _toPy = {'Error': 'error', 'Available': 'available', 'Name': 'name'} def __init__(self, available=None, error=None, name=None): ''' available : bool @@ -4738,8 +4681,8 @@ class ZoneResults(Type): class UndertakerModelInfo(Type): - _toSchema = {'life': 'Life', 'name': 'Name', 'globalname': 'GlobalName', 'uuid': 'UUID', 'issystem': 'IsSystem'} - _toPy = {'GlobalName': 'globalname', 'Name': 'name', 'UUID': 'uuid', 'Life': 'life', 'IsSystem': 'issystem'} + _toSchema = {'globalname': 'GlobalName', 'name': 'Name', 'life': 'Life', 'uuid': 'UUID', 'issystem': 'IsSystem'} + _toPy = {'UUID': 'uuid', 'Name': 'name', 'Life': 'life', 'GlobalName': 'globalname', 'IsSystem': 'issystem'} def __init__(self, globalname=None, issystem=None, life=None, name=None, uuid=None): ''' globalname : str @@ -4756,8 +4699,8 @@ class UndertakerModelInfo(Type): class UndertakerModelInfoResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4767,30 +4710,6 @@ class UndertakerModelInfoResult(Type): self.result = UndertakerModelInfo.from_json(result) if result else None -class ApplicationStatusResult(Type): - _toSchema = {'units': 'Units', 'application': 'Application', 'error': 'Error'} - _toPy = {'Application': 'application', 'Units': 'units', 'Error': 'error'} - 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'} @@ -4812,8 +4731,8 @@ class CharmURLs(Type): class ConfigSettingsResult(Type): - _toSchema = {'settings': 'Settings', 'error': 'Error'} - _toPy = {'Settings': 'settings', 'Error': 'error'} + _toSchema = {'error': 'Error', 'settings': 'Settings'} + _toPy = {'Error': 'error', 'Settings': 'settings'} def __init__(self, error=None, settings=None): ''' error : Error @@ -4834,15 +4753,15 @@ class ConfigSettingsResults(Type): class Endpoint(Type): - _toSchema = {'relation': 'Relation', 'applicationname': 'ApplicationName'} - _toPy = {'Relation': 'relation', 'ApplicationName': 'applicationname'} - def __init__(self, applicationname=None, relation=None): + _toSchema = {'relation': 'Relation', 'servicename': 'ServiceName'} + _toPy = {'Relation': 'relation', 'ServiceName': 'servicename'} + def __init__(self, relation=None, servicename=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): @@ -4867,7 +4786,7 @@ class EntitiesPortRanges(Type): class EntityCharmURL(Type): _toSchema = {'charmurl': 'CharmURL', 'tag': 'Tag'} - _toPy = {'CharmURL': 'charmurl', 'Tag': 'tag'} + _toPy = {'Tag': 'tag', 'CharmURL': 'charmurl'} def __init__(self, charmurl=None, tag=None): ''' charmurl : str @@ -4878,8 +4797,8 @@ class EntityCharmURL(Type): class EntityPortRange(Type): - _toSchema = {'tag': 'Tag', 'toport': 'ToPort', 'protocol': 'Protocol', 'fromport': 'FromPort'} - _toPy = {'ToPort': 'toport', 'Protocol': 'protocol', 'Tag': 'tag', 'FromPort': 'fromport'} + _toSchema = {'protocol': 'Protocol', 'fromport': 'FromPort', 'tag': 'Tag', 'toport': 'ToPort'} + _toPy = {'Tag': 'tag', 'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'} def __init__(self, fromport=None, protocol=None, tag=None, toport=None): ''' fromport : int @@ -4904,8 +4823,8 @@ class GetLeadershipSettingsBulkResults(Type): class GetLeadershipSettingsResult(Type): - _toSchema = {'settings': 'Settings', 'error': 'Error'} - _toPy = {'Settings': 'settings', 'Error': 'error'} + _toSchema = {'error': 'Error', 'settings': 'Settings'} + _toPy = {'Error': 'error', 'Settings': 'settings'} def __init__(self, error=None, settings=None): ''' error : Error @@ -4916,8 +4835,8 @@ class GetLeadershipSettingsResult(Type): class IntResult(Type): - _toSchema = {'result': 'Result', 'error': 'Error'} - _toPy = {'Result': 'result', 'Error': 'error'} + _toSchema = {'error': 'Error', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -4948,20 +4867,20 @@ class MergeLeadershipSettingsBulkParams(Type): class MergeLeadershipSettingsParam(Type): - _toSchema = {'applicationtag': 'ApplicationTag', 'settings': 'Settings'} - _toPy = {'Settings': 'settings', 'ApplicationTag': 'applicationtag'} - def __init__(self, applicationtag=None, settings=None): + _toSchema = {'settings': 'Settings', 'servicetag': 'ServiceTag'} + _toPy = {'Settings': 'settings', 'ServiceTag': 'servicetag'} + def __init__(self, servicetag=None, settings=None): ''' - applicationtag : str + servicetag : str settings : typing.Mapping[str, str] ''' - self.applicationtag = applicationtag + self.servicetag = servicetag self.settings = settings class ModelResult(Type): - _toSchema = {'name': 'Name', 'uuid': 'UUID', 'error': 'Error'} - _toPy = {'Name': 'name', 'UUID': 'uuid', 'Error': 'error'} + _toSchema = {'error': 'Error', 'uuid': 'UUID', 'name': 'Name'} + _toPy = {'Error': 'error', 'UUID': 'uuid', 'Name': 'name'} def __init__(self, error=None, name=None, uuid=None): ''' error : Error @@ -4984,8 +4903,8 @@ class RelationIds(Type): class RelationResult(Type): - _toSchema = {'life': 'Life', 'key': 'Key', 'endpoint': 'Endpoint', 'id_': 'Id', 'error': 'Error'} - _toPy = {'Key': 'key', 'Id': 'id_', 'Life': 'life', 'Endpoint': 'endpoint', 'Error': 'error'} + _toSchema = {'endpoint': 'Endpoint', 'key': 'Key', 'error': 'Error', 'id_': 'Id', 'life': 'Life'} + _toPy = {'Error': 'error', 'Endpoint': 'endpoint', 'Key': 'key', 'Life': 'life', 'Id': 'id_'} def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None): ''' endpoint : Endpoint @@ -5012,8 +4931,8 @@ class RelationResults(Type): class RelationUnit(Type): - _toSchema = {'relation': 'Relation', 'unit': 'Unit'} - _toPy = {'Unit': 'unit', 'Relation': 'relation'} + _toSchema = {'unit': 'Unit', 'relation': 'Relation'} + _toPy = {'Relation': 'relation', 'Unit': 'unit'} def __init__(self, relation=None, unit=None): ''' relation : str @@ -5024,8 +4943,8 @@ class RelationUnit(Type): class RelationUnitPair(Type): - _toSchema = {'relation': 'Relation', 'remoteunit': 'RemoteUnit', 'localunit': 'LocalUnit'} - _toPy = {'LocalUnit': 'localunit', 'Relation': 'relation', 'RemoteUnit': 'remoteunit'} + _toSchema = {'relation': 'Relation', 'localunit': 'LocalUnit', 'remoteunit': 'RemoteUnit'} + _toPy = {'Relation': 'relation', 'RemoteUnit': 'remoteunit', 'LocalUnit': 'localunit'} def __init__(self, localunit=None, relation=None, remoteunit=None): ''' localunit : str @@ -5048,8 +4967,8 @@ class RelationUnitPairs(Type): class RelationUnitSettings(Type): - _toSchema = {'settings': 'Settings', 'relation': 'Relation', 'unit': 'Unit'} - _toPy = {'Settings': 'settings', 'Unit': 'unit', 'Relation': 'relation'} + _toSchema = {'unit': 'Unit', 'relation': 'Relation', 'settings': 'Settings'} + _toPy = {'Relation': 'relation', 'Unit': 'unit', 'Settings': 'settings'} def __init__(self, relation=None, settings=None, unit=None): ''' relation : str @@ -5092,8 +5011,8 @@ class RelationUnitsWatchResults(Type): class ResolvedModeResult(Type): - _toSchema = {'mode': 'Mode', 'error': 'Error'} - _toPy = {'Mode': 'mode', 'Error': 'error'} + _toSchema = {'error': 'Error', 'mode': 'Mode'} + _toPy = {'Error': 'error', 'Mode': 'mode'} def __init__(self, error=None, mode=None): ''' error : Error @@ -5113,9 +5032,33 @@ 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 = {'settings': 'Settings', 'error': 'Error'} - _toPy = {'Settings': 'settings', 'Error': 'error'} + _toSchema = {'error': 'Error', 'settings': 'Settings'} + _toPy = {'Error': 'error', 'Settings': 'settings'} def __init__(self, error=None, settings=None): ''' error : Error @@ -5136,8 +5079,8 @@ class SettingsResults(Type): class StorageAttachment(Type): - _toSchema = {'storagetag': 'StorageTag', 'kind': 'Kind', 'location': 'Location', 'life': 'Life', 'ownertag': 'OwnerTag', 'unittag': 'UnitTag'} - _toPy = {'UnitTag': 'unittag', 'StorageTag': 'storagetag', 'Kind': 'kind', 'OwnerTag': 'ownertag', 'Life': 'life', 'Location': 'location'} + _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'} def __init__(self, kind=None, life=None, location=None, ownertag=None, storagetag=None, unittag=None): ''' kind : int @@ -5156,8 +5099,8 @@ class StorageAttachment(Type): class StorageAttachmentId(Type): - _toSchema = {'storagetag': 'storagetag', 'unittag': 'unittag'} - _toPy = {'storagetag': 'storagetag', 'unittag': 'unittag'} + _toSchema = {'unittag': 'unittag', 'storagetag': 'storagetag'} + _toPy = {'unittag': 'unittag', 'storagetag': 'storagetag'} def __init__(self, storagetag=None, unittag=None): ''' storagetag : str @@ -5178,8 +5121,8 @@ class StorageAttachmentIds(Type): class StorageAttachmentIdsResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -5200,8 +5143,8 @@ class StorageAttachmentIdsResults(Type): class StorageAttachmentResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -5222,8 +5165,8 @@ class StorageAttachmentResults(Type): class StringBoolResult(Type): - _toSchema = {'result': 'Result', 'ok': 'Ok', 'error': 'Error'} - _toPy = {'Ok': 'ok', 'Result': 'result', 'Error': 'error'} + _toSchema = {'error': 'Error', 'ok': 'Ok', 'result': 'Result'} + _toPy = {'Error': 'error', 'Result': 'result', 'Ok': 'ok'} def __init__(self, error=None, ok=None, result=None): ''' error : Error @@ -5246,8 +5189,8 @@ class StringBoolResults(Type): class UnitNetworkConfig(Type): - _toSchema = {'bindingname': 'BindingName', 'unittag': 'UnitTag'} - _toPy = {'BindingName': 'bindingname', 'UnitTag': 'unittag'} + _toSchema = {'unittag': 'UnitTag', 'bindingname': 'BindingName'} + _toPy = {'UnitTag': 'unittag', 'BindingName': 'bindingname'} def __init__(self, bindingname=None, unittag=None): ''' bindingname : str @@ -5300,7 +5243,7 @@ class EntitiesVersion(Type): class EntityVersion(Type): - _toSchema = {'tag': 'Tag', 'tools': 'Tools'} + _toSchema = {'tools': 'Tools', 'tag': 'Tag'} _toPy = {'Tag': 'tag', 'Tools': 'tools'} def __init__(self, tag=None, tools=None): ''' @@ -5312,8 +5255,8 @@ class EntityVersion(Type): class VersionResult(Type): - _toSchema = {'version': 'Version', 'error': 'Error'} - _toPy = {'Version': 'version', 'Error': 'error'} + _toSchema = {'error': 'Error', 'version': 'Version'} + _toPy = {'Error': 'error', 'Version': 'version'} def __init__(self, error=None, version=None): ''' error : Error @@ -5334,8 +5277,8 @@ class VersionResults(Type): class AddUser(Type): - _toSchema = {'password': 'password', 'shared_model_tags': 'shared-model-tags', 'model_access_permission': 'model-access-permission', 'username': 'username', 'display_name': 'display-name'} - _toPy = {'password': 'password', 'display-name': 'display_name', 'shared-model-tags': 'shared_model_tags', 'username': 'username', 'model-access-permission': 'model_access_permission'} + _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'} def __init__(self, display_name=None, model_access_permission=None, password=None, shared_model_tags=None, username=None): ''' display_name : str @@ -5352,8 +5295,8 @@ class AddUser(Type): class AddUserResult(Type): - _toSchema = {'tag': 'tag', 'secret_key': 'secret-key', 'error': 'error'} - _toPy = {'secret-key': 'secret_key', 'tag': 'tag', 'error': 'error'} + _toSchema = {'error': 'error', 'tag': 'tag', 'secret_key': 'secret-key'} + _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'} def __init__(self, error=None, secret_key=None, tag=None): ''' error : Error @@ -5386,8 +5329,8 @@ class AddUsers(Type): class MacaroonResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -5408,8 +5351,8 @@ class MacaroonResults(Type): class UserInfo(Type): - _toSchema = {'username': 'username', 'disabled': 'disabled', 'date_created': 'date-created', 'created_by': 'created-by', 'last_connection': 'last-connection', 'display_name': 'display-name'} - _toPy = {'username': 'username', 'display-name': 'display_name', 'disabled': 'disabled', 'last-connection': 'last_connection', 'date-created': 'date_created', 'created-by': 'created_by'} + _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'} def __init__(self, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None): ''' created_by : str @@ -5428,8 +5371,8 @@ class UserInfo(Type): class UserInfoRequest(Type): - _toSchema = {'entities': 'entities', 'include_disabled': 'include-disabled'} - _toPy = {'entities': 'entities', 'include-disabled': 'include_disabled'} + _toSchema = {'include_disabled': 'include-disabled', 'entities': 'entities'} + _toPy = {'include-disabled': 'include_disabled', 'entities': 'entities'} def __init__(self, entities=None, include_disabled=None): ''' entities : typing.Sequence[~Entity] @@ -5440,8 +5383,8 @@ class UserInfoRequest(Type): class UserInfoResult(Type): - _toSchema = {'result': 'result', 'error': 'error'} - _toPy = {'result': 'result', 'error': 'error'} + _toSchema = {'error': 'error', 'result': 'result'} + _toPy = {'error': 'error', 'result': 'result'} def __init__(self, error=None, result=None): ''' error : Error @@ -5451,532 +5394,71 @@ 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): - ''' - results : typing.Sequence[~UserInfoResult] - ''' - self.results = [UserInfoResult.from_json(o) for o in results or []] - - -class Action(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 Addresser(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): - ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] +class UserInfoResults(Type): + _toSchema = {'results': 'results'} + _toPy = {'results': 'results'} + def __init__(self, results=None): ''' - # 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 + results : typing.Sequence[~UserInfoResult] + ''' + self.results = [UserInfoResult.from_json(o) for o in results or []] -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'}, - 'type': 'array'}}, - 'required': ['Entities'], - 'type': 'object'}, +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'}, 'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, @@ -5986,16 +5468,6 @@ class Agent(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'}, @@ -6006,19 +5478,21 @@ class Agent(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'}, - 'IsMasterResult': {'additionalProperties': False, - 'properties': {'Master': {'type': 'boolean'}}, - 'required': ['Master'], - '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'}, @@ -6034,33 +5508,30 @@ 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'}, + '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'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -6075,285 +5546,257 @@ 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': {'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'}}, 'type': 'object'}, - 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, - 'type': 'object'}, - 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, + 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ActionsByReceivers'}}, 'type': 'object'}, - 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}}, + 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, + 'type': 'object'}, + 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'}, + 'Result': {'$ref': '#/definitions/ActionResults'}}, 'type': 'object'}, - 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - 'type': 'object'}}, + 'ServicesCharmActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ServicesCharmActionsResults'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(ErrorResults) - async def ClearReboot(self, entities): + @ReturnMapping(ActionResults) + async def Actions(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + Returns -> typing.Sequence[~ActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params) + msg = dict(Type='Action', Request='Actions', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(AgentGetEntitiesResults) - async def GetEntities(self, entities): + @ReturnMapping(ActionResults) + async def Cancel(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AgentGetEntitiesResult] + Returns -> typing.Sequence[~ActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params) + msg = dict(Type='Action', Request='Cancel', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(IsMasterResult) - async def IsMaster(self): + @ReturnMapping(ActionResults) + async def Enqueue(self, actions): ''' - - Returns -> bool + actions : typing.Sequence[~Action] + Returns -> typing.Sequence[~ActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params) - + msg = dict(Type='Action', Request='Enqueue', Version=1, Params=params) + params['actions'] = actions reply = await self.rpc(msg) return reply - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): + @ReturnMapping(FindTagsResults) + async def FindActionTagsByPrefix(self, prefixes): ''' - - Returns -> typing.Mapping[str, typing.Any] + prefixes : typing.Sequence[str] + Returns -> typing.Sequence[~Entity] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params) - + msg = dict(Type='Action', Request='FindActionTagsByPrefix', Version=1, Params=params) + params['prefixes'] = prefixes reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): + @ReturnMapping(ActionsByNames) + async def FindActionsByNames(self, names): ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] + names : typing.Sequence[str] + Returns -> typing.Sequence[~ActionsByName] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params) - params['Changes'] = changes + msg = dict(Type='Action', Request='FindActionsByNames', Version=1, Params=params) + params['names'] = names reply = await self.rpc(msg) return reply - @ReturnMapping(StateServingInfo) - async def StateServingInfo(self): + @ReturnMapping(ActionsByReceivers) + async def ListAll(self, entities): ''' - - Returns -> typing.Union[int, str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params) - + msg = dict(Type='Action', Request='ListAll', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): + @ReturnMapping(ActionsByReceivers) + async def ListCompleted(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params) - + msg = dict(Type='Action', Request='ListCompleted', Version=1, Params=params) + params['Entities'] = entities 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): + @ReturnMapping(ActionsByReceivers) + async def ListPending(self, entities): ''' - - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params) - + msg = dict(Type='Action', Request='ListPending', Version=1, Params=params) + params['Entities'] = entities 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(ActionsByReceivers) + async def ListRunning(self, entities): ''' - - Returns -> typing.Sequence[~Delta] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ActionsByReceiver] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params) - + msg = dict(Type='Action', Request='ListRunning', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Stop(self): + @ReturnMapping(ActionResults) + async def Run(self, commands, machines, services, timeout, units): ''' - - Returns -> None + commands : str + machines : typing.Sequence[str] + services : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params) - + 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 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(ActionResults) + async def RunOnAllMachines(self, commands, machines, services, timeout, units): ''' - - Returns -> typing.Sequence[~Delta] + commands : str + machines : typing.Sequence[str] + services : typing.Sequence[str] + timeout : int + units : typing.Sequence[str] + Returns -> typing.Sequence[~ActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params) - + 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 reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Stop(self): + @ReturnMapping(ServicesCharmActionsResults) + async def ServicesCharmActions(self, entities): ''' - - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ServiceCharmActionsResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params) - + msg = dict(Type='Action', Request='ServicesCharmActions', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply -class Annotations(Type): - name = 'Annotations' +class Addresser(Type): + name = 'Addresser' 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, - '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'}, + 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'}, @@ -6368,11 +5811,6 @@ class Annotations(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'}, @@ -6402,218 +5840,96 @@ 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': {'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(AnnotationsGetResults) - async def Get(self, entities): + @ReturnMapping(BoolResult) + async def CanDeallocateAddresses(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~AnnotationsGetResult] + + Returns -> typing.Union[_ForwardRef('Error'), bool] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Annotations', Request='Get', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Addresser', Request='CanDeallocateAddresses', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def Set(self, annotations): + @ReturnMapping(ErrorResult) + async def CleanupIPAddresses(self): ''' - annotations : typing.Sequence[~EntityAnnotations] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> 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='Addresser', Request='CleanupIPAddresses', Version=2, Params=params) + reply = await self.rpc(msg) return reply -class Application(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': ['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'}, + + @ReturnMapping(EntitiesWatchResult) + async def WatchIPAddresses(self): + ''' + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] + ''' + # 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 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'}, - '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'}, - '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'], + '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'}, - 'DestroyRelation': {'additionalProperties': False, - 'properties': {'Endpoints': {'items': {'type': 'string'}, - 'type': 'array'}}, - 'required': ['Endpoints'], + 'Entities': {'additionalProperties': False, + 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, + 'type': 'array'}}, + 'required': ['Entities'], + 'type': 'object'}, + 'Entity': {'additionalProperties': False, + 'properties': {'Tag': {'type': 'string'}}, + 'required': ['Tag'], + 'type': 'object'}, + 'EntityPassword': {'additionalProperties': False, + 'properties': {'Password': {'type': 'string'}, + 'Tag': {'type': 'string'}}, + 'required': ['Tag', 'Password'], + 'type': 'object'}, + 'EntityPasswords': {'additionalProperties': False, + 'properties': {'Changes': {'items': {'$ref': '#/definitions/EntityPassword'}, + 'type': 'array'}}, + 'required': ['Changes'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, @@ -6634,14 +5950,10 @@ class Application(Type): 'type': 'array'}}, 'required': ['Results'], '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'}, + 'IsMasterResult': {'additionalProperties': False, + 'properties': {'Master': {'type': 'boolean'}}, + 'required': ['Master'], + 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'}, 'type': 'array'}, @@ -6657,50 +5969,33 @@ class Application(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'}, - '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'}, + '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'}, @@ -6715,360 +6010,271 @@ class Application(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, - 'Result': {'$ref': '#/definitions/AddRelationResults'}}, + 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, - 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, - 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, - 'type': 'object'}, - 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, - 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, - 'type': 'object'}, - 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, - 'type': 'object'}, - 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, - 'type': 'object'}, - 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, - 'type': 'object'}, - 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, - 'type': 'object'}, - 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, - 'type': 'object'}, - 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, - 'Result': {'$ref': '#/definitions/StringResult'}}, + 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}}, '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'}}, + 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}}, 'type': 'object'}, - 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, - 'type': 'object'}, - 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, - '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'}, + 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, + '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='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): + + @ReturnMapping(ErrorResults) + async def ClearReboot(self, entities): ''' - unitnames : typing.Sequence[str] - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='DestroyUnits', Version=1, Params=params) - params['UnitNames'] = unitnames + msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Expose(self, applicationname): + @ReturnMapping(AgentGetEntitiesResults) + async def GetEntities(self, entities): ''' - applicationname : str - Returns -> None + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~AgentGetEntitiesResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='Expose', Version=1, Params=params) - params['ApplicationName'] = applicationname + msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ApplicationGetResults) - async def Get(self, applicationname): + @ReturnMapping(IsMasterResult) + async def IsMaster(self): ''' - applicationname : str - Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + + Returns -> bool ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='Get', Version=1, Params=params) - params['ApplicationName'] = applicationname + msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def GetCharmURL(self, applicationname): + @ReturnMapping(ModelConfigResult) + async def ModelConfig(self): ''' - applicationname : str - Returns -> typing.Union[_ForwardRef('Error'), str] + + Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='GetCharmURL', Version=1, Params=params) - params['ApplicationName'] = applicationname + msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(GetConstraintsResults) - async def GetConstraints(self, applicationname): + @ReturnMapping(ErrorResults) + async def SetPasswords(self, changes): ''' - applicationname : str - Returns -> Value + changes : typing.Sequence[~EntityPassword] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='GetConstraints', Version=1, Params=params) - params['ApplicationName'] = applicationname + msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params) + params['Changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def Set(self, applicationname, options): + @ReturnMapping(StateServingInfo) + async def StateServingInfo(self): ''' - applicationname : str - options : typing.Mapping[str, str] - Returns -> None + + Returns -> typing.Union[int, str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='Set', Version=1, Params=params) - params['ApplicationName'] = applicationname - params['Options'] = options + msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(None) - async def SetCharm(self, applicationname, charmurl, cs_channel, forceseries, forceunits, resourceids): + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): ''' - applicationname : str - charmurl : str - cs_channel : str - forceseries : bool - forceunits : bool - resourceids : typing.Mapping[str, str] - Returns -> None + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - 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 + msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params) + 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 SetConstraints(self, applicationname, constraints): + async def UpdateToolsAvailable(self): ''' - applicationname : str - constraints : Value + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='SetConstraints', Version=1, Params=params) - params['ApplicationName'] = applicationname - params['Constraints'] = constraints + msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params) + 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(ErrorResults) - async def SetMetricCredentials(self, creds): + @ReturnMapping(AllWatcherNextResults) + async def Next(self): ''' - creds : typing.Sequence[~ApplicationMetricCredential] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='SetMetricCredentials', Version=1, Params=params) - params['Creds'] = creds + msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params) + reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def Unexpose(self, applicationname): + async def Stop(self): ''' - applicationname : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='Unexpose', Version=1, Params=params) - params['ApplicationName'] = applicationname + msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params) + 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(None) - async def Unset(self, applicationname, options): + @ReturnMapping(AllWatcherNextResults) + async def Next(self): ''' - applicationname : str - options : typing.Sequence[str] - Returns -> None + + Returns -> typing.Sequence[~Delta] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Application', Request='Unset', Version=1, Params=params) - params['ApplicationName'] = applicationname - params['Options'] = options + msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params) + reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def Update(self, applicationname, charmurl, constraints, forcecharmurl, forceseries, minunits, settingsstrings, settingsyaml): + async def Stop(self): ''' - 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='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 + msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params) + reply = await self.rpc(msg) return reply -class ApplicationScaler(Type): - name = 'ApplicationScaler' - version = 1 - schema = {'definitions': {'Entities': {'additionalProperties': False, +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, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['Entities'], @@ -7077,6 +6283,12 @@ class ApplicationScaler(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'}, @@ -7111,15 +6323,6 @@ class ApplicationScaler(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'}, @@ -7134,39 +6337,40 @@ class ApplicationScaler(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': {'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(ErrorResults) - async def Rescale(self, entities): + @ReturnMapping(AnnotationsGetResults) + async def Get(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + Returns -> typing.Sequence[~AnnotationsGetResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ApplicationScaler', Request='Rescale', Version=1, Params=params) + msg = dict(Type='Annotations', Request='Get', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResult) - async def Watch(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='ApplicationScaler', Request='Watch', Version=1, Params=params) - + msg = dict(Type='Annotations', Request='Set', Version=2, Params=params) + params['Annotations'] = annotations reply = await self.rpc(msg) return reply @@ -7201,7 +6405,6 @@ class Backups(Type): 'Machine': {'type': 'string'}, 'Model': {'type': 'string'}, 'Notes': {'type': 'string'}, - 'Series': {'type': 'string'}, 'Size': {'type': 'integer'}, 'Started': {'format': 'date-time', 'type': 'string'}, @@ -7220,7 +6423,6 @@ class Backups(Type): 'Machine', 'Hostname', 'Version', - 'Series', 'CACert', 'CAPrivateKey'], 'type': 'object'}, @@ -7494,7 +6696,7 @@ class Block(Type): class CharmRevisionUpdater(Type): name = 'CharmRevisionUpdater' - version = 2 + version = 1 schema = {'definitions': {'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -7551,7 +6753,7 @@ class CharmRevisionUpdater(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=2, Params=params) + msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=1, Params=params) reply = await self.rpc(msg) return reply @@ -7795,34 +6997,6 @@ 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'}, @@ -7881,11 +7055,11 @@ class Client(Type): 'Err'], 'type': 'object'}, 'EndpointStatus': {'additionalProperties': False, - 'properties': {'ApplicationName': {'type': 'string'}, - 'Name': {'type': 'string'}, + 'properties': {'Name': {'type': 'string'}, 'Role': {'type': 'string'}, + 'ServiceName': {'type': 'string'}, 'Subordinate': {'type': 'boolean'}}, - 'required': ['ApplicationName', + 'required': ['ServiceName', 'Name', 'Role', 'Subordinate'], @@ -7950,18 +7124,18 @@ class Client(Type): 'required': ['List', 'Error'], 'type': 'object'}, 'FullStatus': {'additionalProperties': False, - 'properties': {'Applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}}, - 'type': 'object'}, - 'AvailableVersion': {'type': 'string'}, + 'properties': {'AvailableVersion': {'type': 'string'}, 'Machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}}, 'type': 'object'}, 'ModelName': {'type': 'string'}, 'Relations': {'items': {'$ref': '#/definitions/RelationStatus'}, - 'type': 'array'}}, + 'type': 'array'}, + 'Services': {'patternProperties': {'.*': {'$ref': '#/definitions/ServiceStatus'}}, + 'type': 'object'}}, 'required': ['ModelName', 'AvailableVersion', 'Machines', - 'Applications', + 'Services', 'Relations'], 'type': 'object'}, 'GetBundleChangesParams': {'additionalProperties': False, @@ -7988,12 +7162,6 @@ 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'}}, @@ -8052,8 +7220,7 @@ class Client(Type): 'required': ['Config'], 'type': 'object'}, 'ModelInfo': {'additionalProperties': False, - 'properties': {'Cloud': {'type': 'string'}, - 'DefaultSeries': {'type': 'string'}, + 'properties': {'DefaultSeries': {'type': 'string'}, 'Life': {'type': 'string'}, 'Name': {'type': 'string'}, 'OwnerTag': {'type': 'string'}, @@ -8068,7 +7235,6 @@ class Client(Type): 'ServerUUID', 'ProviderType', 'DefaultSeries', - 'Cloud', 'OwnerTag', 'Life', 'Status', @@ -8184,47 +7350,53 @@ 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': {'ApplicationName': {'type': 'string'}, - 'Constraints': {'$ref': '#/definitions/Value'}}, - 'required': ['ApplicationName', - 'Constraints'], + 'properties': {'Constraints': {'$ref': '#/definitions/Value'}, + 'ServiceName': {'type': 'string'}}, + 'required': ['ServiceName', 'Constraints'], 'type': 'object'}, 'SetModelAgentVersion': {'additionalProperties': False, - 'properties': {'Version': {'$ref': '#/definitions/Number'}}, - 'required': ['Version'], - 'type': 'object'}, - 'StatusHistoryFilter': {'additionalProperties': False, - 'properties': {'Date': {'format': 'date-time', - 'type': 'string'}, - 'Delta': {'type': 'integer'}, - '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'], + 'properties': {'Version': {'$ref': '#/definitions/Number'}}, + 'required': ['Version'], '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'}, + 'StatusHistoryArgs': {'additionalProperties': False, + 'properties': {'Kind': {'type': 'string'}, + 'Name': {'type': 'string'}, + 'Size': {'type': 'integer'}}, + 'required': ['Kind', 'Size', 'Name'], + 'type': 'object'}, 'StatusHistoryResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/StatusHistoryResult'}, - 'type': 'array'}}, - 'required': ['Results'], + 'properties': {'Statuses': {'items': {'$ref': '#/definitions/DetailedStatus'}, + 'type': 'array'}}, + 'required': ['Statuses'], 'type': 'object'}, 'StatusParams': {'additionalProperties': False, 'properties': {'Patterns': {'items': {'type': 'string'}, @@ -8364,7 +7536,7 @@ class Client(Type): 'type': 'object'}, 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, 'type': 'object'}, - 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'}, + 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryArgs'}, 'Result': {'$ref': '#/definitions/StatusHistoryResults'}}, 'type': 'object'}, 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, @@ -8557,7 +7729,7 @@ class Client(Type): async def FullStatus(self, patterns): ''' patterns : typing.Sequence[str] - Returns -> typing.Union[typing.Mapping[str, ~MachineStatus], typing.Sequence[~RelationStatus]] + Returns -> typing.Union[typing.Sequence[~RelationStatus], typing.Mapping[str, ~ServiceStatus]] ''' # map input types to rpc msg params = dict() @@ -8810,32 +7982,36 @@ class Client(Type): @ReturnMapping(None) - async def SetModelConstraints(self, applicationname, constraints): + async def SetModelConstraints(self, constraints, servicename): ''' - 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, requests): + async def StatusHistory(self, kind, name, size): ''' - requests : typing.Sequence[~StatusHistoryRequest] - Returns -> typing.Sequence[~StatusHistoryResult] + kind : str + name : str + size : int + Returns -> typing.Sequence[~DetailedStatus] ''' # map input types to rpc msg params = dict() msg = dict(Type='Client', Request='StatusHistory', Version=1, Params=params) - params['Requests'] = requests + params['Kind'] = kind + params['Name'] = name + params['Size'] = size reply = await self.rpc(msg) return reply @@ -8857,7 +8033,7 @@ class Client(Type): class Controller(Type): name = 'Controller' - version = 3 + version = 2 schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, 'properties': {'AllWatcherId': {'type': 'string'}}, 'required': ['AllWatcherId'], @@ -8965,15 +8141,15 @@ class Controller(Type): 'password'], 'type': 'object'}, 'ModelStatus': {'additionalProperties': False, - 'properties': {'application-count': {'type': 'integer'}, - 'hosted-machine-count': {'type': 'integer'}, + 'properties': {'hosted-machine-count': {'type': 'integer'}, 'life': {'type': 'string'}, 'model-tag': {'type': 'string'}, - 'owner-tag': {'type': 'string'}}, + 'owner-tag': {'type': 'string'}, + 'service-count': {'type': 'integer'}}, 'required': ['model-tag', 'life', 'hosted-machine-count', - 'application-count', + 'service-count', 'owner-tag'], 'type': 'object'}, 'ModelStatusResults': {'additionalProperties': False, @@ -9039,7 +8215,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='AllModels', Version=3, Params=params) + msg = dict(Type='Controller', Request='AllModels', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -9054,7 +8230,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='DestroyController', Version=3, Params=params) + msg = dict(Type='Controller', Request='DestroyController', Version=2, Params=params) params['destroy-models'] = destroy_models reply = await self.rpc(msg) return reply @@ -9069,7 +8245,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='InitiateModelMigration', Version=3, Params=params) + msg = dict(Type='Controller', Request='InitiateModelMigration', Version=2, Params=params) params['specs'] = specs reply = await self.rpc(msg) return reply @@ -9084,7 +8260,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ListBlockedModels', Version=3, Params=params) + msg = dict(Type='Controller', Request='ListBlockedModels', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -9099,7 +8275,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ModelConfig', Version=3, Params=params) + msg = dict(Type='Controller', Request='ModelConfig', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -9114,7 +8290,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='ModelStatus', Version=3, Params=params) + msg = dict(Type='Controller', Request='ModelStatus', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -9129,7 +8305,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='RemoveBlocks', Version=3, Params=params) + msg = dict(Type='Controller', Request='RemoveBlocks', Version=2, Params=params) params['all'] = all_ reply = await self.rpc(msg) return reply @@ -9144,7 +8320,7 @@ class Controller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Controller', Request='WatchAllModels', Version=3, Params=params) + msg = dict(Type='Controller', Request='WatchAllModels', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -9989,7 +9165,7 @@ class FilesystemAttachmentsWatcher(Type): class Firewaller(Type): name = 'Firewaller' - version = 3 + version = 2 schema = {'definitions': {'BoolResult': {'additionalProperties': False, 'properties': {'Error': {'$ref': '#/definitions/Error'}, 'Result': {'type': 'boolean'}}, @@ -10188,7 +9364,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10203,7 +9379,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetExposed', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='GetExposed', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10218,7 +9394,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10233,7 +9409,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=2, Params=params) params['Params'] = params reply = await self.rpc(msg) return reply @@ -10248,7 +9424,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='InstanceId', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='InstanceId', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10263,7 +9439,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='Life', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='Life', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10278,7 +9454,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='ModelConfig', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='ModelConfig', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -10293,7 +9469,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='Watch', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='Watch', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10308,7 +9484,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -10323,7 +9499,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -10338,7 +9514,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10353,7 +9529,7 @@ class Firewaller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Firewaller', Request='WatchUnits', Version=3, Params=params) + msg = dict(Type='Firewaller', Request='WatchUnits', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -10966,7 +10142,7 @@ class ImageMetadata(Type): class InstancePoller(Type): name = 'InstancePoller' - version = 3 + version = 2 schema = {'definitions': {'Address': {'additionalProperties': False, 'properties': {'Scope': {'type': 'string'}, 'SpaceName': {'type': 'string'}, @@ -11185,7 +10361,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11200,7 +10376,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='InstanceId', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='InstanceId', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11215,7 +10391,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11230,7 +10406,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='Life', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='Life', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11245,7 +10421,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='ModelConfig', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='ModelConfig', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -11260,7 +10436,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11275,7 +10451,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11290,7 +10466,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=2, Params=params) params['MachineAddresses'] = machineaddresses reply = await self.rpc(msg) return reply @@ -11305,7 +10481,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='Status', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='Status', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -11320,7 +10496,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -11335,7 +10511,7 @@ class InstancePoller(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=3, Params=params) + msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=2, Params=params) reply = await self.rpc(msg) return reply @@ -11618,11 +10794,7 @@ class KeyUpdater(Type): class LeadershipService(Type): name = 'LeadershipService' version = 2 - schema = {'definitions': {'ApplicationTag': {'additionalProperties': False, - 'properties': {'Name': {'type': 'string'}}, - 'required': ['Name'], - 'type': 'object'}, - 'ClaimLeadershipBulkParams': {'additionalProperties': False, + schema = {'definitions': {'ClaimLeadershipBulkParams': {'additionalProperties': False, 'properties': {'Params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'}, 'type': 'array'}}, 'required': ['Params'], @@ -11633,10 +10805,10 @@ class LeadershipService(Type): 'required': ['Results'], 'type': 'object'}, 'ClaimLeadershipParams': {'additionalProperties': False, - 'properties': {'ApplicationTag': {'type': 'string'}, - 'DurationSeconds': {'type': 'number'}, + 'properties': {'DurationSeconds': {'type': 'number'}, + 'ServiceTag': {'type': 'string'}, 'UnitTag': {'type': 'string'}}, - 'required': ['ApplicationTag', + 'required': ['ServiceTag', 'UnitTag', 'DurationSeconds'], 'type': 'object'}, @@ -11669,6 +10841,10 @@ 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'}, @@ -11683,7 +10859,7 @@ class LeadershipService(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'}, + 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ServiceTag'}, 'Result': {'$ref': '#/definitions/ErrorResult'}}, 'type': 'object'}, 'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'}, @@ -12961,7 +12137,7 @@ class MetricsAdder(Type): class MetricsDebug(Type): name = 'MetricsDebug' - version = 2 + version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, @@ -13064,7 +12240,7 @@ class MetricsDebug(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=2, Params=params) + msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -13079,7 +12255,7 @@ class MetricsDebug(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=2, Params=params) + msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=1, Params=params) params['statues'] = statues reply = await self.rpc(msg) return reply @@ -13714,8 +12890,7 @@ class ModelManager(Type): 'Config'], 'type': 'object'}, 'ModelInfo': {'additionalProperties': False, - 'properties': {'Cloud': {'type': 'string'}, - 'DefaultSeries': {'type': 'string'}, + 'properties': {'DefaultSeries': {'type': 'string'}, 'Life': {'type': 'string'}, 'Name': {'type': 'string'}, 'OwnerTag': {'type': 'string'}, @@ -13730,7 +12905,6 @@ class ModelManager(Type): 'ServerUUID', 'ProviderType', 'DefaultSeries', - 'Cloud', 'OwnerTag', 'Life', 'Status', @@ -13973,7 +13147,7 @@ class Pinger(Type): class Provisioner(Type): name = 'Provisioner' - version = 3 + version = 2 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, 'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, 'type': 'array'}, @@ -14033,6 +13207,7 @@ 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'}, @@ -14043,6 +13218,7 @@ class Provisioner(Type): 'Proxy', 'AptProxy', 'AptMirror', + 'PreferIPv6', 'AllowLXCLoopMounts', 'UpdateBehavior'], 'type': 'object'}, @@ -14598,97 +13774,345 @@ class Provisioner(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='APIAddresses', Version=3, Params=params) - + msg = dict(Type='Provisioner', Request='APIAddresses', Version=2, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(APIHostPortsResult) + async def APIHostPorts(self): + ''' + + Returns -> typing.Sequence[~HostPort] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='APIHostPorts', Version=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(APIHostPortsResult) - async def APIHostPorts(self): + @ReturnMapping(ProvisioningInfoResults) + async def ProvisioningInfo(self, entities): ''' - - Returns -> typing.Sequence[~HostPort] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ProvisioningInfoResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='APIHostPorts', Version=3, Params=params) - + msg = dict(Type='Provisioner', Request='ProvisioningInfo', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(BytesResult) - async def CACert(self): + @ReturnMapping(ErrorResults) + async def ReleaseContainerAddresses(self, entities): ''' - - Returns -> typing.Sequence[int] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='CACert', Version=3, Params=params) - + msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ConstraintsResults) - async def Constraints(self, entities): + @ReturnMapping(ErrorResults) + async def Remove(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ConstraintsResult] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Constraints', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='Remove', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ContainerConfig) - async def ContainerConfig(self): + @ReturnMapping(StringResults) + async def Series(self, entities): ''' - - Returns -> typing.Union[bool, str, _ForwardRef('Settings'), _ForwardRef('Settings'), _ForwardRef('UpdateBehavior')] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~StringResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ContainerConfig', Version=3, Params=params) - + msg = dict(Type='Provisioner', Request='Series', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ContainerManagerConfig) - async def ContainerManagerConfig(self, type_): + @ReturnMapping(ErrorResults) + async def SetInstanceInfo(self, machines): ''' - type_ : str - Returns -> typing.Mapping[str, str] + machines : typing.Sequence[~InstanceInfo] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ContainerManagerConfig', Version=3, Params=params) - params['Type'] = type_ + msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=2, Params=params) + params['Machines'] = machines reply = await self.rpc(msg) return reply - @ReturnMapping(DistributionGroupResults) - async def DistributionGroup(self, entities): + @ReturnMapping(ErrorResults) + async def SetInstanceStatus(self, entities): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~DistributionGroupResult] + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='DistributionGroup', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -14696,277 +14120,431 @@ class Provisioner(Type): @ReturnMapping(ErrorResults) - async def EnsureDead(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='Provisioner', Request='EnsureDead', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='SetPasswords', Version=2, Params=params) + params['Changes'] = changes reply = await self.rpc(msg) return reply - @ReturnMapping(FindToolsResult) - async def FindTools(self, arch, majorversion, minorversion, number, series): + @ReturnMapping(ErrorResults) + async def SetStatus(self, entities): ''' - arch : str - majorversion : int - minorversion : int - number : Number - series : str - Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]] + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - 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 + msg = dict(Type='Provisioner', Request='SetStatus', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(MachineNetworkConfigResults) - async def GetContainerInterfaceInfo(self, entities): + @ReturnMapping(ErrorResults) + async def SetSupportedContainers(self, params): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] + params : typing.Sequence[~MachineContainers] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='GetContainerInterfaceInfo', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='SetSupportedContainers', Version=2, Params=params) + params['Params'] = params reply = await self.rpc(msg) return reply - @ReturnMapping(StringResults) - async def InstanceId(self, entities): + @ReturnMapping(StringsResult) + async def StateAddresses(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] + + Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='InstanceId', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='StateAddresses', Version=2, Params=params) + reply = await self.rpc(msg) return reply @ReturnMapping(StatusResults) - async def InstanceStatus(self, entities): + async def Status(self, entities): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StatusResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='InstanceStatus', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='Status', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(LifeResults) - async def Life(self, entities): + @ReturnMapping(ToolsResults) + async def Tools(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~LifeResult] + Returns -> typing.Sequence[~ToolsResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Life', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='Tools', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StatusResults) - async def MachinesWithTransientErrors(self): + @ReturnMapping(ErrorResults) + async def UpdateStatus(self, entities): ''' - - Returns -> typing.Sequence[~StatusResult] + entities : typing.Sequence[~EntityStatusArgs] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='MachinesWithTransientErrors', Version=3, Params=params) - + msg = dict(Type='Provisioner', Request='UpdateStatus', Version=2, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ModelConfigResult) - async def ModelConfig(self): + @ReturnMapping(NotifyWatchResult) + async def WatchAPIHostPorts(self): ''' - Returns -> typing.Mapping[str, typing.Any] + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ModelConfig', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=2, Params=params) reply = await self.rpc(msg) return reply - @ReturnMapping(StringResult) - async def ModelUUID(self): + @ReturnMapping(StringsWatchResults) + async def WatchAllContainers(self, params): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ModelUUID', Version=3, Params=params) + msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=2, Params=params) + params['Params'] = params + reply = await self.rpc(msg) + return reply + + + @ReturnMapping(StringsWatchResults) + async def WatchContainers(self, params): + ''' + params : typing.Sequence[~WatchContainer] + Returns -> typing.Sequence[~StringsWatchResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='Provisioner', Request='WatchContainers', Version=2, Params=params) + params['Params'] = params reply = await self.rpc(msg) return reply - @ReturnMapping(MachineNetworkConfigResults) - async def PrepareContainerInterfaceInfo(self, entities): + @ReturnMapping(NotifyWatchResult) + async def WatchForModelConfigChanges(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~MachineNetworkConfigResult] + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='PrepareContainerInterfaceInfo', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ProvisioningInfoResults) - async def ProvisioningInfo(self, entities): + @ReturnMapping(NotifyWatchResult) + async def WatchMachineErrorRetry(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProvisioningInfoResult] + + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ProvisioningInfo', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=2, Params=params) + reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def ReleaseContainerAddresses(self, entities): + @ReturnMapping(StringsWatchResult) + async def WatchModelMachines(self): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=2, Params=params) + 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(ErrorResults) - async def Remove(self, entities): + @ReturnMapping(ProxyConfigResults) + async def ProxyConfig(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + Returns -> typing.Sequence[~ProxyConfigResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Remove', Version=3, Params=params) + msg = dict(Type='ProxyUpdater', Request='ProxyConfig', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringResults) - async def Series(self, entities): + @ReturnMapping(NotifyWatchResults) + async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringResult] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Series', Version=3, Params=params) + msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, 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 SetInstanceInfo(self, machines): - ''' - machines : typing.Sequence[~InstanceInfo] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=3, Params=params) - params['Machines'] = machines - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetInstanceStatus(self, entities): + async def ClearReboot(self, entities): ''' - entities : typing.Sequence[~EntityStatusArgs] + entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=3, Params=params) + msg = dict(Type='Reboot', Request='ClearReboot', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def SetPasswords(self, changes): - ''' - changes : typing.Sequence[~EntityPassword] - Returns -> typing.Sequence[~ErrorResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='SetPasswords', Version=3, Params=params) - params['Changes'] = changes - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(ErrorResults) - async def SetStatus(self, entities): + @ReturnMapping(RebootActionResults) + async def GetRebootAction(self, entities): ''' - entities : typing.Sequence[~EntityStatusArgs] - Returns -> typing.Sequence[~ErrorResult] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RebootActionResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='SetStatus', Version=3, Params=params) + msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -14974,171 +14552,273 @@ class Provisioner(Type): @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): + async def RequestReboot(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StatusResult] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='Status', Version=3, Params=params) + msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(ToolsResults) - async def Tools(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ToolsResult] + @ReturnMapping(NotifyWatchResult) + async def WatchForRebootEvent(self): ''' - # 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] + Returns -> typing.Union[_ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='UpdateStatus', Version=3, Params=params) - params['Entities'] = entities + msg = dict(Type='Reboot', Request='WatchForRebootEvent', Version=2, 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(NotifyWatchResult) - async def WatchAPIHostPorts(self): + @ReturnMapping(RelationUnitsWatchResult) + async def Next(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), str] + Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=3, Params=params) + msg = dict(Type='RelationUnitsWatcher', Request='Next', Version=1, Params=params) reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResults) - async def WatchAllContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] + @ReturnMapping(None) + async def Stop(self): ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=3, Params=params) - params['Params'] = params - reply = await self.rpc(msg) - return reply - - - @ReturnMapping(StringsWatchResults) - async def WatchContainers(self, params): - ''' - params : typing.Sequence[~WatchContainer] - Returns -> typing.Sequence[~StringsWatchResult] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchContainers', Version=3, Params=params) - params['Params'] = params + msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params) + reply = await self.rpc(msg) return reply +class Resumer(Type): + name = 'Resumer' + version = 2 + schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'} + - @ReturnMapping(NotifyWatchResult) - async def WatchForModelConfigChanges(self): + @ReturnMapping(None) + async def ResumeTransactions(self): ''' - Returns -> typing.Union[_ForwardRef('Error'), str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=3, Params=params) + msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, 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(NotifyWatchResult) - async def WatchMachineErrorRetry(self): + @ReturnMapping(RetryStrategyResults) + async def RetryStrategy(self, entities): ''' - - Returns -> typing.Union[_ForwardRef('Error'), str] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~RetryStrategyResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=3, Params=params) - + msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(StringsWatchResult) - async def WatchModelMachines(self): + @ReturnMapping(NotifyWatchResults) + async def WatchRetryStrategy(self, entities): ''' - - Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~NotifyWatchResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=3, Params=params) - + msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params) + params['Entities'] = entities reply = await self.rpc(msg) return reply -class ProxyUpdater(Type): - name = 'ProxyUpdater' +class SSHClient(Type): + name = 'SSHClient' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -15174,38 +14854,29 @@ class ProxyUpdater(Type): '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'], + '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'}, - 'ProxyConfigResults': {'additionalProperties': False, - 'properties': {'Results': {'items': {'$ref': '#/definitions/ProxyConfigResult'}, - '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'}, @@ -15220,56 +14891,122 @@ class ProxyUpdater(Type): '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'}}, + '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(ProxyConfigResults) - async def ProxyConfig(self, entities): + @ReturnMapping(SSHAddressResults) + async def PrivateAddress(self, entities): + ''' + entities : typing.Sequence[~Entity] + Returns -> typing.Sequence[~SSHAddressResult] + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params) + params['Entities'] = entities + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHProxyResult) + async def Proxy(self): + ''' + + Returns -> bool + ''' + # map input types to rpc msg + params = dict() + msg = dict(Type='SSHClient', Request='Proxy', Version=1, Params=params) + + reply = await self.rpc(msg) + return reply + + + + @ReturnMapping(SSHAddressResults) + async def PublicAddress(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ProxyConfigResult] + Returns -> typing.Sequence[~SSHAddressResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ProxyUpdater', Request='ProxyConfig', 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(NotifyWatchResults) - async def WatchForProxyConfigAndAPIHostPortChanges(self, entities): + @ReturnMapping(SSHPublicKeysResults) + async def PublicKeys(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] + Returns -> typing.Sequence[~SSHPublicKeysResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, Params=params) + msg = dict(Type='SSHClient', Request='PublicKeys', Version=1, 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'}, +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'}, 'Error': {'additionalProperties': False, 'properties': {'Code': {'type': 'string'}, 'Info': {'$ref': '#/definitions/ErrorInfo'}, @@ -15289,6 +15026,14 @@ class Reboot(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'}, @@ -15304,19 +15049,180 @@ class Reboot(Type): 'caveats', 'sig'], 'type': 'object'}, - 'NotifyWatchResult': {'additionalProperties': False, - 'properties': {'Error': {'$ref': '#/definitions/Error'}, - 'NotifyWatcherId': {'type': 'string'}}, - 'required': ['NotifyWatcherId', 'Error'], + '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'], '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'}, + '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'}, 'caveat': {'additionalProperties': False, 'properties': {'caveatId': {'$ref': '#/definitions/packet'}, 'location': {'$ref': '#/definitions/packet'}, @@ -15331,318 +15237,358 @@ class Reboot(Type): 'totalLen': {'type': 'integer'}}, 'required': ['start', 'totalLen', 'headerLen'], 'type': 'object'}}, - 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, + 'Result': {'$ref': '#/definitions/AddRelationResults'}}, 'type': 'object'}, - 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/RebootActionResults'}}, + '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'}, - 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, - 'Result': {'$ref': '#/definitions/ErrorResults'}}, - 'type': 'object'}, - 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, - '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(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='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 + + + + @ReturnMapping(None) + async def DestroyRelation(self, endpoints): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + endpoints : typing.Sequence[str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='ClearReboot', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Service', Request='DestroyRelation', Version=3, Params=params) + params['Endpoints'] = endpoints reply = await self.rpc(msg) return reply - @ReturnMapping(RebootActionResults) - async def GetRebootAction(self, entities): + @ReturnMapping(None) + async def DestroyUnits(self, unitnames): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RebootActionResult] + unitnames : typing.Sequence[str] + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Service', Request='DestroyUnits', Version=3, Params=params) + params['UnitNames'] = unitnames reply = await self.rpc(msg) return reply - @ReturnMapping(ErrorResults) - async def RequestReboot(self, entities): + @ReturnMapping(None) + async def Expose(self, servicename): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~ErrorResult] + servicename : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params) - params['Entities'] = entities + msg = dict(Type='Service', Request='Expose', Version=3, Params=params) + params['ServiceName'] = servicename reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResult) - async def WatchForRebootEvent(self): + @ReturnMapping(ServiceGetResults) + async def Get(self, servicename): ''' + servicename : str + Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] + ''' + # 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='Reboot', Request='WatchForRebootEvent', Version=2, Params=params) - + msg = dict(Type='Service', Request='GetCharmURL', Version=3, Params=params) + params['ServiceName'] = servicename 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): + @ReturnMapping(GetConstraintsResults) + async def GetConstraints(self, servicename): ''' - - Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str] + servicename : str + Returns -> Value ''' # map input types to rpc msg params = dict() - msg = dict(Type='RelationUnitsWatcher', Request='Next', Version=1, Params=params) - + msg = dict(Type='Service', Request='GetConstraints', Version=3, Params=params) + params['ServiceName'] = servicename reply = await self.rpc(msg) return reply @ReturnMapping(None) - async def Stop(self): + async def Set(self, options, servicename): ''' - + options : typing.Mapping[str, str] + servicename : str Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params) - + msg = dict(Type='Service', Request='Set', Version=3, Params=params) + params['Options'] = options + params['ServiceName'] = servicename 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): + 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 ''' # map input types to rpc msg params = dict() - msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, Params=params) + 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 + reply = await self.rpc(msg) + return reply + + + @ReturnMapping(None) + async def SetConstraints(self, constraints, servicename): + ''' + 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 -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(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 + + + + @ReturnMapping(None) + async def Unexpose(self, servicename): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~RetryStrategyResult] + servicename : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Service', Request='Unexpose', Version=3, Params=params) + params['ServiceName'] = servicename reply = await self.rpc(msg) return reply - @ReturnMapping(NotifyWatchResults) - async def WatchRetryStrategy(self, entities): + @ReturnMapping(None) + async def Unset(self, options, servicename): ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~NotifyWatchResult] + options : typing.Sequence[str] + servicename : str + Returns -> None ''' # map input types to rpc msg params = dict() - msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params) - params['Entities'] = entities + msg = dict(Type='Service', Request='Unset', Version=3, Params=params) + params['Options'] = options + params['ServiceName'] = servicename reply = await self.rpc(msg) return reply -class SSHClient(Type): - name = 'SSHClient' + + @ReturnMapping(None) + async def Update(self, charmurl, constraints, forcecharmurl, forceseries, minunits, servicename, settingsstrings, settingsyaml): + ''' + charmurl : str + constraints : Value + forcecharmurl : bool + forceseries : bool + minunits : int + servicename : str + settingsstrings : typing.Mapping[str, str] + settingsyaml : str + Returns -> None + ''' + # 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 + reply = await self.rpc(msg) + return reply + + +class ServiceScaler(Type): + name = 'ServiceScaler' version = 1 schema = {'definitions': {'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -15663,6 +15609,15 @@ class SSHClient(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'}, @@ -15678,29 +15633,15 @@ 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'], - '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'}, + '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'}, @@ -15715,75 +15656,39 @@ class SSHClient(Type): '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'}}, + 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, + 'Result': {'$ref': '#/definitions/ErrorResults'}}, + 'type': 'object'}, + 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, + 'type': 'object'}}, 'type': 'object'} - @ReturnMapping(SSHAddressResults) - async def PrivateAddress(self, entities): + @ReturnMapping(ErrorResults) + async def Rescale(self, entities): ''' entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~SSHAddressResult] + Returns -> typing.Sequence[~ErrorResult] ''' # map input types to rpc msg params = dict() - msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params) + msg = dict(Type='ServiceScaler', Request='Rescale', Version=1, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply - @ReturnMapping(SSHProxyResult) - async def Proxy(self): - ''' - - Returns -> bool + @ReturnMapping(StringsWatchResult) + async def Watch(self): ''' - # 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] + Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')] ''' # map input types to rpc msg params = dict() - msg = dict(Type='SSHClient', Request='PublicAddress', Version=1, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply + msg = dict(Type='ServiceScaler', Request='Watch', Version=1, Params=params) - - - @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 @@ -16037,10 +15942,8 @@ class StatusHistory(Type): name = 'StatusHistory' version = 2 schema = {'definitions': {'StatusHistoryPruneArgs': {'additionalProperties': False, - 'properties': {'MaxHistoryMB': {'type': 'integer'}, - 'MaxHistoryTime': {'type': 'integer'}}, - 'required': ['MaxHistoryTime', - 'MaxHistoryMB'], + 'properties': {'MaxLogsPerEntity': {'type': 'integer'}}, + 'required': ['MaxLogsPerEntity'], 'type': 'object'}}, 'properties': {'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}}, 'type': 'object'}}, @@ -16048,17 +15951,15 @@ class StatusHistory(Type): @ReturnMapping(None) - async def Prune(self, maxhistorymb, maxhistorytime): + async def Prune(self, maxlogsperentity): ''' - maxhistorymb : int - maxhistorytime : int + maxlogsperentity : int Returns -> None ''' # map input types to rpc msg params = dict() msg = dict(Type='StatusHistory', Request='Prune', Version=2, Params=params) - params['MaxHistoryMB'] = maxhistorymb - params['MaxHistoryTime'] = maxhistorytime + params['MaxLogsPerEntity'] = maxlogsperentity reply = await self.rpc(msg) return reply @@ -17971,7 +17872,7 @@ class UnitAssigner(Type): class Uniter(Type): name = 'Uniter' - version = 4 + version = 3 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, 'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, 'type': 'array'}, @@ -18026,20 +17927,6 @@ 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'}}, @@ -18077,9 +17964,9 @@ class Uniter(Type): 'required': ['Results'], 'type': 'object'}, 'Endpoint': {'additionalProperties': False, - 'properties': {'ApplicationName': {'type': 'string'}, - 'Relation': {'$ref': '#/definitions/Relation'}}, - 'required': ['ApplicationName', 'Relation'], + 'properties': {'Relation': {'$ref': '#/definitions/Relation'}, + 'ServiceName': {'type': 'string'}}, + 'required': ['ServiceName', 'Relation'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'}, @@ -18223,10 +18110,10 @@ class Uniter(Type): 'required': ['Params'], 'type': 'object'}, 'MergeLeadershipSettingsParam': {'additionalProperties': False, - 'properties': {'ApplicationTag': {'type': 'string'}, + 'properties': {'ServiceTag': {'type': 'string'}, 'Settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, - 'required': ['ApplicationTag', + 'required': ['ServiceTag', 'Settings'], 'type': 'object'}, 'MeterStatusResult': {'additionalProperties': False, @@ -18438,6 +18325,20 @@ 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'}}, @@ -18640,12 +18541,6 @@ 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'}, @@ -18758,15 +18653,21 @@ 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'}, @@ -18796,9 +18697,6 @@ 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'}, @@ -18813,6 +18711,9 @@ 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'}, @@ -18833,7 +18734,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='APIAddresses', Version=4, Params=params) + msg = dict(Type='Uniter', Request='APIAddresses', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -18848,7 +18749,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='APIHostPorts', Version=4, Params=params) + msg = dict(Type='Uniter', Request='APIHostPorts', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -18863,7 +18764,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Actions', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Actions', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18878,7 +18779,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AddMetricBatches', Version=4, Params=params) + msg = dict(Type='Uniter', Request='AddMetricBatches', Version=3, Params=params) params['Batches'] = batches reply = await self.rpc(msg) return reply @@ -18893,7 +18794,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AddUnitStorage', Version=4, Params=params) + msg = dict(Type='Uniter', Request='AddUnitStorage', Version=3, Params=params) params['storages'] = storages reply = await self.rpc(msg) return reply @@ -18908,37 +18809,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AllMachinePorts', Version=4, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(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) + msg = dict(Type='Uniter', Request='AllMachinePorts', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18953,7 +18824,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AssignedMachine', Version=4, Params=params) + msg = dict(Type='Uniter', Request='AssignedMachine', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18968,7 +18839,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='AvailabilityZone', Version=4, Params=params) + msg = dict(Type='Uniter', Request='AvailabilityZone', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18983,7 +18854,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='BeginActions', Version=4, Params=params) + msg = dict(Type='Uniter', Request='BeginActions', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -18998,7 +18869,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CACert', Version=4, Params=params) + msg = dict(Type='Uniter', Request='CACert', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19013,7 +18884,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=4, Params=params) + msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=3, Params=params) params['URLs'] = urls reply = await self.rpc(msg) return reply @@ -19028,7 +18899,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=4, Params=params) + msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19043,7 +18914,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CharmURL', Version=4, Params=params) + msg = dict(Type='Uniter', Request='CharmURL', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19058,7 +18929,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ClearResolved', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ClearResolved', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19073,7 +18944,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ClosePorts', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ClosePorts', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19088,7 +18959,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ConfigSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ConfigSettings', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19103,7 +18974,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='CurrentModel', Version=4, Params=params) + msg = dict(Type='Uniter', Request='CurrentModel', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19118,7 +18989,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Destroy', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Destroy', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19133,7 +19004,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=4, Params=params) + msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19148,7 +19019,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19163,7 +19034,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='EnsureDead', Version=4, Params=params) + msg = dict(Type='Uniter', Request='EnsureDead', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19178,7 +19049,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='EnterScope', Version=4, Params=params) + msg = dict(Type='Uniter', Request='EnterScope', Version=3, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19193,7 +19064,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='FinishActions', Version=4, Params=params) + msg = dict(Type='Uniter', Request='FinishActions', Version=3, Params=params) params['results'] = results reply = await self.rpc(msg) return reply @@ -19208,7 +19079,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='GetMeterStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='GetMeterStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19223,7 +19094,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='GetPrincipal', Version=4, Params=params) + msg = dict(Type='Uniter', Request='GetPrincipal', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19238,7 +19109,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='HasSubordinates', Version=4, Params=params) + msg = dict(Type='Uniter', Request='HasSubordinates', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19253,7 +19124,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='JoinedRelations', Version=4, Params=params) + msg = dict(Type='Uniter', Request='JoinedRelations', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19268,7 +19139,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='LeaveScope', Version=4, Params=params) + msg = dict(Type='Uniter', Request='LeaveScope', Version=3, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19283,7 +19154,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Life', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Life', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19298,7 +19169,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Merge', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Merge', Version=3, Params=params) params['Params'] = params reply = await self.rpc(msg) return reply @@ -19313,7 +19184,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ModelConfig', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ModelConfig', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19328,7 +19199,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ModelUUID', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ModelUUID', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19343,7 +19214,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='NetworkConfig', Version=4, Params=params) + msg = dict(Type='Uniter', Request='NetworkConfig', Version=3, Params=params) params['Args'] = args reply = await self.rpc(msg) return reply @@ -19358,7 +19229,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='OpenPorts', Version=4, Params=params) + msg = dict(Type='Uniter', Request='OpenPorts', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19373,7 +19244,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='PrivateAddress', Version=4, Params=params) + msg = dict(Type='Uniter', Request='PrivateAddress', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19388,7 +19259,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ProviderType', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ProviderType', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19403,7 +19274,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='PublicAddress', Version=4, Params=params) + msg = dict(Type='Uniter', Request='PublicAddress', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19418,7 +19289,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Read', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Read', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19433,7 +19304,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=3, Params=params) params['RelationUnitPairs'] = relationunitpairs reply = await self.rpc(msg) return reply @@ -19448,7 +19319,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='ReadSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='ReadSettings', Version=3, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19463,7 +19334,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Relation', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Relation', Version=3, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19478,7 +19349,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RelationById', Version=4, Params=params) + msg = dict(Type='Uniter', Request='RelationById', Version=3, Params=params) params['RelationIds'] = relationids reply = await self.rpc(msg) return reply @@ -19493,7 +19364,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=3, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19508,7 +19379,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='RequestReboot', Version=4, Params=params) + msg = dict(Type='Uniter', Request='RequestReboot', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19523,7 +19394,37 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Resolved', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Resolved', Version=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) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19538,7 +19439,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetAgentStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='SetAgentStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19546,14 +19447,14 @@ class Uniter(Type): @ReturnMapping(ErrorResults) - async def SetApplicationStatus(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='SetApplicationStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='SetCharmURL', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19561,14 +19462,14 @@ class Uniter(Type): @ReturnMapping(ErrorResults) - async def SetCharmURL(self, entities): + async def SetServiceStatus(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=4, Params=params) + msg = dict(Type='Uniter', Request='SetServiceStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19583,7 +19484,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='SetStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19598,7 +19499,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='SetUnitStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='SetUnitStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19613,7 +19514,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=4, Params=params) + msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=3, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19628,7 +19529,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='StorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='StorageAttachments', Version=3, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19643,7 +19544,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UnitStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='UnitStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19658,7 +19559,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19673,7 +19574,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='UpdateSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='UpdateSettings', Version=3, Params=params) params['RelationUnits'] = relationunits reply = await self.rpc(msg) return reply @@ -19688,7 +19589,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='Watch', Version=4, Params=params) + msg = dict(Type='Uniter', Request='Watch', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19703,7 +19604,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19718,22 +19619,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=4, Params=params) - params['Entities'] = entities - reply = await self.rpc(msg) - return reply - - - - @ReturnMapping(StringsWatchResults) - async def WatchApplicationRelations(self, entities): - ''' - entities : typing.Sequence[~Entity] - Returns -> typing.Sequence[~StringsWatchResult] - ''' - # map input types to rpc msg - params = dict() - msg = dict(Type='Uniter', Request='WatchApplicationRelations', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19748,7 +19634,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19763,7 +19649,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=3, Params=params) reply = await self.rpc(msg) return reply @@ -19778,7 +19664,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19793,7 +19679,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19808,13 +19694,28 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=3, 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): ''' @@ -19823,7 +19724,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=3, Params=params) params['ids'] = ids reply = await self.rpc(msg) return reply @@ -19838,7 +19739,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply @@ -19853,7 +19754,7 @@ class Uniter(Type): ''' # map input types to rpc msg params = dict() - msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=4, Params=params) + msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=3, Params=params) params['Entities'] = entities reply = await self.rpc(msg) return reply diff --git a/juju/client/facade.py b/juju/client/facade.py index 048e5c5..8e3c7eb 100644 --- a/juju/client/facade.py +++ b/juju/client/facade.py @@ -526,7 +526,10 @@ class Schema(dict): add((name, self.buildArray(pprop, d + 1))) else: add((name, Mapping[str, SCHEMA_TO_PYTHON[ppkind]])) - #print("{}{}".format(d * " ", struct)) + + if not struct and node.get('additionalProperties', False): + add((name, Mapping[str, SCHEMA_TO_PYTHON['object']])) + return struct def buildArray(self, obj, d=0): @@ -558,12 +561,13 @@ def generate_facacdes(options): global classes schemas = json.loads(Path(options.schema).read_text("utf-8")) capture = codegen.CodeWriter() - capture.write(""" -# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. -# Changes will be overwritten/lost when the file is regenerated. + capture.write(textwrap.dedent("""\ + # DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py. + # Changes will be overwritten/lost when the file is regenerated. + + from juju.client.facade import Type, ReturnMapping -from juju.client.facade import Type, ReturnMapping - """) + """)) schemas = [Schema(s) for s in schemas] for schema in schemas: diff --git a/juju/client/schemas.json b/juju/client/schemas.json index 0c19648..9edb1fe 100644 --- a/juju/client/schemas.json +++ b/juju/client/schemas.json @@ -1,7 +1,7 @@ [ { "Name": "Action", - "Version": 2, + "Version": 1, "Schema": { "type": "object", "properties": { @@ -16,17 +16,6 @@ } } }, - "ApplicationsCharmsActions": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ApplicationsCharmActionsResults" - } - } - }, "Cancel": { "type": "object", "properties": { @@ -136,6 +125,17 @@ "$ref": "#/definitions/ActionResults" } } + }, + "ServicesCharmActions": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ServicesCharmActionsResults" + } + } } }, "definitions": { @@ -219,44 +219,17 @@ }, "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" - } + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Action" } } }, - "additionalProperties": false, - "required": [ - "ActionSpecs" - ] + "additionalProperties": false }, "ActionsByName": { "type": "object", @@ -318,33 +291,6 @@ }, "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": { @@ -490,16 +436,16 @@ "RunParams": { "type": "object", "properties": { - "Applications": { + "Commands": { + "type": "string" + }, + "Machines": { "type": "array", "items": { "type": "string" } }, - "Commands": { - "type": "string" - }, - "Machines": { + "Services": { "type": "array", "items": { "type": "string" @@ -520,10 +466,37 @@ "Commands", "Timeout", "Machines", - "Applications", + "Services", "Units" ] }, + "ServiceCharmActionsResult": { + "type": "object", + "properties": { + "actions": { + "$ref": "#/definitions/Actions" + }, + "error": { + "$ref": "#/definitions/Error" + }, + "servicetag": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ServicesCharmActionsResults": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceCharmActionsResult" + } + } + }, + "additionalProperties": false + }, "caveat": { "type": "object", "properties": { @@ -1546,430 +1519,540 @@ } }, { - "Name": "Application", + "Name": "Backups", "Version": 1, "Schema": { "type": "object", "properties": { - "AddRelation": { + "Create": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/AddRelation" + "$ref": "#/definitions/BackupsCreateArgs" }, "Result": { - "$ref": "#/definitions/AddRelationResults" + "$ref": "#/definitions/BackupsMetadataResult" } } }, - "AddUnits": { + "FinishRestore": { + "type": "object" + }, + "Info": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/AddApplicationUnits" + "$ref": "#/definitions/BackupsInfoArgs" }, "Result": { - "$ref": "#/definitions/AddApplicationUnitsResults" + "$ref": "#/definitions/BackupsMetadataResult" } } }, - "CharmRelations": { + "List": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationCharmRelations" + "$ref": "#/definitions/BackupsListArgs" }, "Result": { - "$ref": "#/definitions/ApplicationCharmRelationsResults" + "$ref": "#/definitions/BackupsListResult" } } }, - "Deploy": { + "PrepareRestore": { + "type": "object" + }, + "Remove": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationsDeploy" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/BackupsRemoveArgs" } } }, - "Destroy": { + "Restore": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationDestroy" + "$ref": "#/definitions/RestoreArgs" } } - }, - "DestroyRelation": { + } + }, + "definitions": { + "BackupsCreateArgs": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/DestroyRelation" + "Notes": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Notes" + ] }, - "DestroyUnits": { + "BackupsInfoArgs": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/DestroyApplicationUnits" + "ID": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "ID" + ] }, - "Expose": { + "BackupsListArgs": { "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationExpose" - } - } + "additionalProperties": false }, - "Get": { + "BackupsListResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" - }, - "Result": { - "$ref": "#/definitions/ApplicationGetResults" + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/BackupsMetadataResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "List" + ] }, - "GetCharmURL": { + "BackupsMetadataResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ApplicationGet" + "CACert": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/StringResult" + "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" + }, + "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", + "CACert", + "CAPrivateKey" + ] }, - "GetConstraints": { + "BackupsRemoveArgs": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/GetApplicationConstraints" - }, - "Result": { - "$ref": "#/definitions/GetConstraintsResults" + "ID": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "ID" + ] }, - "Set": { + "Number": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSet" + "Build": { + "type": "integer" + }, + "Major": { + "type": "integer" + }, + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "integer" + }, + "Tag": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] }, - "SetCharm": { + "RestoreArgs": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ApplicationSetCharm" + "BackupId": { + "type": "string" } - } - }, - "SetConstraints": { + }, + "additionalProperties": false, + "required": [ + "BackupId" + ] + } + } + } + }, + { + "Name": "Block", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "List": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SetConstraints" + "Result": { + "$ref": "#/definitions/BlockResults" } } }, - "SetMetricCredentials": { + "SwitchBlockOff": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationMetricCredentials" + "$ref": "#/definitions/BlockSwitchParams" }, "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "Unexpose": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnexpose" - } - } - }, - "Unset": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ApplicationUnset" + "$ref": "#/definitions/ErrorResult" } } }, - "Update": { + "SwitchBlockOn": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationUpdate" + "$ref": "#/definitions/BlockSwitchParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" } } } }, "definitions": { - "AddApplicationUnits": { + "Block": { "type": "object", "properties": { - "ApplicationName": { + "id": { "type": "string" }, - "NumUnits": { - "type": "integer" + "message": { + "type": "string" }, - "Placement": { - "type": "array", - "items": { - "$ref": "#/definitions/Placement" - } + "tag": { + "type": "string" + }, + "type": { + "type": "string" } }, "additionalProperties": false, "required": [ - "ApplicationName", - "NumUnits", - "Placement" + "id", + "tag", + "type" ] }, - "AddApplicationUnitsResults": { + "BlockResult": { "type": "object", "properties": { - "Units": { - "type": "array", - "items": { - "type": "string" - } + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "$ref": "#/definitions/Block" } }, "additionalProperties": false, "required": [ - "Units" + "result" ] }, - "AddRelation": { + "BlockResults": { "type": "object", "properties": { - "Endpoints": { + "results": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/BlockResult" } } }, - "additionalProperties": false, - "required": [ - "Endpoints" - ] + "additionalProperties": false }, - "AddRelationResults": { + "BlockSwitchParams": { "type": "object", "properties": { - "Endpoints": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Relation" - } - } + "message": { + "type": "string" + }, + "type": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Endpoints" + "type" ] }, - "ApplicationCharmRelations": { + "Error": { "type": "object", "properties": { - "ApplicationName": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "ApplicationName" + "Message", + "Code" ] }, - "ApplicationCharmRelationsResults": { + "ErrorInfo": { "type": "object", "properties": { - "CharmRelations": { - "type": "array", - "items": { - "type": "string" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "CharmRelations" + "Error" ] }, - "ApplicationDeploy": { + "Macaroon": { "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" - } + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" } }, - "NumUnits": { - "type": "integer" - }, - "Placement": { + "data": { "type": "array", "items": { - "$ref": "#/definitions/Placement" + "type": "integer" } }, - "Resources": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } + "id": { + "$ref": "#/definitions/packet" }, - "Series": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" }, - "Storage": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/Constraints" - } + "sig": { + "type": "array", + "items": { + "type": "integer" } } }, "additionalProperties": false, "required": [ - "ApplicationName", - "Series", - "CharmUrl", - "Channel", - "NumUnits", - "Config", - "ConfigYAML", - "Constraints", - "Placement", - "Storage", - "EndpointBindings", - "Resources" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "ApplicationDestroy": { + "caveat": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "ApplicationName" + "location", + "caveatId", + "verificationId" ] }, - "ApplicationExpose": { + "packet": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "ApplicationName" + "start", + "totalLen", + "headerLen" ] - }, - "ApplicationGet": { + } + } + } + }, + { + "Name": "CharmRevisionUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "UpdateLatestRevisions": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + } + }, + "definitions": { + "Error": { "type": "object", "properties": { - "ApplicationName": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "ApplicationName" + "Message", + "Code" ] }, - "ApplicationGetResults": { + "ErrorInfo": { "type": "object", "properties": { - "Application": { - "type": "string" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "Charm": { + "MacaroonPath": { "type": "string" - }, - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "Constraints": { - "$ref": "#/definitions/Value" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "Application", - "Charm", - "Config", - "Constraints" + "Error" ] }, - "ApplicationMetricCredential": { + "Macaroon": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "MetricCredentials": { + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { "type": "array", "items": { "type": "integer" @@ -1978,102 +2061,128 @@ }, "additionalProperties": false, "required": [ - "ApplicationName", - "MetricCredentials" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "ApplicationMetricCredentials": { + "caveat": { "type": "object", "properties": { - "Creds": { - "type": "array", - "items": { - "$ref": "#/definitions/ApplicationMetricCredential" - } + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Creds" + "location", + "caveatId", + "verificationId" ] }, - "ApplicationSet": { + "packet": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" + "headerLen": { + "type": "integer" }, - "Options": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "ApplicationName", - "Options" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "Charms", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "CharmInfo": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmInfo" + }, + "Result": { + "$ref": "#/definitions/CharmInfo" + } + } }, - "ApplicationSetCharm": { + "IsMetered": { "type": "object", "properties": { - "applicationname": { - "type": "string" + "Params": { + "$ref": "#/definitions/CharmInfo" }, - "charmurl": { - "type": "string" + "Result": { + "$ref": "#/definitions/IsMeteredResult" + } + } + }, + "List": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/CharmsList" }, - "cs-channel": { + "Result": { + "$ref": "#/definitions/CharmsListResult" + } + } + } + }, + "definitions": { + "CharmInfo": { + "type": "object", + "properties": { + "CharmURL": { "type": "string" - }, - "forceseries": { - "type": "boolean" - }, - "forceunits": { - "type": "boolean" - }, - "resourceids": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } } }, "additionalProperties": false, "required": [ - "applicationname", - "charmurl", - "cs-channel", - "forceunits", - "forceseries", - "resourceids" + "CharmURL" ] }, - "ApplicationUnexpose": { + "CharmsList": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" + "Names": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "required": [ - "ApplicationName" + "Names" ] }, - "ApplicationUnset": { + "CharmsListResult": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" - }, - "Options": { + "CharmURLs": { "type": "array", "items": { "type": "string" @@ -2082,120 +2191,43 @@ }, "additionalProperties": false, "required": [ - "ApplicationName", - "Options" + "CharmURLs" ] }, - "ApplicationUpdate": { + "IsMeteredResult": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" - }, - "CharmUrl": { - "type": "string" - }, - "Constraints": { - "$ref": "#/definitions/Value" - }, - "ForceCharmUrl": { - "type": "boolean" - }, - "ForceSeries": { + "Metered": { "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" + "Metered" ] + } + } + } + }, + { + "Name": "Cleaner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Cleanup": { + "type": "object" }, - "DestroyRelation": { + "WatchCleanups": { "type": "object", "properties": { - "Endpoints": { - "type": "array", - "items": { - "type": "string" - } + "Result": { + "$ref": "#/definitions/NotifyWatchResult" } - }, - "additionalProperties": false, - "required": [ - "Endpoints" - ] - }, + } + } + }, + "definitions": { "Error": { "type": "object", "properties": { @@ -2227,57 +2259,6 @@ }, "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": { @@ -2315,128 +2296,22 @@ "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": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "Result": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "NotifyWatcherId", + "Error" ] }, - "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": { @@ -2481,934 +2356,722 @@ } }, { - "Name": "ApplicationScaler", + "Name": "Client", "Version": 1, "Schema": { "type": "object", "properties": { - "Rescale": { + "APIHostPorts": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/APIHostPortsResult" } } }, - "Watch": { + "AbortCurrentUpgrade": { + "type": "object" + }, + "AddCharm": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" + "Params": { + "$ref": "#/definitions/AddCharm" } } - } - }, - "definitions": { - "Entities": { - "type": "object", - "properties": { - "Entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } - } - }, - "additionalProperties": false, - "required": [ - "Entities" - ] }, - "Entity": { + "AddCharmWithAuthorization": { "type": "object", "properties": { - "Tag": { - "type": "string" + "Params": { + "$ref": "#/definitions/AddCharmWithAuthorization" } - }, - "additionalProperties": false, - "required": [ - "Tag" - ] + } }, - "Error": { + "AddMachines": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Params": { + "$ref": "#/definitions/AddMachines" }, - "Message": { - "type": "string" + "Result": { + "$ref": "#/definitions/AddMachinesResults" } - }, - "additionalProperties": false, - "required": [ - "Message", - "Code" - ] + } }, - "ErrorInfo": { + "AddMachinesV2": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Params": { + "$ref": "#/definitions/AddMachines" }, - "MacaroonPath": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Result": { + "$ref": "#/definitions/AddMachinesResults" } - }, - "additionalProperties": false, - "required": [ - "Error" - ] + } }, - "ErrorResults": { + "AgentVersion": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } + "Result": { + "$ref": "#/definitions/AgentVersionResult" } - }, - "additionalProperties": false, - "required": [ - "Results" - ] + } }, - "Macaroon": { + "CharmInfo": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Params": { + "$ref": "#/definitions/CharmInfo" }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "Result": { + "$ref": "#/definitions/CharmInfo" } - }, - "additionalProperties": false, - "required": [ - "data", - "location", - "id", - "caveats", - "sig" - ] + } }, - "StringsWatchResult": { + "DestroyMachines": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "Error": { - "$ref": "#/definitions/Error" - }, - "StringsWatcherId": { - "type": "string" + "Params": { + "$ref": "#/definitions/DestroyMachines" } - }, - "additionalProperties": false, - "required": [ - "StringsWatcherId", - "Changes", - "Error" - ] + } }, - "caveat": { + "DestroyModel": { + "type": "object" + }, + "FindTools": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Params": { + "$ref": "#/definitions/FindToolsParams" }, - "verificationId": { - "$ref": "#/definitions/packet" + "Result": { + "$ref": "#/definitions/FindToolsResult" } - }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] + } }, - "packet": { + "FullStatus": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Params": { + "$ref": "#/definitions/StatusParams" }, - "totalLen": { - "type": "integer" + "Result": { + "$ref": "#/definitions/FullStatus" } - }, - "additionalProperties": false, - "required": [ - "start", - "totalLen", - "headerLen" - ] - } - } - } - }, - { - "Name": "Backups", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Create": { + } + }, + "GetBundleChanges": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/BackupsCreateArgs" + "$ref": "#/definitions/GetBundleChangesParams" }, "Result": { - "$ref": "#/definitions/BackupsMetadataResult" + "$ref": "#/definitions/GetBundleChangesResults" } } }, - "FinishRestore": { - "type": "object" - }, - "Info": { + "GetModelConstraints": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/BackupsInfoArgs" - }, "Result": { - "$ref": "#/definitions/BackupsMetadataResult" + "$ref": "#/definitions/GetConstraintsResults" } } }, - "List": { + "InjectMachines": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/BackupsListArgs" + "$ref": "#/definitions/AddMachines" }, "Result": { - "$ref": "#/definitions/BackupsListResult" + "$ref": "#/definitions/AddMachinesResults" } } }, - "PrepareRestore": { - "type": "object" - }, - "Remove": { + "ModelGet": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/BackupsRemoveArgs" + "Result": { + "$ref": "#/definitions/ModelConfigResults" } } }, - "Restore": { + "ModelInfo": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/RestoreArgs" + "Result": { + "$ref": "#/definitions/ModelInfo" } } - } - }, - "definitions": { - "BackupsCreateArgs": { + }, + "ModelSet": { "type": "object", "properties": { - "Notes": { - "type": "string" + "Params": { + "$ref": "#/definitions/ModelSet" } - }, - "additionalProperties": false, - "required": [ - "Notes" - ] + } }, - "BackupsInfoArgs": { + "ModelUnset": { "type": "object", "properties": { - "ID": { - "type": "string" + "Params": { + "$ref": "#/definitions/ModelUnset" } - }, - "additionalProperties": false, - "required": [ - "ID" - ] + } }, - "BackupsListArgs": { + "ModelUserInfo": { "type": "object", - "additionalProperties": false + "properties": { + "Result": { + "$ref": "#/definitions/ModelUserInfoResults" + } + } }, - "BackupsListResult": { + "PrivateAddress": { "type": "object", "properties": { - "List": { - "type": "array", - "items": { - "$ref": "#/definitions/BackupsMetadataResult" - } + "Params": { + "$ref": "#/definitions/PrivateAddress" + }, + "Result": { + "$ref": "#/definitions/PrivateAddressResults" } - }, - "additionalProperties": false, - "required": [ - "List" - ] + } }, - "BackupsMetadataResult": { + "ProvisioningScript": { "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" + "Params": { + "$ref": "#/definitions/ProvisioningScriptParams" }, - "Started": { - "type": "string", - "format": "date-time" + "Result": { + "$ref": "#/definitions/ProvisioningScriptResult" + } + } + }, + "PublicAddress": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/PublicAddress" }, - "Stored": { - "type": "string", - "format": "date-time" + "Result": { + "$ref": "#/definitions/PublicAddressResults" + } + } + }, + "ResolveCharms": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResolveCharms" }, - "Version": { - "$ref": "#/definitions/Number" + "Result": { + "$ref": "#/definitions/ResolveCharmResults" } - }, - "additionalProperties": false, - "required": [ - "ID", - "Checksum", - "ChecksumFormat", - "Size", - "Stored", - "Started", - "Finished", - "Notes", - "Model", - "Machine", - "Hostname", - "Version", - "Series", - "CACert", - "CAPrivateKey" - ] + } }, - "BackupsRemoveArgs": { + "Resolved": { "type": "object", "properties": { - "ID": { - "type": "string" + "Params": { + "$ref": "#/definitions/Resolved" } - }, - "additionalProperties": false, - "required": [ - "ID" - ] + } }, - "Number": { + "RetryProvisioning": { "type": "object", "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" + "Params": { + "$ref": "#/definitions/Entities" }, - "Tag": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" - ] + } }, - "RestoreArgs": { + "SetModelAgentVersion": { "type": "object", "properties": { - "BackupId": { - "type": "string" + "Params": { + "$ref": "#/definitions/SetModelAgentVersion" } - }, - "additionalProperties": false, - "required": [ - "BackupId" - ] - } - } - } - }, - { - "Name": "Block", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "List": { + } + }, + "SetModelConstraints": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/BlockResults" + "Params": { + "$ref": "#/definitions/SetConstraints" } } }, - "SwitchBlockOff": { + "StatusHistory": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/BlockSwitchParams" + "$ref": "#/definitions/StatusHistoryArgs" }, "Result": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/StatusHistoryResults" } } }, - "SwitchBlockOn": { + "WatchAll": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/BlockSwitchParams" - }, "Result": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/AllWatcherId" } } } }, "definitions": { - "Block": { + "APIHostPortsResult": { "type": "object", "properties": { - "id": { - "type": "string" - }, - "message": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" + "Servers": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } + } } }, "additionalProperties": false, "required": [ - "id", - "tag", - "type" + "Servers" ] }, - "BlockResult": { + "AddCharm": { "type": "object", "properties": { - "error": { - "$ref": "#/definitions/Error" + "Channel": { + "type": "string" }, - "result": { - "$ref": "#/definitions/Block" + "URL": { + "type": "string" } }, "additionalProperties": false, "required": [ - "result" + "URL", + "Channel" ] }, - "BlockResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/BlockResult" - } - } - }, - "additionalProperties": false - }, - "BlockSwitchParams": { + "AddCharmWithAuthorization": { "type": "object", "properties": { - "message": { + "Channel": { "type": "string" }, - "type": { + "CharmStoreMacaroon": { + "$ref": "#/definitions/Macaroon" + }, + "URL": { "type": "string" } }, "additionalProperties": false, "required": [ - "type" + "URL", + "Channel", + "CharmStoreMacaroon" ] }, - "Error": { + "AddMachineParams": { "type": "object", "properties": { - "Code": { + "Addrs": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ContainerType": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Disks": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraints" + } }, - "Message": { + "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": [ - "Message", - "Code" + "Series", + "Constraints", + "Jobs", + "Disks", + "Placement", + "ParentId", + "ContainerType", + "InstanceId", + "Nonce", + "HardwareCharacteristics", + "Addrs" ] }, - "ErrorInfo": { + "AddMachines": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { - "type": "string" + "MachineParams": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "MachineParams" + ] }, - "ErrorResult": { + "AddMachinesResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" + }, + "Machine": { + "type": "string" } }, "additionalProperties": false, "required": [ + "Machine", "Error" ] }, - "Macaroon": { + "AddMachinesResults": { "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": { + "Machines": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/AddMachinesResult" } } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Machines" ] }, - "caveat": { + "Address": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" + "Scope": { + "type": "string" }, - "location": { - "$ref": "#/definitions/packet" + "SpaceName": { + "type": "string" }, - "verificationId": { - "$ref": "#/definitions/packet" + "Type": { + "type": "string" + }, + "Value": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "Value", + "Type", + "Scope" ] }, - "packet": { + "AgentVersionResult": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" - }, - "totalLen": { - "type": "integer" + "Version": { + "$ref": "#/definitions/Number" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Version" ] - } - } - } - }, - { - "Name": "CharmRevisionUpdater", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "UpdateLatestRevisions": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ErrorResult" - } - } - } - }, - "definitions": { - "Error": { + }, + "AllWatcherId": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" - }, - "Message": { + "AllWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "AllWatcherId" ] }, - "ErrorInfo": { + "Binary": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Arch": { + "type": "string" }, - "MacaroonPath": { + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { "type": "string" } }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - } - }, "additionalProperties": false, "required": [ - "Error" + "Number", + "Series", + "Arch" ] }, - "Macaroon": { + "BundleChangesChange": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { + "args": { "type": "array", "items": { - "type": "integer" + "type": "object", + "additionalProperties": true } }, "id": { - "$ref": "#/definitions/packet" + "type": "string" }, - "location": { - "$ref": "#/definitions/packet" + "method": { + "type": "string" }, - "sig": { + "requires": { "type": "array", "items": { - "type": "integer" + "type": "string" } } }, "additionalProperties": false, "required": [ - "data", - "location", "id", - "caveats", - "sig" + "method", + "args", + "requires" ] }, - "caveat": { + "CharmInfo": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "verificationId": { - "$ref": "#/definitions/packet" + "CharmURL": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "CharmURL" ] }, - "packet": { + "Constraints": { "type": "object", "properties": { - "headerLen": { + "Count": { "type": "integer" }, - "start": { - "type": "integer" + "Pool": { + "type": "string" }, - "totalLen": { + "Size": { "type": "integer" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Pool", + "Size", + "Count" ] - } - } - } - }, - { - "Name": "Charms", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "CharmInfo": { + }, + "DestroyMachines": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/CharmInfo" + "Force": { + "type": "boolean" }, - "Result": { - "$ref": "#/definitions/CharmInfo" + "MachineNames": { + "type": "array", + "items": { + "type": "string" + } } - } + }, + "additionalProperties": false, + "required": [ + "MachineNames", + "Force" + ] }, - "IsMetered": { + "DetailedStatus": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/CharmInfo" + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } }, - "Result": { - "$ref": "#/definitions/IsMeteredResult" + "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" + ] }, - "List": { + "EndpointStatus": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/CharmsList" + "Name": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/CharmsListResult" - } - } - } - }, - "definitions": { - "CharmInfo": { - "type": "object", - "properties": { - "CharmURL": { + "Role": { + "type": "string" + }, + "ServiceName": { "type": "string" + }, + "Subordinate": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "CharmURL" + "ServiceName", + "Name", + "Role", + "Subordinate" ] }, - "CharmsList": { + "Entities": { "type": "object", "properties": { - "Names": { + "Entities": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "Names" + "Entities" ] }, - "CharmsListResult": { + "Entity": { "type": "object", "properties": { - "CharmURLs": { - "type": "array", - "items": { - "type": "string" - } + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "CharmURLs" + "Tag" ] }, - "IsMeteredResult": { + "EntityStatus": { "type": "object", "properties": { - "Metered": { - "type": "boolean" + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Info": { + "type": "string" + }, + "Since": { + "type": "string", + "format": "date-time" + }, + "Status": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Metered" + "Status", + "Info", + "Data", + "Since" ] - } - } - } - }, - { - "Name": "Cleaner", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Cleanup": { - "type": "object" }, - "WatchCleanups": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { "Error": { "type": "object", "properties": { @@ -3440,370 +3103,1090 @@ }, "additionalProperties": false }, - "Macaroon": { + "ErrorResult": { "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" - } + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Error" ] }, - "NotifyWatchResult": { + "ErrorResults": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "NotifyWatcherId": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "Results" ] }, - "caveat": { + "FindToolsParams": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" + "Arch": { + "type": "string" }, - "location": { - "$ref": "#/definitions/packet" + "MajorVersion": { + "type": "integer" }, - "verificationId": { - "$ref": "#/definitions/packet" + "MinorVersion": { + "type": "integer" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "Number", + "MajorVersion", + "MinorVersion", + "Arch", + "Series" ] }, - "packet": { + "FindToolsResult": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Error": { + "$ref": "#/definitions/Error" }, - "totalLen": { - "type": "integer" + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "List", + "Error" ] - } - } - } - }, - { - "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": { + "FullStatus": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" + "AvailableVersion": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "AddMachinesV2": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" + "Machines": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/MachineStatus" + } + } }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" + "ModelName": { + "type": "string" + }, + "Relations": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationStatus" + } + }, + "Services": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/ServiceStatus" + } + } } - } + }, + "additionalProperties": false, + "required": [ + "ModelName", + "AvailableVersion", + "Machines", + "Services", + "Relations" + ] }, - "AgentVersion": { + "GetBundleChangesParams": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/AgentVersionResult" + "yaml": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "yaml" + ] }, - "CharmInfo": { + "GetBundleChangesResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/CharmInfo" + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/BundleChangesChange" + } }, - "Result": { - "$ref": "#/definitions/CharmInfo" + "errors": { + "type": "array", + "items": { + "type": "string" + } } - } + }, + "additionalProperties": false }, - "DestroyMachines": { + "GetConstraintsResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/DestroyMachines" + "Constraints": { + "$ref": "#/definitions/Value" } - } - }, - "DestroyModel": { - "type": "object" + }, + "additionalProperties": false, + "required": [ + "Constraints" + ] }, - "FindTools": { + "HardwareCharacteristics": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" + "Arch": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/FindToolsResult" - } - } - }, - "FullStatus": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/StatusParams" + "AvailabilityZone": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/FullStatus" + "CpuCores": { + "type": "integer" + }, + "CpuPower": { + "type": "integer" + }, + "Mem": { + "type": "integer" + }, + "RootDisk": { + "type": "integer" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } } - } + }, + "additionalProperties": false }, - "GetBundleChanges": { + "HostPort": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/GetBundleChangesParams" + "Address": { + "$ref": "#/definitions/Address" }, - "Result": { - "$ref": "#/definitions/GetBundleChangesResults" + "Port": { + "type": "integer" } - } + }, + "additionalProperties": false, + "required": [ + "Address", + "Port" + ] }, - "GetModelConstraints": { + "Macaroon": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/GetConstraintsResults" + "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": { + "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", + "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" + ] + }, + "ServiceStatus": { + "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" + ] }, - "InjectMachines": { + "SetConstraints": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ServiceName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ServiceName", + "Constraints" + ] + }, + "SetModelAgentVersion": { + "type": "object", + "properties": { + "Version": { + "$ref": "#/definitions/Number" + } + }, + "additionalProperties": false, + "required": [ + "Version" + ] + }, + "StatusHistoryArgs": { + "type": "object", + "properties": { + "Kind": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Kind", + "Size", + "Name" + ] + }, + "StatusHistoryResults": { + "type": "object", + "properties": { + "Statuses": { + "type": "array", + "items": { + "$ref": "#/definitions/DetailedStatus" + } + } + }, + "additionalProperties": false, + "required": [ + "Statuses" + ] + }, + "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" + } }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - }, - "ModelGet": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResults" - } - } - }, - "ModelInfo": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/ModelInfo" + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "virt-type": { + "type": "string" } - } + }, + "additionalProperties": false }, - "ModelSet": { + "caveat": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ModelSet" + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } - } + }, + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] }, - "ModelUnset": { + "packet": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ModelUnset" + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } - } - }, - "ModelUserInfo": { + }, + "additionalProperties": false, + "required": [ + "start", + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "Controller", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AllModels": { "type": "object", "properties": { "Result": { - "$ref": "#/definitions/ModelUserInfoResults" + "$ref": "#/definitions/UserModelList" } } }, - "PrivateAddress": { + "DestroyController": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/PrivateAddress" - }, - "Result": { - "$ref": "#/definitions/PrivateAddressResults" + "$ref": "#/definitions/DestroyControllerArgs" } } }, - "ProvisioningScript": { + "InitiateModelMigration": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ProvisioningScriptParams" + "$ref": "#/definitions/InitiateModelMigrationArgs" }, "Result": { - "$ref": "#/definitions/ProvisioningScriptResult" + "$ref": "#/definitions/InitiateModelMigrationResults" } } }, - "PublicAddress": { + "ListBlockedModels": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/PublicAddress" - }, "Result": { - "$ref": "#/definitions/PublicAddressResults" + "$ref": "#/definitions/ModelBlockInfoList" } } }, - "ResolveCharms": { + "ModelConfig": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ResolveCharms" - }, "Result": { - "$ref": "#/definitions/ResolveCharmResults" - } - } - }, - "Resolved": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Resolved" + "$ref": "#/definitions/ModelConfigResults" } } }, - "RetryProvisioning": { + "ModelStatus": { "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" + "$ref": "#/definitions/ModelStatusResults" } } }, - "StatusHistory": { + "RemoveBlocks": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/StatusHistoryRequests" - }, - "Result": { - "$ref": "#/definitions/StatusHistoryResults" + "$ref": "#/definitions/RemoveBlocksArgs" } } }, - "WatchAll": { + "WatchAllModels": { "type": "object", "properties": { "Result": { @@ -3813,1362 +4196,1149 @@ } }, "definitions": { - "APIHostPortsResult": { + "AllWatcherId": { "type": "object", "properties": { - "Servers": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } - } + "AllWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Servers" + "AllWatcherId" ] }, - "AddCharm": { + "DestroyControllerArgs": { "type": "object", "properties": { - "Channel": { - "type": "string" - }, - "URL": { - "type": "string" + "destroy-models": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "URL", - "Channel" + "destroy-models" ] }, - "AddCharmWithAuthorization": { + "Entities": { "type": "object", "properties": { - "Channel": { - "type": "string" - }, - "CharmStoreMacaroon": { - "$ref": "#/definitions/Macaroon" - }, - "URL": { - "type": "string" + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } } }, "additionalProperties": false, "required": [ - "URL", - "Channel", - "CharmStoreMacaroon" + "Entities" ] }, - "AddMachineParams": { + "Entity": { "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": { + "Tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Series", - "Constraints", - "Jobs", - "Disks", - "Placement", - "ParentId", - "ContainerType", - "InstanceId", - "Nonce", - "HardwareCharacteristics", - "Addrs" + "Tag" ] }, - "AddMachines": { + "Error": { "type": "object", - "properties": { - "MachineParams": { - "type": "array", - "items": { - "$ref": "#/definitions/AddMachineParams" - } + "properties": { + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" } }, "additionalProperties": false, "required": [ - "MachineParams" + "Message", + "Code" ] }, - "AddMachinesResult": { + "ErrorInfo": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "Machine": { + "MacaroonPath": { "type": "string" } }, - "additionalProperties": false, - "required": [ - "Machine", - "Error" - ] + "additionalProperties": false }, - "AddMachinesResults": { + "InitiateModelMigrationArgs": { "type": "object", "properties": { - "Machines": { + "specs": { "type": "array", "items": { - "$ref": "#/definitions/AddMachinesResult" + "$ref": "#/definitions/ModelMigrationSpec" } } }, "additionalProperties": false, "required": [ - "Machines" + "specs" ] }, - "Address": { + "InitiateModelMigrationResult": { "type": "object", "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" + "error": { + "$ref": "#/definitions/Error" }, - "Type": { + "id": { "type": "string" }, - "Value": { + "model-tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope" - ] - }, - "AgentVersionResult": { - "type": "object", - "properties": { - "Version": { - "$ref": "#/definitions/Number" - } - }, - "additionalProperties": false, - "required": [ - "Version" + "model-tag", + "error", + "id" ] }, - "AllWatcherId": { + "InitiateModelMigrationResults": { "type": "object", "properties": { - "AllWatcherId": { - "type": "string" + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/InitiateModelMigrationResult" + } } }, "additionalProperties": false, "required": [ - "AllWatcherId" + "results" ] }, - "ApplicationStatus": { + "Macaroon": { "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" - } + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" } }, - "Relations": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } + "data": { + "type": "array", + "items": { + "type": "integer" } }, - "Status": { - "$ref": "#/definitions/DetailedStatus" + "id": { + "$ref": "#/definitions/packet" }, - "SubordinateTo": { + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { "type": "array", "items": { - "type": "string" - } - }, - "Units": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } + "type": "integer" } } }, "additionalProperties": false, "required": [ - "Err", - "Charm", - "Exposed", - "Life", - "Relations", - "CanUpgradeTo", - "SubordinateTo", - "Units", - "MeterStatuses", - "Status" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "Binary": { + "Model": { "type": "object", "properties": { - "Arch": { + "Name": { "type": "string" }, - "Number": { - "$ref": "#/definitions/Number" + "OwnerTag": { + "type": "string" }, - "Series": { + "UUID": { "type": "string" } }, "additionalProperties": false, "required": [ - "Number", - "Series", - "Arch" + "Name", + "UUID", + "OwnerTag" ] }, - "BundleChangesChange": { + "ModelBlockInfo": { "type": "object", "properties": { - "args": { + "blocks": { "type": "array", "items": { - "type": "object", - "additionalProperties": true + "type": "string" } }, - "id": { + "model-uuid": { "type": "string" }, - "method": { + "name": { "type": "string" }, - "requires": { - "type": "array", - "items": { - "type": "string" - } + "owner-tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "id", - "method", - "args", - "requires" + "name", + "model-uuid", + "owner-tag", + "blocks" ] }, - "CharmInfo": { + "ModelBlockInfoList": { "type": "object", "properties": { - "CharmURL": { - "type": "string" + "models": { + "type": "array", + "items": { + "$ref": "#/definitions/ModelBlockInfo" + } } }, - "additionalProperties": false, - "required": [ - "CharmURL" - ] + "additionalProperties": false }, - "Constraints": { + "ModelConfigResults": { "type": "object", "properties": { - "Count": { - "type": "integer" - }, - "Pool": { - "type": "string" - }, - "Size": { - "type": "integer" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } } }, "additionalProperties": false, "required": [ - "Pool", - "Size", - "Count" + "Config" ] }, - "DestroyMachines": { + "ModelMigrationSpec": { "type": "object", "properties": { - "Force": { - "type": "boolean" + "model-tag": { + "type": "string" }, - "MachineNames": { - "type": "array", - "items": { - "type": "string" - } + "target-info": { + "$ref": "#/definitions/ModelMigrationTargetInfo" } }, "additionalProperties": false, "required": [ - "MachineNames", - "Force" + "model-tag", + "target-info" ] }, - "DetailedStatus": { + "ModelMigrationTargetInfo": { "type": "object", "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } + "addrs": { + "type": "array", + "items": { + "type": "string" } }, - "Err": { - "type": "object", - "additionalProperties": true - }, - "Info": { - "type": "string" - }, - "Kind": { + "auth-tag": { "type": "string" }, - "Life": { + "ca-cert": { "type": "string" }, - "Since": { - "type": "string", - "format": "date-time" - }, - "Status": { + "controller-tag": { "type": "string" }, - "Version": { + "password": { "type": "string" } }, "additionalProperties": false, "required": [ - "Status", - "Info", - "Data", - "Since", - "Kind", - "Version", - "Life", - "Err" + "controller-tag", + "addrs", + "ca-cert", + "auth-tag", + "password" ] }, - "EndpointStatus": { + "ModelStatus": { "type": "object", "properties": { - "ApplicationName": { + "hosted-machine-count": { + "type": "integer" + }, + "life": { "type": "string" }, - "Name": { + "model-tag": { "type": "string" }, - "Role": { + "owner-tag": { "type": "string" }, - "Subordinate": { - "type": "boolean" + "service-count": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "ApplicationName", - "Name", - "Role", - "Subordinate" + "model-tag", + "life", + "hosted-machine-count", + "service-count", + "owner-tag" ] }, - "Entities": { + "ModelStatusResults": { "type": "object", "properties": { - "Entities": { + "models": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/ModelStatus" } } }, "additionalProperties": false, "required": [ - "Entities" + "models" ] }, - "Entity": { + "RemoveBlocksArgs": { "type": "object", "properties": { - "Tag": { - "type": "string" + "all": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "Tag" + "all" ] }, - "EntityStatus": { + "UserModel": { "type": "object", "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "Info": { - "type": "string" - }, - "Since": { + "LastConnection": { "type": "string", "format": "date-time" }, - "Status": { - "type": "string" + "Model": { + "$ref": "#/definitions/Model" } }, "additionalProperties": false, "required": [ - "Status", - "Info", - "Data", - "Since" + "Model", + "LastConnection" ] }, - "Error": { + "UserModelList": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" - }, - "Message": { - "type": "string" + "UserModels": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "UserModels" ] }, - "ErrorInfo": { + "caveat": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "caveatId": { + "$ref": "#/definitions/packet" }, - "MacaroonPath": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] }, - "ErrorResult": { + "packet": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Error" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "Deployer", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } }, - "ErrorResults": { + "APIHostPorts": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } + "Result": { + "$ref": "#/definitions/APIHostPortsResult" } - }, - "additionalProperties": false, - "required": [ - "Results" - ] + } }, - "FindToolsParams": { + "CACert": { "type": "object", "properties": { - "Arch": { - "type": "string" - }, - "MajorVersion": { - "type": "integer" + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "ConnectionInfo": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/DeployerConnectionValues" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "MinorVersion": { - "type": "integer" + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelUUID": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "Remove": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "Number": { - "$ref": "#/definitions/Number" + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetPasswords": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/EntityPasswords" }, - "Series": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "StateAddresses": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "WatchAPIHostPorts": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" } - }, - "additionalProperties": false, - "required": [ - "Number", - "MajorVersion", - "MinorVersion", - "Arch", - "Series" - ] + } }, - "FindToolsResult": { + "WatchUnits": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Params": { + "$ref": "#/definitions/Entities" }, - "List": { + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "Servers": { "type": "array", "items": { - "$ref": "#/definitions/Tools" + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } } } }, "additionalProperties": false, "required": [ - "List", - "Error" + "Servers" ] }, - "FullStatus": { + "Address": { "type": "object", "properties": { - "Applications": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/ApplicationStatus" - } - } - }, - "AvailableVersion": { + "Scope": { "type": "string" }, - "Machines": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/MachineStatus" - } - } + "SpaceName": { + "type": "string" }, - "ModelName": { + "Type": { "type": "string" }, - "Relations": { - "type": "array", - "items": { - "$ref": "#/definitions/RelationStatus" - } - } - }, - "additionalProperties": false, - "required": [ - "ModelName", - "AvailableVersion", - "Machines", - "Applications", - "Relations" - ] - }, - "GetBundleChangesParams": { - "type": "object", - "properties": { - "yaml": { + "Value": { "type": "string" } }, "additionalProperties": false, "required": [ - "yaml" + "Value", + "Type", + "Scope" ] }, - "GetBundleChangesResults": { + "BytesResult": { "type": "object", "properties": { - "changes": { - "type": "array", - "items": { - "$ref": "#/definitions/BundleChangesChange" - } - }, - "errors": { + "Result": { "type": "array", "items": { - "type": "string" + "type": "integer" } } }, - "additionalProperties": false - }, - "GetConstraintsResults": { - "type": "object", - "properties": { - "Constraints": { - "$ref": "#/definitions/Value" - } - }, "additionalProperties": false, "required": [ - "Constraints" + "Result" ] }, - "HardwareCharacteristics": { + "DeployerConnectionValues": { "type": "object", "properties": { - "Arch": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "CpuCores": { - "type": "integer" - }, - "CpuPower": { - "type": "integer" - }, - "Mem": { - "type": "integer" - }, - "RootDisk": { - "type": "integer" - }, - "Tags": { + "APIAddresses": { "type": "array", "items": { "type": "string" } - } - }, - "additionalProperties": false - }, - "History": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" }, - "Statuses": { + "StateAddresses": { "type": "array", "items": { - "$ref": "#/definitions/DetailedStatus" + "type": "string" } } }, "additionalProperties": false, "required": [ - "Statuses" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "Port": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "Address", - "Port" + "StateAddresses", + "APIAddresses" ] }, - "Macaroon": { + "Entities": { "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": { + "Entities": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Entities" ] }, - "MachineStatus": { + "Entity": { "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": { + "Tag": { "type": "string" - }, - "WantsVote": { - "type": "boolean" } }, "additionalProperties": false, "required": [ - "AgentStatus", - "InstanceStatus", - "DNSName", - "InstanceId", - "Series", - "Id", - "Containers", - "Hardware", - "Jobs", - "HasVote", - "WantsVote" + "Tag" ] }, - "MeterStatus": { + "EntityPassword": { "type": "object", "properties": { - "Color": { + "Password": { "type": "string" }, - "Message": { + "Tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Color", - "Message" + "Tag", + "Password" ] }, - "ModelConfigResults": { + "EntityPasswords": { "type": "object", "properties": { - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } + "Changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" } } }, "additionalProperties": false, "required": [ - "Config" + "Changes" ] }, - "ModelInfo": { + "Error": { "type": "object", "properties": { - "Cloud": { - "type": "string" - }, - "DefaultSeries": { - "type": "string" - }, - "Life": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "OwnerTag": { - "type": "string" - }, - "ProviderType": { - "type": "string" - }, - "ServerUUID": { + "Code": { "type": "string" }, - "Status": { - "$ref": "#/definitions/EntityStatus" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "UUID": { + "Message": { "type": "string" - }, - "Users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } } }, "additionalProperties": false, "required": [ - "Name", - "UUID", - "ServerUUID", - "ProviderType", - "DefaultSeries", - "Cloud", - "OwnerTag", - "Life", - "Status", - "Users" + "Message", + "Code" ] }, - "ModelSet": { + "ErrorInfo": { "type": "object", "properties": { - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "Config" + "Error" ] }, - "ModelUnset": { + "ErrorResults": { "type": "object", "properties": { - "Keys": { + "Results": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/ErrorResult" } } }, "additionalProperties": false, "required": [ - "Keys" + "Results" ] }, - "ModelUserInfo": { + "HostPort": { "type": "object", "properties": { - "access": { - "type": "string" - }, - "displayname": { - "type": "string" - }, - "lastconnection": { - "type": "string", - "format": "date-time" + "Address": { + "$ref": "#/definitions/Address" }, - "user": { - "type": "string" + "Port": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "user", - "displayname", - "lastconnection", - "access" + "Address", + "Port" ] }, - "ModelUserInfoResult": { + "LifeResult": { "type": "object", "properties": { - "error": { + "Error": { "$ref": "#/definitions/Error" }, - "result": { - "$ref": "#/definitions/ModelUserInfo" + "Life": { + "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Life", + "Error" + ] }, - "ModelUserInfoResults": { + "LifeResults": { "type": "object", "properties": { - "results": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/ModelUserInfoResult" + "$ref": "#/definitions/LifeResult" } } }, "additionalProperties": false, "required": [ - "results" + "Results" ] }, - "Number": { + "Macaroon": { "type": "object", "properties": { - "Build": { - "type": "integer" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "Major": { - "type": "integer" + "data": { + "type": "array", + "items": { + "type": "integer" + } }, - "Minor": { - "type": "integer" + "id": { + "$ref": "#/definitions/packet" }, - "Patch": { - "type": "integer" + "location": { + "$ref": "#/definitions/packet" }, - "Tag": { - "type": "string" + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "Placement": { + "NotifyWatchResult": { "type": "object", "properties": { - "Directive": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "Scope": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Scope", - "Directive" + "NotifyWatcherId", + "Error" ] }, - "PrivateAddress": { + "StringResult": { "type": "object", "properties": { - "Target": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { "type": "string" } }, "additionalProperties": false, "required": [ - "Target" + "Error", + "Result" ] }, - "PrivateAddressResults": { + "StringsResult": { "type": "object", "properties": { - "PrivateAddress": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "required": [ - "PrivateAddress" + "Error", + "Result" ] }, - "ProvisioningScriptParams": { + "StringsWatchResult": { "type": "object", "properties": { - "DataDir": { - "type": "string" - }, - "DisablePackageCommands": { - "type": "boolean" + "Changes": { + "type": "array", + "items": { + "type": "string" + } }, - "MachineId": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "Nonce": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "MachineId", - "Nonce", - "DataDir", - "DisablePackageCommands" - ] - }, - "ProvisioningScriptResult": { - "type": "object", - "properties": { - "Script": { + "StringsWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Script" + "StringsWatcherId", + "Changes", + "Error" ] }, - "PublicAddress": { + "StringsWatchResults": { "type": "object", "properties": { - "Target": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" + } } }, "additionalProperties": false, "required": [ - "Target" + "Results" ] }, - "PublicAddressResults": { + "caveat": { "type": "object", "properties": { - "PublicAddress": { - "type": "string" + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "PublicAddress" + "location", + "caveatId", + "verificationId" ] }, - "RelationStatus": { + "packet": { "type": "object", "properties": { - "Endpoints": { - "type": "array", - "items": { - "$ref": "#/definitions/EndpointStatus" - } - }, - "Id": { + "headerLen": { "type": "integer" }, - "Interface": { - "type": "string" - }, - "Key": { - "type": "string" + "start": { + "type": "integer" }, - "Scope": { - "type": "string" + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Id", - "Key", - "Interface", - "Scope", - "Endpoints" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "DiscoverSpaces", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddSubnets": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddSubnetsParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } }, - "ResolveCharmResult": { + "CreateSpaces": { "type": "object", "properties": { - "Error": { - "type": "string" + "Params": { + "$ref": "#/definitions/CreateSpacesParams" }, - "URL": { - "$ref": "#/definitions/URL" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false + } }, - "ResolveCharmResults": { + "ListSpaces": { "type": "object", "properties": { - "URLs": { + "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": { - "$ref": "#/definitions/ResolveCharmResult" + "type": "string" } } }, "additionalProperties": false, "required": [ - "URLs" + "SpaceTag" ] }, - "ResolveCharms": { + "AddSubnetsParams": { "type": "object", "properties": { - "References": { + "Subnets": { "type": "array", "items": { - "$ref": "#/definitions/URL" + "$ref": "#/definitions/AddSubnetParams" } } }, "additionalProperties": false, "required": [ - "References" + "Subnets" ] }, - "Resolved": { + "CreateSpaceParams": { "type": "object", "properties": { - "Retry": { + "ProviderId": { + "type": "string" + }, + "Public": { "type": "boolean" }, - "UnitName": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "UnitName", - "Retry" - ] - }, - "SetConstraints": { - "type": "object", - "properties": { - "ApplicationName": { + "SpaceTag": { "type": "string" }, - "Constraints": { - "$ref": "#/definitions/Value" + "SubnetTags": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "required": [ - "ApplicationName", - "Constraints" + "SubnetTags", + "SpaceTag", + "Public" ] }, - "SetModelAgentVersion": { + "CreateSpacesParams": { "type": "object", "properties": { - "Version": { - "$ref": "#/definitions/Number" + "Spaces": { + "type": "array", + "items": { + "$ref": "#/definitions/CreateSpaceParams" + } } }, "additionalProperties": false, "required": [ - "Version" + "Spaces" ] }, - "StatusHistoryFilter": { + "DiscoverSpacesResults": { "type": "object", "properties": { - "Date": { - "type": "string", - "format": "date-time" - }, - "Delta": { - "type": "integer" - }, - "Size": { - "type": "integer" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProviderSpace" + } } }, "additionalProperties": false, "required": [ - "Size", - "Date", - "Delta" + "Results" ] }, - "StatusHistoryRequest": { + "Error": { "type": "object", "properties": { - "Filter": { - "$ref": "#/definitions/StatusHistoryFilter" - }, - "HistoryKind": { + "Code": { "type": "string" }, - "Size": { - "type": "integer" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "Tag": { + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "HistoryKind", - "Size", - "Filter", - "Tag" + "Message", + "Code" ] }, - "StatusHistoryRequests": { + "ErrorInfo": { "type": "object", "properties": { - "Requests": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusHistoryRequest" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Requests" - ] + "additionalProperties": false }, - "StatusHistoryResult": { + "ErrorResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" - }, - "History": { - "$ref": "#/definitions/History" } }, "additionalProperties": false, "required": [ - "History" + "Error" ] }, - "StatusHistoryResults": { + "ErrorResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/StatusHistoryResult" + "$ref": "#/definitions/ErrorResult" } } }, @@ -5177,157 +5347,158 @@ "Results" ] }, - "StatusParams": { + "ListSubnetsResults": { "type": "object", "properties": { - "Patterns": { + "Results": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Subnet" } } }, "additionalProperties": false, "required": [ - "Patterns" + "Results" ] }, - "Tools": { + "Macaroon": { "type": "object", "properties": { - "sha256": { - "type": "string" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "size": { - "type": "integer" + "data": { + "type": "array", + "items": { + "type": "integer" + } }, - "url": { - "type": "string" + "id": { + "$ref": "#/definitions/packet" }, - "version": { - "$ref": "#/definitions/Binary" + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "version", - "url", - "size" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "URL": { + "ModelConfigResult": { "type": "object", "properties": { - "Channel": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "Revision": { - "type": "integer" - }, - "Schema": { - "type": "string" - }, - "Series": { - "type": "string" - }, - "User": { - "type": "string" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } } }, "additionalProperties": false, "required": [ - "Schema", - "User", - "Name", - "Revision", - "Series", - "Channel" + "Config" ] }, - "UnitStatus": { + "ProviderSpace": { "type": "object", "properties": { - "AgentStatus": { - "$ref": "#/definitions/DetailedStatus" + "Error": { + "$ref": "#/definitions/Error" }, - "Charm": { + "Name": { "type": "string" }, - "Machine": { + "ProviderId": { "type": "string" }, - "OpenedPorts": { + "Subnets": { "type": "array", "items": { - "type": "string" - } - }, - "PublicAddress": { - "type": "string" - }, - "Subordinates": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitStatus" - } + "$ref": "#/definitions/Subnet" } - }, - "WorkloadStatus": { - "$ref": "#/definitions/DetailedStatus" } }, "additionalProperties": false, "required": [ - "AgentStatus", - "WorkloadStatus", - "Machine", - "OpenedPorts", - "PublicAddress", - "Charm", - "Subordinates" + "Name", + "ProviderId", + "Subnets" ] }, - "Value": { + "Subnet": { "type": "object", "properties": { - "arch": { + "CIDR": { "type": "string" }, - "container": { + "Life": { "type": "string" }, - "cpu-cores": { - "type": "integer" - }, - "cpu-power": { - "type": "integer" - }, - "instance-type": { + "ProviderId": { "type": "string" }, - "mem": { - "type": "integer" + "SpaceTag": { + "type": "string" }, - "root-disk": { - "type": "integer" + "StaticRangeHighIP": { + "type": "array", + "items": { + "type": "integer" + } }, - "spaces": { + "StaticRangeLowIP": { "type": "array", "items": { - "type": "string" + "type": "integer" } }, - "tags": { + "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" }, - "virt-type": { + "Zone": { "type": "string" } }, @@ -5377,132 +5548,73 @@ } }, { - "Name": "Controller", - "Version": 3, + "Name": "DiskManager", + "Version": 2, "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": { + "SetMachineBlockDevices": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" + "$ref": "#/definitions/SetMachineBlockDevices" }, "Result": { - "$ref": "#/definitions/ModelStatusResults" - } - } - }, - "RemoveBlocks": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/RemoveBlocksArgs" - } - } - }, - "WatchAllModels": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/AllWatcherId" + "$ref": "#/definitions/ErrorResults" } } } }, "definitions": { - "AllWatcherId": { + "BlockDevice": { "type": "object", "properties": { - "AllWatcherId": { + "BusAddress": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "AllWatcherId" - ] - }, - "DestroyControllerArgs": { - "type": "object", - "properties": { - "destroy-models": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "destroy-models" - ] - }, - "Entities": { - "type": "object", - "properties": { - "Entities": { + }, + "DeviceLinks": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "type": "string" } - } - }, - "additionalProperties": false, - "required": [ - "Entities" - ] - }, - "Entity": { - "type": "object", - "properties": { - "Tag": { + }, + "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": [ - "Tag" + "DeviceName", + "DeviceLinks", + "Label", + "UUID", + "HardwareId", + "BusAddress", + "Size", + "FilesystemType", + "InUse", + "MountPoint" ] }, "Error": { @@ -5536,54 +5648,31 @@ }, "additionalProperties": false }, - "InitiateModelMigrationArgs": { - "type": "object", - "properties": { - "specs": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelMigrationSpec" - } - } - }, - "additionalProperties": false, - "required": [ - "specs" - ] - }, - "InitiateModelMigrationResult": { + "ErrorResult": { "type": "object", "properties": { - "error": { + "Error": { "$ref": "#/definitions/Error" - }, - "id": { - "type": "string" - }, - "model-tag": { - "type": "string" } }, "additionalProperties": false, "required": [ - "model-tag", - "error", - "id" + "Error" ] }, - "InitiateModelMigrationResults": { + "ErrorResults": { "type": "object", "properties": { - "results": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/InitiateModelMigrationResult" + "$ref": "#/definitions/ErrorResult" } } }, "additionalProperties": false, "required": [ - "results" + "Results" ] }, "Macaroon": { @@ -5623,215 +5712,37 @@ "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": { + "MachineBlockDevices": { "type": "object", "properties": { - "addrs": { + "blockdevices": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/BlockDevice" } }, - "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": { + "machine": { "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" + "machine" ] }, - "UserModelList": { + "SetMachineBlockDevices": { "type": "object", "properties": { - "UserModels": { + "machineblockdevices": { "type": "array", "items": { - "$ref": "#/definitions/UserModel" + "$ref": "#/definitions/MachineBlockDevices" } } }, "additionalProperties": false, "required": [ - "UserModels" + "machineblockdevices" ] }, "caveat": { @@ -5878,353 +5789,207 @@ } }, { - "Name": "Deployer", - "Version": 1, + "Name": "EntityWatcher", + "Version": 2, "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": { + "Next": { "type": "object", "properties": { "Result": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/EntitiesWatchResult" } } }, - "WatchUnits": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } + "Stop": { + "type": "object" } }, "definitions": { - "APIHostPortsResult": { + "EntitiesWatchResult": { "type": "object", "properties": { - "Servers": { + "Changes": { "type": "array", "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } + "type": "string" } + }, + "EntityWatcherId": { + "type": "string" + }, + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "Servers" + "EntityWatcherId", + "Changes", + "Error" ] }, - "Address": { + "Error": { "type": "object", "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { + "Code": { "type": "string" }, - "Type": { - "type": "string" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "Value": { + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope" - ] - }, - "BytesResult": { - "type": "object", - "properties": { - "Result": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "additionalProperties": false, - "required": [ - "Result" + "Message", + "Code" ] }, - "DeployerConnectionValues": { + "ErrorInfo": { "type": "object", "properties": { - "APIAddresses": { - "type": "array", - "items": { - "type": "string" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "StateAddresses": { - "type": "array", - "items": { - "type": "string" - } + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "StateAddresses", - "APIAddresses" - ] + "additionalProperties": false }, - "Entities": { + "Macaroon": { "type": "object", "properties": { - "Entities": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/caveat" } - } - }, - "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": { + "data": { "type": "array", "items": { - "$ref": "#/definitions/EntityPassword" + "type": "integer" } - } - }, - "additionalProperties": false, - "required": [ - "Changes" - ] - }, - "Error": { - "type": "object", - "properties": { - "Code": { - "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "id": { + "$ref": "#/definitions/packet" }, - "Message": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "ErrorInfo": { + "caveat": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "caveatId": { + "$ref": "#/definitions/packet" }, - "MacaroonPath": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Error" + "location", + "caveatId", + "verificationId" ] }, - "ErrorResults": { + "packet": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Results" + "start", + "totalLen", + "headerLen" ] - }, - "HostPort": { + } + } + } + }, + { + "Name": "FilesystemAttachmentsWatcher", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "Next": { "type": "object", "properties": { - "Address": { - "$ref": "#/definitions/Address" - }, - "Port": { - "type": "integer" + "Result": { + "$ref": "#/definitions/MachineStorageIdsWatchResult" } - }, - "additionalProperties": false, - "required": [ - "Address", - "Port" - ] + } }, - "LifeResult": { + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Code": { + "type": "string" }, - "Life": { + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "Life", - "Error" + "Message", + "Code" ] }, - "LifeResults": { + "ErrorInfo": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Results" - ] + "additionalProperties": false }, "Macaroon": { "type": "object", @@ -6263,288 +6028,275 @@ "sig" ] }, - "NotifyWatchResult": { + "MachineStorageId": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "attachmenttag": { + "type": "string" }, - "NotifyWatcherId": { + "machinetag": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "machinetag", + "attachmenttag" ] }, - "StringResult": { + "MachineStorageIdsWatchResult": { "type": "object", "properties": { + "Changes": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineStorageId" + } + }, "Error": { "$ref": "#/definitions/Error" }, - "Result": { + "MachineStorageIdsWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "MachineStorageIdsWatcherId", + "Changes", + "Error" ] }, - "StringsResult": { + "caveat": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "caveatId": { + "$ref": "#/definitions/packet" }, - "Result": { - "type": "array", - "items": { - "type": "string" - } + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "location", + "caveatId", + "verificationId" ] }, - "StringsWatchResult": { + "packet": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } + "headerLen": { + "type": "integer" }, - "Error": { - "$ref": "#/definitions/Error" + "start": { + "type": "integer" }, - "StringsWatcherId": { - "type": "string" + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "StringsWatcherId", - "Changes", - "Error" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "Firewaller", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "GetAssignedMachine": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringResults" + } + } }, - "StringsWatchResults": { + "GetExposed": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsWatchResult" - } + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/BoolResults" } - }, - "additionalProperties": false, - "required": [ - "Results" - ] + } }, - "caveat": { + "GetMachineActiveSubnets": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" + "Params": { + "$ref": "#/definitions/Entities" }, - "location": { - "$ref": "#/definitions/packet" + "Result": { + "$ref": "#/definitions/StringsResults" + } + } + }, + "GetMachinePorts": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MachinePortsParams" }, - "verificationId": { - "$ref": "#/definitions/packet" + "Result": { + "$ref": "#/definitions/MachinePortsResults" } - }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] + } }, - "packet": { + "InstanceId": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Params": { + "$ref": "#/definitions/Entities" }, - "totalLen": { - "type": "integer" + "Result": { + "$ref": "#/definitions/StringResults" } - }, - "additionalProperties": false, - "required": [ - "start", - "totalLen", - "headerLen" - ] - } - } - } - }, - { - "Name": "DiscoverSpaces", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddSubnets": { + } + }, + "Life": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/AddSubnetsParams" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/LifeResults" } } }, - "CreateSpaces": { + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "Watch": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/CreateSpacesParams" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/NotifyWatchResults" } } }, - "ListSpaces": { + "WatchForModelConfigChanges": { "type": "object", "properties": { "Result": { - "$ref": "#/definitions/DiscoverSpacesResults" + "$ref": "#/definitions/NotifyWatchResult" } } }, - "ListSubnets": { + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + }, + "WatchOpenedPorts": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/SubnetsFilters" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ListSubnetsResults" + "$ref": "#/definitions/StringsWatchResults" } } }, - "ModelConfig": { + "WatchUnits": { "type": "object", "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, "Result": { - "$ref": "#/definitions/ModelConfigResult" + "$ref": "#/definitions/StringsWatchResults" } } } }, "definitions": { - "AddSubnetParams": { + "BoolResult": { "type": "object", "properties": { - "SpaceTag": { - "type": "string" - }, - "SubnetProviderId": { - "type": "string" - }, - "SubnetTag": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "Zones": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "SpaceTag" - ] - }, - "AddSubnetsParams": { - "type": "object", - "properties": { - "Subnets": { - "type": "array", - "items": { - "$ref": "#/definitions/AddSubnetParams" - } + "Result": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "Subnets" + "Error", + "Result" ] }, - "CreateSpaceParams": { + "BoolResults": { "type": "object", "properties": { - "ProviderId": { - "type": "string" - }, - "Public": { - "type": "boolean" - }, - "SpaceTag": { - "type": "string" - }, - "SubnetTags": { + "Results": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/BoolResult" } } }, "additionalProperties": false, "required": [ - "SubnetTags", - "SpaceTag", - "Public" + "Results" ] }, - "CreateSpacesParams": { + "Entities": { "type": "object", "properties": { - "Spaces": { + "Entities": { "type": "array", "items": { - "$ref": "#/definitions/CreateSpaceParams" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "Spaces" + "Entities" ] }, - "DiscoverSpacesResults": { + "Entity": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ProviderSpace" - } + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Results" + "Tag" ] }, "Error": { @@ -6578,353 +6330,251 @@ }, "additionalProperties": false }, - "ErrorResult": { + "LifeResult": { "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 - } - } + "Life": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Config" + "Life", + "Error" ] }, - "ProviderSpace": { + "LifeResults": { "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Name": { - "type": "string" - }, - "ProviderId": { - "type": "string" - }, - "Subnets": { + "properties": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/Subnet" + "$ref": "#/definitions/LifeResult" } } }, "additionalProperties": false, "required": [ - "Name", - "ProviderId", - "Subnets" + "Results" ] }, - "Subnet": { + "Macaroon": { "type": "object", "properties": { - "CIDR": { - "type": "string" - }, - "Life": { - "type": "string" - }, - "ProviderId": { - "type": "string" - }, - "SpaceTag": { - "type": "string" - }, - "StaticRangeHighIP": { + "caveats": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/caveat" } }, - "StaticRangeLowIP": { + "data": { "type": "array", "items": { "type": "integer" } }, - "Status": { - "type": "string" + "id": { + "$ref": "#/definitions/packet" }, - "VLANTag": { - "type": "integer" + "location": { + "$ref": "#/definitions/packet" }, - "Zones": { + "sig": { "type": "array", "items": { - "type": "string" + "type": "integer" } } }, "additionalProperties": false, "required": [ - "CIDR", - "VLANTag", - "Life", - "SpaceTag", - "Zones" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "SubnetsFilters": { + "MachinePortRange": { "type": "object", "properties": { - "SpaceTag": { + "PortRange": { + "$ref": "#/definitions/PortRange" + }, + "RelationTag": { "type": "string" }, - "Zone": { + "UnitTag": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "UnitTag", + "RelationTag", + "PortRange" + ] }, - "caveat": { + "MachinePorts": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "MachineTag": { + "type": "string" }, - "verificationId": { - "$ref": "#/definitions/packet" + "SubnetTag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "MachineTag", + "SubnetTag" ] }, - "packet": { + "MachinePortsParams": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" - }, - "totalLen": { - "type": "integer" + "Params": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePorts" + } } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Params" ] - } - } - } - }, - { - "Name": "DiskManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "SetMachineBlockDevices": { + }, + "MachinePortsResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SetMachineBlockDevices" + "Error": { + "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "Ports": { + "type": "array", + "items": { + "$ref": "#/definitions/MachinePortRange" + } } - } - } - }, - "definitions": { - "BlockDevice": { + }, + "additionalProperties": false, + "required": [ + "Error", + "Ports" + ] + }, + "MachinePortsResults": { "type": "object", "properties": { - "BusAddress": { - "type": "string" - }, - "DeviceLinks": { + "Results": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/MachinePortsResult" } - }, - "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" + "Results" ] }, - "Error": { + "ModelConfigResult": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + } + }, + "additionalProperties": false, + "required": [ + "Config" + ] + }, + "NotifyWatchResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" }, - "Message": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "NotifyWatcherId", + "Error" ] }, - "ErrorInfo": { + "NotifyWatchResults": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "PortRange": { + "type": "object", + "properties": { + "FromPort": { + "type": "integer" }, - "MacaroonPath": { + "Protocol": { "type": "string" + }, + "ToPort": { + "type": "integer" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "FromPort", + "ToPort", + "Protocol" + ] }, - "ErrorResult": { + "StringResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" + }, + "Result": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Error" + "Error", + "Result" ] }, - "ErrorResults": { + "StringResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/StringResult" } } }, @@ -6933,74 +6583,76 @@ "Results" ] }, - "Macaroon": { + "StringsResult": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } + "Error": { + "$ref": "#/definitions/Error" }, - "data": { + "Result": { "type": "array", "items": { - "type": "integer" + "type": "string" } - }, - "id": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "sig": { + } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "StringsResults": { + "type": "object", + "properties": { + "Results": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/StringsResult" } } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Results" ] }, - "MachineBlockDevices": { + "StringsWatchResult": { "type": "object", "properties": { - "blockdevices": { + "Changes": { "type": "array", "items": { - "$ref": "#/definitions/BlockDevice" + "type": "string" } }, - "machine": { + "Error": { + "$ref": "#/definitions/Error" + }, + "StringsWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "machine" + "StringsWatcherId", + "Changes", + "Error" ] }, - "SetMachineBlockDevices": { + "StringsWatchResults": { "type": "object", "properties": { - "machineblockdevices": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/MachineBlockDevices" + "$ref": "#/definitions/StringsWatchResult" } } }, "additionalProperties": false, "required": [ - "machineblockdevices" + "Results" ] }, "caveat": { @@ -7047,177 +6699,187 @@ } }, { - "Name": "EntityWatcher", + "Name": "HighAvailability", "Version": 2, "Schema": { "type": "object", "properties": { - "Next": { + "EnableHA": { "type": "object", "properties": { + "Params": { + "$ref": "#/definitions/ControllersSpecs" + }, "Result": { - "$ref": "#/definitions/EntitiesWatchResult" + "$ref": "#/definitions/ControllersChangeResults" } } }, - "Stop": { - "type": "object" + "ResumeHAReplicationAfterUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ResumeReplicationParams" + } + } + }, + "StopHAReplicationForUpgrade": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/UpgradeMongoParams" + }, + "Result": { + "$ref": "#/definitions/MongoUpgradeResults" + } + } } }, "definitions": { - "EntitiesWatchResult": { + "Address": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } + "Scope": { + "type": "string" }, - "EntityWatcherId": { + "SpaceName": { "type": "string" }, - "Error": { - "$ref": "#/definitions/Error" + "SpaceProviderId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" } }, "additionalProperties": false, "required": [ - "EntityWatcherId", - "Changes", - "Error" + "Value", + "Type", + "Scope", + "SpaceName", + "SpaceProviderId" ] }, - "Error": { + "ControllersChangeResult": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Error": { + "$ref": "#/definitions/Error" }, - "Message": { - "type": "string" + "Result": { + "$ref": "#/definitions/ControllersChanges" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "Result", + "Error" ] }, - "ErrorInfo": { + "ControllersChangeResults": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersChangeResult" + } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Results" + ] }, - "Macaroon": { + "ControllersChanges": { "type": "object", "properties": { - "caveats": { + "added": { "type": "array", "items": { - "$ref": "#/definitions/caveat" + "type": "string" } }, - "data": { + "converted": { "type": "array", "items": { - "type": "integer" + "type": "string" } }, - "id": { - "$ref": "#/definitions/packet" + "demoted": { + "type": "array", + "items": { + "type": "string" + } }, - "location": { - "$ref": "#/definitions/packet" + "maintained": { + "type": "array", + "items": { + "type": "string" + } }, - "sig": { + "promoted": { "type": "array", "items": { - "type": "integer" + "type": "string" + } + }, + "removed": { + "type": "array", + "items": { + "type": "string" } } }, - "additionalProperties": false, - "required": [ - "data", - "location", - "id", - "caveats", - "sig" - ] + "additionalProperties": false }, - "caveat": { + "ControllersSpec": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" + "ModelTag": { + "type": "string" }, - "location": { - "$ref": "#/definitions/packet" + "constraints": { + "$ref": "#/definitions/Value" }, - "verificationId": { - "$ref": "#/definitions/packet" - } - }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] - }, - "packet": { - "type": "object", - "properties": { - "headerLen": { + "num-controllers": { "type": "integer" }, - "start": { - "type": "integer" + "placement": { + "type": "array", + "items": { + "type": "string" + } }, - "totalLen": { - "type": "integer" + "series": { + "type": "string" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" - ] - } - } - } - }, - { - "Name": "FilesystemAttachmentsWatcher", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "Next": { + "ModelTag", + "num-controllers" + ] + }, + "ControllersSpecs": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/MachineStorageIdsWatchResult" + "Specs": { + "type": "array", + "items": { + "$ref": "#/definitions/ControllersSpec" + } } - } + }, + "additionalProperties": false, + "required": [ + "Specs" + ] }, - "Stop": { - "type": "object" - } - }, - "definitions": { "Error": { "type": "object", "properties": { @@ -7249,6 +6911,26 @@ }, "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": { @@ -7286,553 +6968,488 @@ "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": { + "Member": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Address": { + "type": "string" }, - "Result": { + "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": [ - "Error", - "Result" + "Id", + "Address", + "Arbiter", + "BuildIndexes", + "Hidden", + "Priority", + "Tags", + "SlaveDelay", + "Votes" ] }, - "BoolResults": { + "MongoUpgradeResults": { "type": "object", "properties": { - "Results": { + "Master": { + "$ref": "#/definitions/HAMember" + }, + "Members": { "type": "array", "items": { - "$ref": "#/definitions/BoolResult" + "$ref": "#/definitions/HAMember" + } + }, + "RsMembers": { + "type": "array", + "items": { + "$ref": "#/definitions/Member" } } }, "additionalProperties": false, "required": [ - "Results" + "RsMembers", + "Master", + "Members" ] }, - "Entities": { + "ResumeReplicationParams": { "type": "object", "properties": { - "Entities": { + "Members": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/Member" } } }, "additionalProperties": false, "required": [ - "Entities" + "Members" ] }, - "Entity": { + "UpgradeMongoParams": { "type": "object", "properties": { - "Tag": { - "type": "string" + "Target": { + "$ref": "#/definitions/Version" } }, "additionalProperties": false, "required": [ - "Tag" + "Target" ] }, - "Error": { + "Value": { "type": "object", "properties": { - "Code": { + "arch": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "container": { + "type": "string" }, - "Message": { + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Message", - "Code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" }, - "MacaroonPath": { + "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 }, - "LifeResult": { + "Version": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Major": { + "type": "integer" }, - "Life": { + "Minor": { + "type": "integer" + }, + "Patch": { + "type": "string" + }, + "StorageEngine": { "type": "string" } }, "additionalProperties": false, "required": [ - "Life", - "Error" + "Major", + "Minor", + "Patch", + "StorageEngine" ] }, - "LifeResults": { + "caveat": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Results" + "location", + "caveatId", + "verificationId" ] }, - "Macaroon": { + "packet": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { - "$ref": "#/definitions/packet" + "headerLen": { + "type": "integer" }, - "location": { - "$ref": "#/definitions/packet" + "start": { + "type": "integer" }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "start", + "totalLen", + "headerLen" ] - }, - "MachinePortRange": { + } + } + } + }, + { + "Name": "HostKeyReporter", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ReportKeys": { "type": "object", "properties": { - "PortRange": { - "$ref": "#/definitions/PortRange" + "Params": { + "$ref": "#/definitions/SSHHostKeySet" }, - "RelationTag": { + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "Code": { "type": "string" }, - "UnitTag": { + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "UnitTag", - "RelationTag", - "PortRange" + "Message", + "Code" ] }, - "MachinePorts": { + "ErrorInfo": { "type": "object", "properties": { - "MachineTag": { - "type": "string" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "SubnetTag": { + "MacaroonPath": { "type": "string" } }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, "additionalProperties": false, "required": [ - "MachineTag", - "SubnetTag" + "Error" ] }, - "MachinePortsParams": { + "ErrorResults": { "type": "object", "properties": { - "Params": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/MachinePorts" + "$ref": "#/definitions/ErrorResult" } } }, "additionalProperties": false, "required": [ - "Params" + "Results" ] }, - "MachinePortsResult": { + "Macaroon": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "Ports": { + "data": { "type": "array", "items": { - "$ref": "#/definitions/MachinePortRange" + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" } } }, "additionalProperties": false, "required": [ - "Error", - "Ports" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "MachinePortsResults": { + "SSHHostKeySet": { "type": "object", "properties": { - "Results": { + "entity-keys": { "type": "array", "items": { - "$ref": "#/definitions/MachinePortsResult" + "$ref": "#/definitions/SSHHostKeys" } } }, "additionalProperties": false, "required": [ - "Results" + "entity-keys" ] }, - "ModelConfigResult": { + "SSHHostKeys": { "type": "object", "properties": { - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } + "public-keys": { + "type": "array", + "items": { + "type": "string" } + }, + "tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Config" + "tag", + "public-keys" ] }, - "NotifyWatchResult": { + "caveat": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "caveatId": { + "$ref": "#/definitions/packet" }, - "NotifyWatcherId": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "location", + "caveatId", + "verificationId" ] }, - "NotifyWatchResults": { + "packet": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/NotifyWatchResult" - } + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Results" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "ImageManager", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "DeleteImages": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ImageFilterParams" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } }, - "PortRange": { + "ListImages": { "type": "object", "properties": { - "FromPort": { - "type": "integer" + "Params": { + "$ref": "#/definitions/ImageFilterParams" }, - "Protocol": { + "Result": { + "$ref": "#/definitions/ListImageResult" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "Code": { "type": "string" }, - "ToPort": { - "type": "integer" + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" } }, "additionalProperties": false, "required": [ - "FromPort", - "ToPort", - "Protocol" + "Message", + "Code" ] }, - "StringResult": { + "ErrorInfo": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "Result": { + "MacaroonPath": { "type": "string" } }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, "additionalProperties": false, "required": [ - "Error", - "Result" + "Error" ] }, - "StringResults": { + "ErrorResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/StringResult" + "$ref": "#/definitions/ErrorResult" } } }, @@ -7841,76 +7458,120 @@ "Results" ] }, - "StringsResult": { + "ImageFilterParams": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Result": { + "images": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/ImageSpec" } } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "images" ] }, - "StringsResults": { + "ImageMetadata": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringsResult" - } + "arch": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "kind": { + "type": "string" + }, + "series": { + "type": "string" + }, + "url": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Results" + "kind", + "arch", + "series", + "url", + "created" ] }, - "StringsWatchResult": { + "ImageSpec": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } + "arch": { + "type": "string" }, - "Error": { - "$ref": "#/definitions/Error" + "kind": { + "type": "string" }, - "StringsWatcherId": { + "series": { "type": "string" } }, "additionalProperties": false, "required": [ - "StringsWatcherId", - "Changes", - "Error" + "kind", + "arch", + "series" + ] + }, + "ListImageResult": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/ImageMetadata" + } + } + }, + "additionalProperties": false, + "required": [ + "result" ] }, - "StringsWatchResults": { + "Macaroon": { "type": "object", "properties": { - "Results": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/StringsWatchResult" + "$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": [ - "Results" + "data", + "location", + "id", + "caveats", + "sig" ] }, "caveat": { @@ -7957,236 +7618,210 @@ } }, { - "Name": "HighAvailability", + "Name": "ImageMetadata", "Version": 2, "Schema": { "type": "object", "properties": { - "EnableHA": { + "Delete": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ControllersSpecs" + "$ref": "#/definitions/MetadataImageIds" }, "Result": { - "$ref": "#/definitions/ControllersChangeResults" + "$ref": "#/definitions/ErrorResults" } } }, - "ResumeHAReplicationAfterUpgrade": { + "List": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ResumeReplicationParams" + "$ref": "#/definitions/ImageMetadataFilter" + }, + "Result": { + "$ref": "#/definitions/ListCloudImageMetadataResult" } } }, - "StopHAReplicationForUpgrade": { + "Save": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/UpgradeMongoParams" + "$ref": "#/definitions/MetadataSaveParams" }, "Result": { - "$ref": "#/definitions/MongoUpgradeResults" + "$ref": "#/definitions/ErrorResults" } } + }, + "UpdateFromPublishedImages": { + "type": "object" } }, "definitions": { - "Address": { + "CloudImageMetadata": { "type": "object", "properties": { - "Scope": { + "arch": { "type": "string" }, - "SpaceName": { + "image_id": { "type": "string" }, - "SpaceProviderId": { + "priority": { + "type": "integer" + }, + "region": { "type": "string" }, - "Type": { + "root_storage_size": { + "type": "integer" + }, + "root_storage_type": { "type": "string" }, - "Value": { + "series": { + "type": "string" + }, + "source": { + "type": "string" + }, + "stream": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virt_type": { "type": "string" } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope", - "SpaceName", - "SpaceProviderId" + "image_id", + "region", + "version", + "series", + "arch", + "source", + "priority" ] }, - "ControllersChangeResult": { + "CloudImageMetadataList": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Result": { - "$ref": "#/definitions/ControllersChanges" + "metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } } }, - "additionalProperties": false, - "required": [ - "Result", - "Error" - ] + "additionalProperties": false }, - "ControllersChangeResults": { + "Error": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ControllersChangeResult" - } + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Results" + "Message", + "Code" ] }, - "ControllersChanges": { + "ErrorInfo": { "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" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "removed": { - "type": "array", - "items": { - "type": "string" - } + "MacaroonPath": { + "type": "string" } }, "additionalProperties": false }, - "ControllersSpec": { + "ErrorResult": { "type": "object", "properties": { - "ModelTag": { - "type": "string" - }, - "constraints": { - "$ref": "#/definitions/Value" - }, - "num-controllers": { - "type": "integer" - }, - "placement": { - "type": "array", - "items": { - "type": "string" - } - }, - "series": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "ModelTag", - "num-controllers" + "Error" ] }, - "ControllersSpecs": { + "ErrorResults": { "type": "object", "properties": { - "Specs": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/ControllersSpec" + "$ref": "#/definitions/ErrorResult" } } }, "additionalProperties": false, "required": [ - "Specs" + "Results" ] }, - "Error": { + "ImageMetadataFilter": { "type": "object", "properties": { - "Code": { + "arches": { + "type": "array", + "items": { + "type": "string" + } + }, + "region": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "root-storage-type": { + "type": "string" }, - "Message": { + "series": { + "type": "array", + "items": { + "type": "string" + } + }, + "stream": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Message", - "Code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" }, - "MacaroonPath": { + "virt_type": { "type": "string" } }, "additionalProperties": false }, - "HAMember": { + "ListCloudImageMetadataResult": { "type": "object", "properties": { - "PublicAddress": { - "$ref": "#/definitions/Address" - }, - "Series": { - "type": "string" - }, - "Tag": { - "type": "string" + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } } }, "additionalProperties": false, "required": [ - "Tag", - "PublicAddress", - "Series" + "result" ] }, "Macaroon": { @@ -8226,236 +7861,307 @@ "sig" ] }, - "Member": { + "MetadataImageIds": { "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" - } + "image_ids": { + "type": "array", + "items": { + "type": "string" } - }, - "Votes": { - "type": "integer" } }, "additionalProperties": false, "required": [ - "Id", - "Address", - "Arbiter", - "BuildIndexes", - "Hidden", - "Priority", - "Tags", - "SlaveDelay", - "Votes" + "image_ids" ] }, - "MongoUpgradeResults": { + "MetadataSaveParams": { "type": "object", "properties": { - "Master": { - "$ref": "#/definitions/HAMember" - }, - "Members": { - "type": "array", - "items": { - "$ref": "#/definitions/HAMember" - } - }, - "RsMembers": { + "metadata": { "type": "array", "items": { - "$ref": "#/definitions/Member" + "$ref": "#/definitions/CloudImageMetadataList" } } }, - "additionalProperties": false, - "required": [ - "RsMembers", - "Master", - "Members" - ] + "additionalProperties": false }, - "ResumeReplicationParams": { + "caveat": { "type": "object", "properties": { - "Members": { - "type": "array", - "items": { - "$ref": "#/definitions/Member" - } + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Members" + "location", + "caveatId", + "verificationId" ] }, - "UpgradeMongoParams": { + "packet": { "type": "object", "properties": { - "Target": { - "$ref": "#/definitions/Version" + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Target" + "start", + "totalLen", + "headerLen" ] - }, - "Value": { + } + } + } + }, + { + "Name": "InstancePoller", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AreManuallyProvisioned": { "type": "object", "properties": { - "arch": { - "type": "string" - }, - "container": { - "type": "string" + "Params": { + "$ref": "#/definitions/Entities" }, - "cpu-cores": { - "type": "integer" + "Result": { + "$ref": "#/definitions/BoolResults" + } + } + }, + "InstanceId": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "cpu-power": { - "type": "integer" + "Result": { + "$ref": "#/definitions/StringResults" + } + } + }, + "InstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "instance-type": { - "type": "string" + "Result": { + "$ref": "#/definitions/StatusResults" + } + } + }, + "Life": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "mem": { - "type": "integer" + "Result": { + "$ref": "#/definitions/LifeResults" + } + } + }, + "ModelConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ModelConfigResult" + } + } + }, + "ProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "root-disk": { - "type": "integer" + "Result": { + "$ref": "#/definitions/MachineAddressesResults" + } + } + }, + "SetInstanceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" }, - "spaces": { - "type": "array", - "items": { - "type": "string" - } + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetProviderAddresses": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Status": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "virt-type": { - "type": "string" + "Result": { + "$ref": "#/definitions/StatusResults" } - }, - "additionalProperties": false + } }, - "Version": { + "WatchForModelConfigChanges": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "WatchModelMachines": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/StringsWatchResult" + } + } + } + }, + "definitions": { + "Address": { "type": "object", "properties": { - "Major": { - "type": "integer" + "Scope": { + "type": "string" }, - "Minor": { - "type": "integer" + "SpaceName": { + "type": "string" }, - "Patch": { + "Type": { "type": "string" }, - "StorageEngine": { + "Value": { "type": "string" } }, "additionalProperties": false, "required": [ - "Major", - "Minor", - "Patch", - "StorageEngine" + "Value", + "Type", + "Scope" ] }, - "caveat": { + "BoolResult": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Error": { + "$ref": "#/definitions/Error" }, - "verificationId": { - "$ref": "#/definitions/packet" + "Result": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "Error", + "Result" ] }, - "packet": { + "BoolResults": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" - }, - "totalLen": { - "type": "integer" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/BoolResult" + } } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Results" ] - } - } - } - }, - { - "Name": "HostKeyReporter", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "ReportKeys": { + }, + "Entities": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SSHHostKeySet" + "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 + } + } }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "Info": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tag": { + "type": "string" } - } - } - }, - "definitions": { + }, + "additionalProperties": false, + "required": [ + "Tag", + "Status", + "Info", + "Data" + ] + }, "Error": { "type": "object", "properties": { @@ -8514,6 +8220,37 @@ "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": { @@ -8551,285 +8288,233 @@ "sig" ] }, - "SSHHostKeySet": { - "type": "object", - "properties": { - "entity-keys": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHHostKeys" - } - } - }, - "additionalProperties": false, - "required": [ - "entity-keys" - ] - }, - "SSHHostKeys": { + "MachineAddresses": { "type": "object", "properties": { - "public-keys": { + "Addresses": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Address" } }, - "tag": { + "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" + "Tag", + "Addresses" ] - } - } - } - }, - { - "Name": "ImageManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "DeleteImages": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } }, - "ListImages": { + "MachineAddressesResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ImageFilterParams" + "Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } }, - "Result": { - "$ref": "#/definitions/ListImageResult" + "Error": { + "$ref": "#/definitions/Error" } - } - } - }, - "definitions": { - "Error": { + }, + "additionalProperties": false, + "required": [ + "Error", + "Addresses" + ] + }, + "MachineAddressesResults": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" - }, - "Message": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineAddressesResult" + } } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "Results" ] }, - "ErrorInfo": { + "ModelConfigResult": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { - "type": "string" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Config" + ] }, - "ErrorResult": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" + }, + "NotifyWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ + "NotifyWatcherId", "Error" ] }, - "ErrorResults": { + "SetMachinesAddresses": { "type": "object", "properties": { - "Results": { + "MachineAddresses": { "type": "array", "items": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/MachineAddresses" } } }, "additionalProperties": false, "required": [ - "Results" + "MachineAddresses" ] }, - "ImageFilterParams": { + "SetStatus": { "type": "object", "properties": { - "images": { + "Entities": { "type": "array", "items": { - "$ref": "#/definitions/ImageSpec" + "$ref": "#/definitions/EntityStatusArgs" } } }, "additionalProperties": false, "required": [ - "images" + "Entities" ] }, - "ImageMetadata": { + "StatusResult": { "type": "object", "properties": { - "arch": { - "type": "string" + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } }, - "created": { - "type": "string", - "format": "date-time" + "Error": { + "$ref": "#/definitions/Error" }, - "kind": { + "Id": { "type": "string" }, - "series": { + "Info": { "type": "string" }, - "url": { + "Life": { + "type": "string" + }, + "Since": { + "type": "string", + "format": "date-time" + }, + "Status": { "type": "string" } }, "additionalProperties": false, "required": [ - "kind", - "arch", - "series", - "url", - "created" + "Error", + "Id", + "Life", + "Status", + "Info", + "Data", + "Since" ] }, - "ImageSpec": { + "StatusResults": { "type": "object", "properties": { - "arch": { - "type": "string" - }, - "kind": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "StringResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" }, - "series": { + "Result": { "type": "string" } }, "additionalProperties": false, "required": [ - "kind", - "arch", - "series" + "Error", + "Result" ] }, - "ListImageResult": { + "StringResults": { "type": "object", "properties": { - "result": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/ImageMetadata" + "$ref": "#/definitions/StringResult" } } }, "additionalProperties": false, "required": [ - "result" + "Results" ] }, - "Macaroon": { + "StringsWatchResult": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { + "Changes": { "type": "array", "items": { - "type": "integer" + "type": "string" } }, - "id": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Error": { + "$ref": "#/definitions/Error" }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "StringsWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "StringsWatcherId", + "Changes", + "Error" ] }, "caveat": { @@ -8876,108 +8561,83 @@ } }, { - "Name": "ImageMetadata", - "Version": 2, + "Name": "KeyManager", + "Version": 1, "Schema": { "type": "object", "properties": { - "Delete": { + "AddKeys": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/MetadataImageIds" + "$ref": "#/definitions/ModifyUserSSHKeys" }, "Result": { "$ref": "#/definitions/ErrorResults" } } }, - "List": { + "DeleteKeys": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ImageMetadataFilter" + "$ref": "#/definitions/ModifyUserSSHKeys" }, "Result": { - "$ref": "#/definitions/ListCloudImageMetadataResult" + "$ref": "#/definitions/ErrorResults" } } }, - "Save": { + "ImportKeys": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/MetadataSaveParams" + "$ref": "#/definitions/ModifyUserSSHKeys" }, "Result": { "$ref": "#/definitions/ErrorResults" } } }, - "UpdateFromPublishedImages": { - "type": "object" + "ListKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ListSSHKeys" + }, + "Result": { + "$ref": "#/definitions/StringsResults" + } + } } }, "definitions": { - "CloudImageMetadata": { + "Entities": { "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" + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } } }, "additionalProperties": false, "required": [ - "image_id", - "region", - "version", - "series", - "arch", - "source", - "priority" + "Entities" ] }, - "CloudImageMetadataList": { + "Entity": { "type": "object", "properties": { - "metadata": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } + "Tag": { + "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Tag" + ] }, "Error": { "type": "object", @@ -9037,49 +8697,20 @@ "Results" ] }, - "ImageMetadataFilter": { + "ListSSHKeys": { "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" + "Entities": { + "$ref": "#/definitions/Entities" }, - "virt_type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "ListCloudImageMetadataResult": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/CloudImageMetadata" - } + "Mode": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "result" + "Entities", + "Mode" ] }, "Macaroon": { @@ -9119,32 +8750,58 @@ "sig" ] }, - "MetadataImageIds": { + "ModifyUserSSHKeys": { "type": "object", "properties": { - "image_ids": { + "Keys": { "type": "array", "items": { "type": "string" } + }, + "User": { + "type": "string" } }, "additionalProperties": false, "required": [ - "image_ids" + "User", + "Keys" ] }, - "MetadataSaveParams": { + "StringsResult": { "type": "object", "properties": { - "metadata": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { "type": "array", "items": { - "$ref": "#/definitions/CloudImageMetadataList" + "type": "string" } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] + }, + "StringsResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, "caveat": { "type": "object", @@ -9173,196 +8830,52 @@ "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" + "type": "integer" }, - "Value": { - "type": "string" + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope" + "start", + "totalLen", + "headerLen" ] - }, - "BoolResult": { + } + } + } + }, + { + "Name": "KeyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "AuthorisedKeys": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Params": { + "$ref": "#/definitions/Entities" }, "Result": { - "type": "boolean" + "$ref": "#/definitions/StringsResults" } - }, - "additionalProperties": false, - "required": [ - "Error", - "Result" - ] + } }, - "BoolResults": { + "WatchAuthorisedKeys": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/BoolResult" - } + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, + } + } + }, + "definitions": { "Entities": { "type": "object", "properties": { @@ -9390,36 +8903,6 @@ "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": { @@ -9451,64 +8934,6 @@ }, "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": { @@ -9546,51 +8971,63 @@ "sig" ] }, - "MachineAddresses": { + "NotifyWatchResult": { "type": "object", "properties": { - "Addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } + "Error": { + "$ref": "#/definitions/Error" }, - "Tag": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Tag", - "Addresses" + "NotifyWatcherId", + "Error" ] }, - "MachineAddressesResult": { + "NotifyWatchResults": { "type": "object", "properties": { - "Addresses": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/Address" + "$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", - "Addresses" + "Result" ] }, - "MachineAddressesResults": { + "StringsResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/MachineAddressesResult" + "$ref": "#/definitions/StringsResult" } } }, @@ -9599,180 +9036,219 @@ "Results" ] }, - "ModelConfigResult": { + "caveat": { "type": "object", "properties": { - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Config" + "location", + "caveatId", + "verificationId" ] }, - "NotifyWatchResult": { + "packet": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "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/ServiceTag" + }, + "Result": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "ClaimLeadership": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ClaimLeadershipBulkParams" }, - "NotifyWatcherId": { - "type": "string" + "Result": { + "$ref": "#/definitions/ClaimLeadershipBulkResults" } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId", - "Error" - ] - }, - "SetMachinesAddresses": { + } + } + }, + "definitions": { + "ClaimLeadershipBulkParams": { "type": "object", "properties": { - "MachineAddresses": { + "Params": { "type": "array", "items": { - "$ref": "#/definitions/MachineAddresses" + "$ref": "#/definitions/ClaimLeadershipParams" } } }, "additionalProperties": false, "required": [ - "MachineAddresses" + "Params" ] }, - "SetStatus": { + "ClaimLeadershipBulkResults": { "type": "object", "properties": { - "Entities": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/EntityStatusArgs" + "$ref": "#/definitions/ErrorResult" } } }, "additionalProperties": false, "required": [ - "Entities" + "Results" ] }, - "StatusResult": { + "ClaimLeadershipParams": { "type": "object", "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "Error": { - "$ref": "#/definitions/Error" + "DurationSeconds": { + "type": "number" }, - "Id": { + "ServiceTag": { "type": "string" }, - "Info": { + "UnitTag": { "type": "string" - }, - "Life": { + } + }, + "additionalProperties": false, + "required": [ + "ServiceTag", + "UnitTag", + "DurationSeconds" + ] + }, + "Error": { + "type": "object", + "properties": { + "Code": { "type": "string" }, - "Since": { - "type": "string", - "format": "date-time" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "Status": { + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Id", - "Life", - "Status", - "Info", - "Data", - "Since" + "Message", + "Code" ] }, - "StatusResults": { + "ErrorInfo": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/StatusResult" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Results" - ] + "additionalProperties": false }, - "StringResult": { + "ErrorResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" - }, - "Result": { - "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "Error" ] }, - "StringResults": { + "Macaroon": { "type": "object", "properties": { - "Results": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/StringResult" + "$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": [ - "Results" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "StringsWatchResult": { + "ServiceTag": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } - }, - "Error": { - "$ref": "#/definitions/Error" - }, - "StringsWatcherId": { + "Name": { "type": "string" } }, "additionalProperties": false, "required": [ - "StringsWatcherId", - "Changes", - "Error" + "Name" ] }, "caveat": { @@ -9819,52 +9295,30 @@ } }, { - "Name": "KeyManager", + "Name": "LifeFlag", "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": { + "Life": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ModifyUserSSHKeys" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/LifeResults" } } }, - "ListKeys": { + "Watch": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ListSSHKeys" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/StringsResults" + "$ref": "#/definitions/NotifyWatchResults" } } } @@ -9928,25 +9382,29 @@ }, "additionalProperties": false }, - "ErrorResult": { + "LifeResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" } }, "additionalProperties": false, "required": [ + "Life", "Error" ] }, - "ErrorResults": { + "LifeResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/LifeResult" } } }, @@ -9955,22 +9413,6 @@ "Results" ] }, - "ListSSHKeys": { - "type": "object", - "properties": { - "Entities": { - "$ref": "#/definitions/Entities" - }, - "Mode": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "Entities", - "Mode" - ] - }, "Macaroon": { "type": "object", "properties": { @@ -10008,51 +9450,29 @@ "sig" ] }, - "ModifyUserSSHKeys": { - "type": "object", - "properties": { - "Keys": { - "type": "array", - "items": { - "type": "string" - } - }, - "User": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "User", - "Keys" - ] - }, - "StringsResult": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "Result": { - "type": "array", - "items": { - "type": "string" - } + "NotifyWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "NotifyWatcherId", + "Error" ] }, - "StringsResults": { + "NotifyWatchResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/StringsResult" + "$ref": "#/definitions/NotifyWatchResult" } } }, @@ -10105,23 +9525,23 @@ } }, { - "Name": "KeyUpdater", + "Name": "Logger", "Version": 1, "Schema": { "type": "object", "properties": { - "AuthorisedKeys": { + "LoggingConfig": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/StringsResults" + "$ref": "#/definitions/StringResults" } } }, - "WatchAuthorisedKeys": { + "WatchLoggingConfig": { "type": "object", "properties": { "Params": { @@ -10260,17 +9680,14 @@ "Results" ] }, - "StringsResult": { + "StringResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, "Result": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, "additionalProperties": false, @@ -10279,13 +9696,13 @@ "Result" ] }, - "StringsResults": { + "StringResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/StringsResult" + "$ref": "#/definitions/StringResult" } } }, @@ -10338,250 +9755,218 @@ } }, { - "Name": "LeadershipService", - "Version": 2, + "Name": "MachineActions", + "Version": 1, "Schema": { "type": "object", "properties": { - "BlockUntilLeadershipReleased": { + "Actions": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ApplicationTag" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/ActionResults" } } }, - "ClaimLeadership": { + "BeginActions": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ClaimLeadershipBulkParams" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ClaimLeadershipBulkResults" + "$ref": "#/definitions/ErrorResults" } } - } - }, - "definitions": { - "ApplicationTag": { + }, + "FinishActions": { "type": "object", "properties": { - "Name": { - "type": "string" + "Params": { + "$ref": "#/definitions/ActionExecutionResults" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "Name" - ] + } }, - "ClaimLeadershipBulkParams": { + "RunningActions": { "type": "object", "properties": { "Params": { - "type": "array", - "items": { - "$ref": "#/definitions/ClaimLeadershipParams" - } + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ActionsByReceivers" } - }, - "additionalProperties": false, - "required": [ - "Params" - ] + } }, - "ClaimLeadershipBulkResults": { + "WatchActionNotifications": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "ClaimLeadershipParams": { + } + } + }, + "definitions": { + "Action": { "type": "object", "properties": { - "ApplicationTag": { + "name": { "type": "string" }, - "DurationSeconds": { - "type": "number" + "parameters": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } }, - "UnitTag": { + "receiver": { + "type": "string" + }, + "tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "ApplicationTag", - "UnitTag", - "DurationSeconds" + "tag", + "receiver", + "name" ] }, - "Error": { + "ActionExecutionResult": { "type": "object", "properties": { - "Code": { + "actiontag": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "message": { + "type": "string" }, - "Message": { + "results": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "status": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "actiontag", + "status" ] }, - "ErrorInfo": { + "ActionExecutionResults": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { - "type": "string" + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionExecutionResult" + } } }, "additionalProperties": false }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "Error" - ] - }, - "Macaroon": { + "ActionResult": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } + "action": { + "$ref": "#/definitions/Action" }, - "data": { - "type": "array", - "items": { - "type": "integer" - } + "completed": { + "type": "string", + "format": "date-time" }, - "id": { - "$ref": "#/definitions/packet" + "enqueued": { + "type": "string", + "format": "date-time" }, - "location": { - "$ref": "#/definitions/packet" + "error": { + "$ref": "#/definitions/Error" }, - "sig": { - "type": "array", - "items": { - "type": "integer" + "message": { + "type": "string" + }, + "output": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } } - } - }, - "additionalProperties": false, - "required": [ - "data", - "location", - "id", - "caveats", - "sig" - ] - }, - "caveat": { - "type": "object", - "properties": { - "caveatId": { - "$ref": "#/definitions/packet" }, - "location": { - "$ref": "#/definitions/packet" + "started": { + "type": "string", + "format": "date-time" }, - "verificationId": { - "$ref": "#/definitions/packet" + "status": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] + "additionalProperties": false }, - "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": { + "ActionResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/LifeResults" + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } } - } + }, + "additionalProperties": false }, - "Watch": { + "ActionsByReceiver": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionResult" + } }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" + "error": { + "$ref": "#/definitions/Error" + }, + "receiver": { + "type": "string" } - } - } - }, - "definitions": { + }, + "additionalProperties": false + }, + "ActionsByReceivers": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionsByReceiver" + } + } + }, + "additionalProperties": false + }, "Entities": { "type": "object", "properties": { @@ -10640,29 +10025,25 @@ }, "additionalProperties": false }, - "LifeResult": { + "ErrorResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" - }, - "Life": { - "type": "string" } }, "additionalProperties": false, "required": [ - "Life", "Error" ] }, - "LifeResults": { + "ErrorResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/LifeResult" + "$ref": "#/definitions/ErrorResult" } } }, @@ -10708,29 +10089,36 @@ "sig" ] }, - "NotifyWatchResult": { + "StringsWatchResult": { "type": "object", "properties": { + "Changes": { + "type": "array", + "items": { + "type": "string" + } + }, "Error": { "$ref": "#/definitions/Error" }, - "NotifyWatcherId": { + "StringsWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", + "StringsWatcherId", + "Changes", "Error" ] }, - "NotifyWatchResults": { + "StringsWatchResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/StringsWatchResult" } } }, @@ -10783,60 +10171,172 @@ } }, { - "Name": "Logger", - "Version": 1, + "Name": "MachineManager", + "Version": 2, "Schema": { "type": "object", "properties": { - "LoggingConfig": { + "AddMachines": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" + "$ref": "#/definitions/AddMachines" }, "Result": { - "$ref": "#/definitions/StringResults" + "$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" + ] }, - "WatchLoggingConfig": { + "AddMachines": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "MachineParams": { + "type": "array", + "items": { + "$ref": "#/definitions/AddMachineParams" + } + } + }, + "additionalProperties": false, + "required": [ + "MachineParams" + ] + }, + "AddMachinesResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" + "Machine": { + "type": "string" } - } - } - }, - "definitions": { - "Entities": { + }, + "additionalProperties": false, + "required": [ + "Machine", + "Error" + ] + }, + "AddMachinesResults": { "type": "object", "properties": { - "Entities": { + "Machines": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/AddMachinesResult" } } }, "additionalProperties": false, "required": [ - "Entities" + "Machines" ] }, - "Entity": { + "Address": { "type": "object", "properties": { - "Tag": { + "Scope": { + "type": "string" + }, + "SpaceName": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { "type": "string" } }, "additionalProperties": false, "required": [ - "Tag" + "Value", + "Type", + "Scope" + ] + }, + "Constraints": { + "type": "object", + "properties": { + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "Pool", + "Size", + "Count" ] }, "Error": { @@ -10864,8 +10364,38 @@ "Macaroon": { "$ref": "#/definitions/Macaroon" }, - "MacaroonPath": { - "type": "string" + "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 @@ -10907,67 +10437,63 @@ "sig" ] }, - "NotifyWatchResult": { + "Placement": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Directive": { + "type": "string" }, - "NotifyWatcherId": { + "Scope": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "Scope", + "Directive" ] }, - "NotifyWatchResults": { + "Value": { "type": "object", "properties": { - "Results": { + "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": { - "$ref": "#/definitions/NotifyWatchResult" + "type": "string" } - } - }, - "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": { + "tags": { "type": "array", "items": { - "$ref": "#/definitions/StringResult" + "type": "string" } + }, + "virt-type": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Results" - ] + "additionalProperties": false }, "caveat": { "type": "object", @@ -11013,217 +10539,204 @@ } }, { - "Name": "MachineActions", + "Name": "Machiner", "Version": 1, "Schema": { "type": "object", "properties": { - "Actions": { + "APIAddresses": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ActionResults" + "$ref": "#/definitions/StringsResult" } } }, - "BeginActions": { + "APIHostPorts": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/APIHostPortsResult" } } }, - "FinishActions": { + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "EnsureDead": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ActionExecutionResults" + "$ref": "#/definitions/Entities" }, "Result": { "$ref": "#/definitions/ErrorResults" } } }, - "RunningActions": { + "Jobs": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ActionsByReceivers" + "$ref": "#/definitions/JobsResults" } } }, - "WatchActionNotifications": { + "Life": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/StringsWatchResults" + "$ref": "#/definitions/LifeResults" } } - } - }, - "definitions": { - "Action": { + }, + "ModelUUID": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "parameters": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "receiver": { - "type": "string" - }, - "tag": { - "type": "string" + "Result": { + "$ref": "#/definitions/StringResult" } - }, - "additionalProperties": false, - "required": [ - "tag", - "receiver", - "name" - ] + } }, - "ActionExecutionResult": { + "SetMachineAddresses": { "type": "object", "properties": { - "actiontag": { - "type": "string" - }, - "message": { - "type": "string" - }, - "results": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "Params": { + "$ref": "#/definitions/SetMachinesAddresses" }, - "status": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "actiontag", - "status" - ] + } }, - "ActionExecutionResults": { + "SetObservedNetworkConfig": { "type": "object", "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionExecutionResult" - } + "Params": { + "$ref": "#/definitions/SetMachineNetworkConfig" } - }, - "additionalProperties": false + } }, - "ActionResult": { + "SetProviderNetworkConfig": { "type": "object", "properties": { - "action": { - "$ref": "#/definitions/Action" - }, - "completed": { - "type": "string", - "format": "date-time" - }, - "enqueued": { - "type": "string", - "format": "date-time" - }, - "error": { - "$ref": "#/definitions/Error" + "Params": { + "$ref": "#/definitions/Entities" }, - "message": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SetStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" }, - "output": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "UpdateStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" }, - "started": { - "type": "string", - "format": "date-time" + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Watch": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "status": { - "type": "string" + "Result": { + "$ref": "#/definitions/NotifyWatchResults" } - }, - "additionalProperties": false + } }, - "ActionResults": { + "WatchAPIHostPorts": { "type": "object", "properties": { - "results": { + "Result": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + } + }, + "definitions": { + "APIHostPortsResult": { + "type": "object", + "properties": { + "Servers": { "type": "array", "items": { - "$ref": "#/definitions/ActionResult" + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Servers" + ] }, - "ActionsByReceiver": { + "Address": { "type": "object", "properties": { - "actions": { - "type": "array", - "items": { - "$ref": "#/definitions/ActionResult" - } + "Scope": { + "type": "string" }, - "error": { - "$ref": "#/definitions/Error" + "SpaceName": { + "type": "string" }, - "receiver": { + "Type": { + "type": "string" + }, + "Value": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Value", + "Type", + "Scope" + ] }, - "ActionsByReceivers": { + "BytesResult": { "type": "object", "properties": { - "actions": { + "Result": { "type": "array", "items": { - "$ref": "#/definitions/ActionsByReceiver" + "type": "integer" } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Result" + ] }, "Entities": { "type": "object", @@ -11252,6 +10765,36 @@ "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": { @@ -11310,448 +10853,345 @@ "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": { + "HostPort": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Address": { + "$ref": "#/definitions/Address" }, - "totalLen": { + "Port": { "type": "integer" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Address", + "Port" ] - } - } - } - }, - { - "Name": "MachineManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "AddMachines": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/AddMachines" - }, - "Result": { - "$ref": "#/definitions/AddMachinesResults" - } - } - } - }, - "definitions": { - "AddMachineParams": { + }, + "JobsResult": { "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" + "properties": { + "Error": { + "$ref": "#/definitions/Error" }, "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" + "Error" ] }, - "AddMachines": { + "JobsResults": { "type": "object", "properties": { - "MachineParams": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/AddMachineParams" + "$ref": "#/definitions/JobsResult" } } }, "additionalProperties": false, "required": [ - "MachineParams" + "Results" ] }, - "AddMachinesResult": { + "LifeResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "Machine": { + "Life": { "type": "string" } }, "additionalProperties": false, "required": [ - "Machine", + "Life", "Error" ] }, - "AddMachinesResults": { + "LifeResults": { "type": "object", "properties": { - "Machines": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/AddMachinesResult" + "$ref": "#/definitions/LifeResult" } } }, "additionalProperties": false, "required": [ - "Machines" + "Results" ] }, - "Address": { + "Macaroon": { "type": "object", "properties": { - "Scope": { - "type": "string" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "SpaceName": { - "type": "string" + "data": { + "type": "array", + "items": { + "type": "integer" + } }, - "Type": { - "type": "string" + "id": { + "$ref": "#/definitions/packet" }, - "Value": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "Constraints": { + "MachineAddresses": { "type": "object", "properties": { - "Count": { - "type": "integer" + "Addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/Address" + } }, - "Pool": { + "Tag": { "type": "string" - }, - "Size": { - "type": "integer" } }, "additionalProperties": false, "required": [ - "Pool", - "Size", - "Count" + "Tag", + "Addresses" ] }, - "Error": { + "NetworkConfig": { "type": "object", "properties": { - "Code": { + "Address": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "CIDR": { + "type": "string" }, - "Message": { + "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": [ - "Message", - "Code" + "DeviceIndex", + "MACAddress", + "CIDR", + "MTU", + "ProviderId", + "ProviderSubnetId", + "ProviderSpaceId", + "ProviderAddressId", + "ProviderVLANId", + "VLANTag", + "InterfaceName", + "ParentInterfaceName", + "InterfaceType", + "Disabled" ] }, - "ErrorInfo": { + "NotifyWatchResult": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Error": { + "$ref": "#/definitions/Error" }, - "MacaroonPath": { + "NotifyWatcherId": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] }, - "HardwareCharacteristics": { + "NotifyWatchResults": { "type": "object", "properties": { - "Arch": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, + "SetMachineNetworkConfig": { + "type": "object", + "properties": { + "Config": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } }, - "AvailabilityZone": { + "Tag": { "type": "string" - }, - "CpuCores": { - "type": "integer" - }, - "CpuPower": { - "type": "integer" - }, - "Mem": { - "type": "integer" - }, - "RootDisk": { - "type": "integer" - }, - "Tags": { + } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Config" + ] + }, + "SetMachinesAddresses": { + "type": "object", + "properties": { + "MachineAddresses": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/MachineAddresses" } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "MachineAddresses" + ] }, - "Macaroon": { + "SetStatus": { "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": { + "Entities": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/EntityStatusArgs" } } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Entities" ] }, - "Placement": { + "StringResult": { "type": "object", "properties": { - "Directive": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "Scope": { + "Result": { "type": "string" } }, "additionalProperties": false, "required": [ - "Scope", - "Directive" + "Error", + "Result" ] }, - "Value": { + "StringsResult": { "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" - } + "Error": { + "$ref": "#/definitions/Error" }, - "tags": { + "Result": { "type": "array", "items": { "type": "string" } - }, - "virt-type": { - "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] }, "caveat": { "type": "object", @@ -11797,205 +11237,35 @@ } }, { - "Name": "Machiner", + "Name": "MeterStatus", "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": { + "GetMeterStatus": { "type": "object", "properties": { - "Scope": { - "type": "string" - }, - "SpaceName": { - "type": "string" - }, - "Type": { - "type": "string" + "Params": { + "$ref": "#/definitions/Entities" }, - "Value": { - "type": "string" + "Result": { + "$ref": "#/definitions/MeterStatusResults" } - }, - "additionalProperties": false, - "required": [ - "Value", - "Type", - "Scope" - ] + } }, - "BytesResult": { + "WatchMeterStatus": { "type": "object", "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, "Result": { - "type": "array", - "items": { - "type": "integer" - } + "$ref": "#/definitions/NotifyWatchResults" } - }, - "additionalProperties": false, - "required": [ - "Result" - ] - }, + } + } + }, + "definitions": { "Entities": { "type": "object", "properties": { @@ -12023,36 +11293,6 @@ "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": { @@ -12084,75 +11324,70 @@ }, "additionalProperties": false }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "Error" - ] - }, - "ErrorResults": { + "Macaroon": { "type": "object", "properties": { - "Results": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/ErrorResult" + "$ref": "#/definitions/caveat" } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, - "HostPort": { - "type": "object", - "properties": { - "Address": { - "$ref": "#/definitions/Address" }, - "Port": { - "type": "integer" + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Address", - "Port" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "JobsResult": { + "MeterStatusResult": { "type": "object", "properties": { + "Code": { + "type": "string" + }, "Error": { "$ref": "#/definitions/Error" }, - "Jobs": { - "type": "array", - "items": { - "type": "string" - } + "Info": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Jobs", + "Code", + "Info", "Error" ] }, - "JobsResults": { + "MeterStatusResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/JobsResult" + "$ref": "#/definitions/MeterStatusResult" } } }, @@ -12161,29 +11396,29 @@ "Results" ] }, - "LifeResult": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "Life": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Life", + "NotifyWatcherId", "Error" ] }, - "LifeResults": { + "NotifyWatchResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/LifeResult" + "$ref": "#/definitions/NotifyWatchResult" } } }, @@ -12192,173 +11427,118 @@ "Results" ] }, - "Macaroon": { + "caveat": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { + "caveatId": { "$ref": "#/definitions/packet" }, "location": { "$ref": "#/definitions/packet" }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "data", "location", - "id", - "caveats", - "sig" + "caveatId", + "verificationId" ] }, - "MachineAddresses": { + "packet": { "type": "object", "properties": { - "Addresses": { - "type": "array", - "items": { - "$ref": "#/definitions/Address" - } + "headerLen": { + "type": "integer" }, - "Tag": { - "type": "string" + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Tag", - "Addresses" + "start", + "totalLen", + "headerLen" ] - }, - "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" + } + } + } + }, + { + "Name": "MetricsAdder", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "AddMetricBatches": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/MetricBatchParams" }, - "ProviderSpaceId": { + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + } + }, + "definitions": { + "Error": { + "type": "object", + "properties": { + "Code": { "type": "string" }, - "ProviderSubnetId": { - "type": "string" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "ProviderVLANId": { + "Message": { "type": "string" - }, - "VLANTag": { - "type": "integer" } }, "additionalProperties": false, "required": [ - "DeviceIndex", - "MACAddress", - "CIDR", - "MTU", - "ProviderId", - "ProviderSubnetId", - "ProviderSpaceId", - "ProviderAddressId", - "ProviderVLANId", - "VLANTag", - "InterfaceName", - "ParentInterfaceName", - "InterfaceType", - "Disabled" + "Message", + "Code" ] }, - "NotifyWatchResult": { + "ErrorInfo": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "NotifyWatcherId": { + "MacaroonPath": { "type": "string" } }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, "additionalProperties": false, "required": [ - "NotifyWatcherId", "Error" ] }, - "NotifyWatchResults": { + "ErrorResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/ErrorResult" } } }, @@ -12367,88 +11547,121 @@ "Results" ] }, - "SetMachineNetworkConfig": { + "Macaroon": { "type": "object", "properties": { - "Config": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/NetworkConfig" + "$ref": "#/definitions/caveat" } }, - "Tag": { - "type": "string" + "data": { + "type": "array", + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Tag", - "Config" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "SetMachinesAddresses": { + "Metric": { "type": "object", "properties": { - "MachineAddresses": { - "type": "array", - "items": { - "$ref": "#/definitions/MachineAddresses" - } + "Key": { + "type": "string" + }, + "Time": { + "type": "string", + "format": "date-time" + }, + "Value": { + "type": "string" } }, "additionalProperties": false, "required": [ - "MachineAddresses" + "Key", + "Value", + "Time" ] }, - "SetStatus": { + "MetricBatch": { "type": "object", "properties": { - "Entities": { + "CharmURL": { + "type": "string" + }, + "Created": { + "type": "string", + "format": "date-time" + }, + "Metrics": { "type": "array", "items": { - "$ref": "#/definitions/EntityStatusArgs" + "$ref": "#/definitions/Metric" } + }, + "UUID": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Entities" + "UUID", + "CharmURL", + "Created", + "Metrics" ] }, - "StringResult": { + "MetricBatchParam": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Batch": { + "$ref": "#/definitions/MetricBatch" }, - "Result": { + "Tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "Tag", + "Batch" ] }, - "StringsResult": { + "MetricBatchParams": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "Result": { + "Batches": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/MetricBatchParam" } } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "Batches" ] }, "caveat": { @@ -12495,30 +11708,30 @@ } }, { - "Name": "MeterStatus", + "Name": "MetricsDebug", "Version": 1, "Schema": { "type": "object", "properties": { - "GetMeterStatus": { + "GetMetrics": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/MeterStatusResults" + "$ref": "#/definitions/MetricResults" } } }, - "WatchMeterStatus": { + "SetMeterStatus": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" + "$ref": "#/definitions/MeterStatusParams" }, "Result": { - "$ref": "#/definitions/NotifyWatchResults" + "$ref": "#/definitions/ErrorResults" } } } @@ -12551,6 +11764,21 @@ "Tag" ] }, + "EntityMetrics": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" + }, + "metrics": { + "type": "array", + "items": { + "$ref": "#/definitions/MetricResult" + } + } + }, + "additionalProperties": false + }, "Error": { "type": "object", "properties": { @@ -12582,6 +11810,33 @@ }, "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": { @@ -12619,70 +11874,75 @@ "sig" ] }, - "MeterStatusResult": { + "MeterStatusParam": { "type": "object", "properties": { - "Code": { + "code": { "type": "string" }, - "Error": { - "$ref": "#/definitions/Error" + "info": { + "type": "string" }, - "Info": { + "tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Code", - "Info", - "Error" + "tag", + "code", + "info" ] }, - "MeterStatusResults": { + "MeterStatusParams": { "type": "object", "properties": { - "Results": { + "statues": { "type": "array", "items": { - "$ref": "#/definitions/MeterStatusResult" + "$ref": "#/definitions/MeterStatusParam" } } }, "additionalProperties": false, "required": [ - "Results" + "statues" ] }, - "NotifyWatchResult": { + "MetricResult": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "key": { + "type": "string" + }, + "time": { + "type": "string", + "format": "date-time" }, - "NotifyWatcherId": { + "value": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "time", + "key", + "value" ] }, - "NotifyWatchResults": { + "MetricResults": { "type": "object", "properties": { - "Results": { + "results": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/EntityMetrics" } } }, "additionalProperties": false, "required": [ - "Results" + "results" ] }, "caveat": { @@ -12729,16 +11989,27 @@ } }, { - "Name": "MetricsAdder", - "Version": 2, + "Name": "MetricsManager", + "Version": 1, "Schema": { "type": "object", "properties": { - "AddMetricBatches": { + "CleanupOldMetrics": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/MetricBatchParams" + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "SendMetrics": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, "Result": { "$ref": "#/definitions/ErrorResults" @@ -12747,6 +12018,33 @@ } }, "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { + "type": "array", + "items": { + "$ref": "#/definitions/Entity" + } + } + }, + "additionalProperties": false, + "required": [ + "Entities" + ] + }, + "Entity": { + "type": "object", + "properties": { + "Tag": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Tag" + ] + }, "Error": { "type": "object", "properties": { @@ -12842,86 +12140,6 @@ "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": { @@ -12966,30 +12184,30 @@ } }, { - "Name": "MetricsDebug", - "Version": 2, + "Name": "MigrationFlag", + "Version": 1, "Schema": { "type": "object", "properties": { - "GetMetrics": { + "Phase": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/MetricResults" + "$ref": "#/definitions/PhaseResults" } } }, - "SetMeterStatus": { + "Watch": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/MeterStatusParams" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/NotifyWatchResults" } } } @@ -13022,21 +12240,6 @@ "Tag" ] }, - "EntityMetrics": { - "type": "object", - "properties": { - "error": { - "$ref": "#/definitions/Error" - }, - "metrics": { - "type": "array", - "items": { - "$ref": "#/definitions/MetricResult" - } - } - }, - "additionalProperties": false - }, "Error": { "type": "object", "properties": { @@ -13068,33 +12271,6 @@ }, "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": { @@ -13132,75 +12308,66 @@ "sig" ] }, - "MeterStatusParam": { + "NotifyWatchResult": { "type": "object", "properties": { - "code": { - "type": "string" - }, - "info": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "tag": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "tag", - "code", - "info" + "NotifyWatcherId", + "Error" ] }, - "MeterStatusParams": { + "NotifyWatchResults": { "type": "object", "properties": { - "statues": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/MeterStatusParam" + "$ref": "#/definitions/NotifyWatchResult" } } }, "additionalProperties": false, "required": [ - "statues" + "Results" ] }, - "MetricResult": { + "PhaseResult": { "type": "object", "properties": { - "key": { - "type": "string" - }, - "time": { - "type": "string", - "format": "date-time" + "Error": { + "$ref": "#/definitions/Error" }, - "value": { + "phase": { "type": "string" } }, "additionalProperties": false, "required": [ - "time", - "key", - "value" + "phase", + "Error" ] }, - "MetricResults": { + "PhaseResults": { "type": "object", "properties": { - "results": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/EntityMetrics" + "$ref": "#/definitions/PhaseResult" } } }, "additionalProperties": false, "required": [ - "results" + "Results" ] }, "caveat": { @@ -13247,62 +12414,45 @@ } }, { - "Name": "MetricsManager", + "Name": "MigrationMaster", "Version": 1, "Schema": { "type": "object", "properties": { - "CleanupOldMetrics": { + "Export": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/SerializedModel" } } }, - "SendMetrics": { + "GetMigrationStatus": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/FullMigrationStatus" } } - } - }, - "definitions": { - "Entities": { + }, + "SetPhase": { "type": "object", "properties": { - "Entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } + "Params": { + "$ref": "#/definitions/SetMigrationPhaseArgs" } - }, - "additionalProperties": false, - "required": [ - "Entities" - ] + } }, - "Entity": { + "Watch": { "type": "object", "properties": { - "Tag": { - "type": "string" + "Result": { + "$ref": "#/definitions/NotifyWatchResult" } - }, - "additionalProperties": false, - "required": [ - "Tag" - ] - }, + } + } + }, + "definitions": { "Error": { "type": "object", "properties": { @@ -13334,31 +12484,24 @@ }, "additionalProperties": false }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false, - "required": [ - "Error" - ] - }, - "ErrorResults": { + "FullMigrationStatus": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" - } + "attempt": { + "type": "integer" + }, + "phase": { + "type": "string" + }, + "spec": { + "$ref": "#/definitions/ModelMigrationSpec" } }, "additionalProperties": false, "required": [ - "Results" + "spec", + "attempt", + "phase" ] }, "Macaroon": { @@ -13398,6 +12541,96 @@ "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": { @@ -13442,62 +12675,21 @@ } }, { - "Name": "MigrationFlag", + "Name": "MigrationMinion", "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" + "$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": { @@ -13540,94 +12732,48 @@ }, "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": { + "items": { + "type": "integer" + } + }, + "id": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "type": "integer" } } }, "additionalProperties": false, "required": [ - "Results" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "PhaseResult": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "phase": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "phase", + "NotifyWatcherId", "Error" ] }, - "PhaseResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/PhaseResult" - } - } - }, - "additionalProperties": false, - "required": [ - "Results" - ] - }, "caveat": { "type": "object", "properties": { @@ -13672,45 +12818,248 @@ } }, { - "Name": "MigrationMaster", + "Name": "MigrationStatusWatcher", "Version": 1, "Schema": { "type": "object", "properties": { - "Export": { + "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" + } + } }, - "GetMigrationStatus": { + "CreateModel": { "type": "object", "properties": { + "Params": { + "$ref": "#/definitions/ModelCreateArgs" + }, "Result": { - "$ref": "#/definitions/FullMigrationStatus" + "$ref": "#/definitions/Model" } } }, - "SetPhase": { + "ListModels": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/SetMigrationPhaseArgs" + "$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" + ] }, - "Watch": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - } - }, - "definitions": { "Error": { "type": "object", "properties": { @@ -13742,24 +13091,31 @@ }, "additionalProperties": false }, - "FullMigrationStatus": { + "ErrorResult": { "type": "object", "properties": { - "attempt": { - "type": "integer" - }, - "phase": { - "type": "string" - }, - "spec": { - "$ref": "#/definitions/ModelMigrationSpec" + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "spec", - "attempt", - "phase" + "Error" + ] + }, + "ErrorResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" ] }, "Macaroon": { @@ -13799,94 +13155,260 @@ "sig" ] }, - "ModelMigrationSpec": { + "Model": { "type": "object", "properties": { - "model-tag": { + "Name": { "type": "string" }, - "target-info": { - "$ref": "#/definitions/ModelMigrationTargetInfo" + "OwnerTag": { + "type": "string" + }, + "UUID": { + "type": "string" } }, "additionalProperties": false, "required": [ - "model-tag", - "target-info" + "Name", + "UUID", + "OwnerTag" ] }, - "ModelMigrationTargetInfo": { + "ModelConfigResult": { "type": "object", "properties": { - "addrs": { + "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": { + "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": { - "type": "string" + "$ref": "#/definitions/ModelUserInfo" } + } + }, + "additionalProperties": false, + "required": [ + "Name", + "UUID", + "ServerUUID", + "ProviderType", + "DefaultSeries", + "OwnerTag", + "Life", + "Status", + "Users" + ] + }, + "ModelInfoResult": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/Error" }, - "auth-tag": { + "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" }, - "ca-cert": { + "Region": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "Provider", + "Region" + ] + }, + "ModelUserInfo": { + "type": "object", + "properties": { + "access": { "type": "string" }, - "controller-tag": { + "displayname": { "type": "string" }, - "password": { + "lastconnection": { + "type": "string", + "format": "date-time" + }, + "user": { "type": "string" } }, "additionalProperties": false, "required": [ - "controller-tag", - "addrs", - "ca-cert", - "auth-tag", - "password" + "user", + "displayname", + "lastconnection", + "access" ] }, - "NotifyWatchResult": { + "ModifyModelAccess": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "access": { + "type": "string" }, - "NotifyWatcherId": { + "action": { + "type": "string" + }, + "model-tag": { + "type": "string" + }, + "user-tag": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "user-tag", + "action", + "access", + "model-tag" + ] + }, + "ModifyModelAccessRequest": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "$ref": "#/definitions/ModifyModelAccess" + } + } + }, + "additionalProperties": false, + "required": [ + "changes" ] }, - "SerializedModel": { + "UserModel": { "type": "object", "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } + "LastConnection": { + "type": "string", + "format": "date-time" + }, + "Model": { + "$ref": "#/definitions/Model" } }, "additionalProperties": false, "required": [ - "bytes" + "Model", + "LastConnection" ] }, - "SetMigrationPhaseArgs": { + "UserModelList": { "type": "object", "properties": { - "phase": { - "type": "string" + "UserModels": { + "type": "array", + "items": { + "$ref": "#/definitions/UserModel" + } } }, "additionalProperties": false, "required": [ - "phase" + "UserModels" ] }, "caveat": { @@ -13933,471 +13455,468 @@ } }, { - "Name": "MigrationMinion", + "Name": "NotifyWatcher", "Version": 1, "Schema": { "type": "object", "properties": { - "Watch": { + "Next": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Pinger", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Ping": { + "type": "object" + }, + "Stop": { + "type": "object" + } + } + } + }, + { + "Name": "Provisioner", + "Version": 2, + "Schema": { + "type": "object", + "properties": { + "APIAddresses": { "type": "object", "properties": { "Result": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/StringsResult" } } - } - }, - "definitions": { - "Error": { + }, + "APIHostPorts": { "type": "object", "properties": { - "Code": { - "type": "string" + "Result": { + "$ref": "#/definitions/APIHostPortsResult" + } + } + }, + "CACert": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/BytesResult" + } + } + }, + "Constraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Result": { + "$ref": "#/definitions/ConstraintsResults" + } + } + }, + "ContainerConfig": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/ContainerConfig" + } + } + }, + "ContainerManagerConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ContainerManagerConfigParams" }, - "Message": { - "type": "string" + "Result": { + "$ref": "#/definitions/ContainerManagerConfig" } - }, - "additionalProperties": false, - "required": [ - "Message", - "Code" - ] + } + }, + "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" + } + } }, - "ErrorInfo": { + "Remove": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Params": { + "$ref": "#/definitions/Entities" }, - "MacaroonPath": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false + } }, - "Macaroon": { + "Series": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { - "type": "array", - "items": { - "type": "integer" - } - }, - "id": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Params": { + "$ref": "#/definitions/Entities" }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "Result": { + "$ref": "#/definitions/StringResults" } - }, - "additionalProperties": false, - "required": [ - "data", - "location", - "id", - "caveats", - "sig" - ] + } }, - "NotifyWatchResult": { + "SetInstanceInfo": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Params": { + "$ref": "#/definitions/InstancesInfo" }, - "NotifyWatcherId": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId", - "Error" - ] + } }, - "caveat": { + "SetInstanceStatus": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" + "Params": { + "$ref": "#/definitions/SetStatus" }, - "verificationId": { - "$ref": "#/definitions/packet" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] + } }, - "packet": { + "SetPasswords": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Params": { + "$ref": "#/definitions/EntityPasswords" }, - "totalLen": { - "type": "integer" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "start", - "totalLen", - "headerLen" - ] - } - } - } - }, - { - "Name": "MigrationStatusWatcher", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "Next": { + } + }, + "SetStatus": { "type": "object", "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, "Result": { - "$ref": "#/definitions/MigrationStatus" + "$ref": "#/definitions/ErrorResults" } } }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "MigrationStatus": { + "SetSupportedContainers": { "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" - } + "Params": { + "$ref": "#/definitions/MachineContainersParams" }, - "target-ca-cert": { - "type": "string" + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "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": { + } + }, + "StateAddresses": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ModelArgs" + "Result": { + "$ref": "#/definitions/StringsResult" } } }, - "Activate": { + "Status": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ModelArgs" + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StatusResults" } } }, - "Import": { + "Tools": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/SerializedModel" + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ToolsResults" } } - } - }, - "definitions": { - "ModelArgs": { + }, + "UpdateStatus": { "type": "object", "properties": { - "model-tag": { - "type": "string" + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" } - }, - "additionalProperties": false, - "required": [ - "model-tag" - ] + } }, - "SerializedModel": { + "WatchAPIHostPorts": { "type": "object", "properties": { - "bytes": { - "type": "array", - "items": { - "type": "integer" - } + "Result": { + "$ref": "#/definitions/NotifyWatchResult" } - }, - "additionalProperties": false, - "required": [ - "bytes" - ] - } - } - } - }, - { - "Name": "ModelManager", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ConfigSkeleton": { + } + }, + "WatchAllContainers": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ModelSkeletonConfigArgs" + "$ref": "#/definitions/WatchContainers" }, "Result": { - "$ref": "#/definitions/ModelConfigResult" + "$ref": "#/definitions/StringsWatchResults" } } }, - "CreateModel": { + "WatchContainers": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/ModelCreateArgs" + "$ref": "#/definitions/WatchContainers" }, "Result": { - "$ref": "#/definitions/Model" + "$ref": "#/definitions/StringsWatchResults" } } }, - "ListModels": { + "WatchForModelConfigChanges": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entity" - }, "Result": { - "$ref": "#/definitions/UserModelList" + "$ref": "#/definitions/NotifyWatchResult" } } }, - "ModelInfo": { + "WatchMachineErrorRetry": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/ModelInfoResults" + "$ref": "#/definitions/NotifyWatchResult" } } }, - "ModifyModelAccess": { + "WatchModelMachines": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ModifyModelAccessRequest" - }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/StringsWatchResult" } } } }, "definitions": { - "Entities": { + "APIHostPortsResult": { "type": "object", "properties": { - "Entities": { + "Servers": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "type": "array", + "items": { + "$ref": "#/definitions/HostPort" + } } } }, "additionalProperties": false, "required": [ - "Entities" + "Servers" ] }, - "Entity": { + "Address": { "type": "object", "properties": { - "Tag": { + "Scope": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Tag" - ] - }, - "EntityStatus": { - "type": "object", - "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } }, - "Info": { + "SpaceName": { "type": "string" }, - "Since": { - "type": "string", - "format": "date-time" + "Type": { + "type": "string" }, - "Status": { + "Value": { "type": "string" } }, "additionalProperties": false, "required": [ - "Status", - "Info", - "Data", - "Since" + "Value", + "Type", + "Scope" ] }, - "Error": { + "Binary": { "type": "object", "properties": { - "Code": { + "Arch": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" - }, - "Message": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Message", - "Code" - ] - }, - "ErrorInfo": { - "type": "object", - "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "Number": { + "$ref": "#/definitions/Number" }, - "MacaroonPath": { + "Series": { "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" + "Number", + "Series", + "Arch" ] }, - "Macaroon": { + "BytesResult": { "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": { + "Result": { "type": "array", "items": { "type": "integer" @@ -14406,964 +13925,1122 @@ }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "Result" ] }, - "Model": { + "CloudImageMetadata": { "type": "object", "properties": { - "Name": { - "type": "string" - }, - "OwnerTag": { + "arch": { "type": "string" }, - "UUID": { + "image_id": { "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 - } - } + "priority": { + "type": "integer" }, - "OwnerTag": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "OwnerTag", - "Account", - "Config" - ] - }, - "ModelInfo": { - "type": "object", - "properties": { - "Cloud": { + "region": { "type": "string" }, - "DefaultSeries": { - "type": "string" + "root_storage_size": { + "type": "integer" }, - "Life": { + "root_storage_type": { "type": "string" }, - "Name": { + "series": { "type": "string" }, - "OwnerTag": { + "source": { "type": "string" }, - "ProviderType": { + "stream": { "type": "string" }, - "ServerUUID": { + "version": { "type": "string" }, - "Status": { - "$ref": "#/definitions/EntityStatus" - }, - "UUID": { + "virt_type": { "type": "string" - }, - "Users": { - "type": "array", - "items": { - "$ref": "#/definitions/ModelUserInfo" - } } }, "additionalProperties": false, "required": [ - "Name", - "UUID", - "ServerUUID", - "ProviderType", - "DefaultSeries", - "Cloud", - "OwnerTag", - "Life", - "Status", - "Users" + "image_id", + "region", + "version", + "series", + "arch", + "source", + "priority" ] }, - "ModelInfoResult": { + "ConstraintsResult": { "type": "object", "properties": { - "error": { - "$ref": "#/definitions/Error" + "Constraints": { + "$ref": "#/definitions/Value" }, - "result": { - "$ref": "#/definitions/ModelInfo" + "Error": { + "$ref": "#/definitions/Error" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Error", + "Constraints" + ] }, - "ModelInfoResults": { + "ConstraintsResults": { "type": "object", "properties": { - "results": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/ModelInfoResult" + "$ref": "#/definitions/ConstraintsResult" } } }, "additionalProperties": false, "required": [ - "results" + "Results" ] }, - "ModelSkeletonConfigArgs": { + "ContainerConfig": { "type": "object", "properties": { - "Provider": { + "AllowLXCLoopMounts": { + "type": "boolean" + }, + "AptMirror": { "type": "string" }, - "Region": { + "AptProxy": { + "$ref": "#/definitions/Settings" + }, + "AuthorizedKeys": { + "type": "string" + }, + "PreferIPv6": { + "type": "boolean" + }, + "ProviderType": { "type": "string" + }, + "Proxy": { + "$ref": "#/definitions/Settings" + }, + "SSLHostnameVerification": { + "type": "boolean" + }, + "UpdateBehavior": { + "$ref": "#/definitions/UpdateBehavior" } }, "additionalProperties": false, "required": [ - "Provider", - "Region" + "ProviderType", + "AuthorizedKeys", + "SSLHostnameVerification", + "Proxy", + "AptProxy", + "AptMirror", + "PreferIPv6", + "AllowLXCLoopMounts", + "UpdateBehavior" ] }, - "ModelUserInfo": { + "ContainerManagerConfig": { "type": "object", "properties": { - "access": { - "type": "string" - }, - "displayname": { - "type": "string" - }, - "lastconnection": { - "type": "string", - "format": "date-time" - }, - "user": { - "type": "string" + "ManagerConfig": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } } }, "additionalProperties": false, "required": [ - "user", - "displayname", - "lastconnection", - "access" + "ManagerConfig" ] }, - "ModifyModelAccess": { + "ContainerManagerConfigParams": { "type": "object", "properties": { - "access": { - "type": "string" - }, - "action": { - "type": "string" - }, - "model-tag": { - "type": "string" - }, - "user-tag": { + "Type": { "type": "string" } }, "additionalProperties": false, "required": [ - "user-tag", - "action", - "access", - "model-tag" + "Type" ] }, - "ModifyModelAccessRequest": { + "DistributionGroupResult": { "type": "object", "properties": { - "changes": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { "type": "array", "items": { - "$ref": "#/definitions/ModifyModelAccess" + "type": "string" } } }, "additionalProperties": false, "required": [ - "changes" + "Error", + "Result" ] }, - "UserModel": { + "DistributionGroupResults": { "type": "object", "properties": { - "LastConnection": { - "type": "string", - "format": "date-time" - }, - "Model": { - "$ref": "#/definitions/Model" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/DistributionGroupResult" + } } }, "additionalProperties": false, "required": [ - "Model", - "LastConnection" + "Results" ] }, - "UserModelList": { + "Entities": { "type": "object", "properties": { - "UserModels": { + "Entities": { "type": "array", "items": { - "$ref": "#/definitions/UserModel" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "UserModels" + "Entities" ] }, - "caveat": { + "Entity": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "verificationId": { - "$ref": "#/definitions/packet" + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "Tag" ] }, - "packet": { + "EntityPassword": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" + "Password": { + "type": "string" }, - "totalLen": { - "type": "integer" + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "Tag", + "Password" ] - } - } - } - }, - { - "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": { + "EntityPasswords": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/BytesResult" + "Changes": { + "type": "array", + "items": { + "$ref": "#/definitions/EntityPassword" + } } - } + }, + "additionalProperties": false, + "required": [ + "Changes" + ] }, - "Constraints": { + "EntityStatusArgs": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } }, - "Result": { - "$ref": "#/definitions/ConstraintsResults" + "Info": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tag": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Tag", + "Status", + "Info", + "Data" + ] }, - "ContainerConfig": { + "Error": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/ContainerConfig" + "Code": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Message", + "Code" + ] }, - "ContainerManagerConfig": { + "ErrorInfo": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/ContainerManagerConfigParams" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "Result": { - "$ref": "#/definitions/ContainerManagerConfig" + "MacaroonPath": { + "type": "string" } - } + }, + "additionalProperties": false }, - "DistributionGroup": { + "ErrorResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/DistributionGroupResults" + "Error": { + "$ref": "#/definitions/Error" } - } + }, + "additionalProperties": false, + "required": [ + "Error" + ] }, - "EnsureDead": { + "ErrorResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, - "FindTools": { + "FindToolsParams": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/FindToolsParams" + "Arch": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/FindToolsResult" + "MajorVersion": { + "type": "integer" + }, + "MinorVersion": { + "type": "integer" + }, + "Number": { + "$ref": "#/definitions/Number" + }, + "Series": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Number", + "MajorVersion", + "MinorVersion", + "Arch", + "Series" + ] }, - "GetContainerInterfaceInfo": { + "FindToolsResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Error": { + "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" + "List": { + "type": "array", + "items": { + "$ref": "#/definitions/Tools" + } } - } + }, + "additionalProperties": false, + "required": [ + "List", + "Error" + ] }, - "InstanceId": { + "HardwareCharacteristics": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Arch": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/StringResults" + "AvailabilityZone": { + "type": "string" + }, + "CpuCores": { + "type": "integer" + }, + "CpuPower": { + "type": "integer" + }, + "Mem": { + "type": "integer" + }, + "RootDisk": { + "type": "integer" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } } - } + }, + "additionalProperties": false }, - "InstanceStatus": { + "HostPort": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Address": { + "$ref": "#/definitions/Address" }, - "Result": { - "$ref": "#/definitions/StatusResults" + "Port": { + "type": "integer" } - } + }, + "additionalProperties": false, + "required": [ + "Address", + "Port" + ] }, - "Life": { + "InstanceInfo": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Characteristics": { + "$ref": "#/definitions/HardwareCharacteristics" }, - "Result": { - "$ref": "#/definitions/LifeResults" + "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" + ] }, - "MachinesWithTransientErrors": { + "InstancesInfo": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/StatusResults" + "Machines": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceInfo" + } } - } + }, + "additionalProperties": false, + "required": [ + "Machines" + ] }, - "ModelConfig": { + "LifeResult": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/ModelConfigResult" + "Error": { + "$ref": "#/definitions/Error" + }, + "Life": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Life", + "Error" + ] }, - "ModelUUID": { + "LifeResults": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/StringResult" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/LifeResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, - "PrepareContainerInterfaceInfo": { + "Macaroon": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "Result": { - "$ref": "#/definitions/MachineNetworkConfigResults" + "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" + ] }, - "ProvisioningInfo": { + "MachineContainers": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "ContainerTypes": { + "type": "array", + "items": { + "type": "string" + } }, - "Result": { - "$ref": "#/definitions/ProvisioningInfoResults" + "MachineTag": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "MachineTag", + "ContainerTypes" + ] }, - "ReleaseContainerAddresses": { + "MachineContainersParams": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "type": "array", + "items": { + "$ref": "#/definitions/MachineContainers" + } } - } + }, + "additionalProperties": false, + "required": [ + "Params" + ] }, - "Remove": { + "MachineNetworkConfigResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Error": { + "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "Info": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkConfig" + } } - } + }, + "additionalProperties": false, + "required": [ + "Error", + "Info" + ] }, - "Series": { + "MachineNetworkConfigResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringResults" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/MachineNetworkConfigResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, - "SetInstanceInfo": { + "ModelConfigResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/InstancesInfo" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } } - } + }, + "additionalProperties": false, + "required": [ + "Config" + ] }, - "SetInstanceStatus": { + "NetworkConfig": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" + "Address": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "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" + ] }, - "SetPasswords": { + "NotifyWatchResult": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/EntityPasswords" + "Error": { + "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "NotifyWatcherId": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "NotifyWatcherId", + "Error" + ] }, - "SetStatus": { + "Number": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" + "Build": { + "type": "integer" }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "SetSupportedContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/MachineContainersParams" + "Major": { + "type": "integer" }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "StateAddresses": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsResult" - } - } - }, - "Status": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Minor": { + "type": "integer" }, - "Result": { - "$ref": "#/definitions/StatusResults" - } - } - }, - "Tools": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Patch": { + "type": "integer" }, - "Result": { - "$ref": "#/definitions/ToolsResults" + "Tag": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Major", + "Minor", + "Tag", + "Patch", + "Build" + ] }, - "UpdateStatus": { + "ProvisioningInfo": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/SetStatus" + "Constraints": { + "$ref": "#/definitions/Value" }, - "Result": { - "$ref": "#/definitions/ErrorResults" - } - } - }, - "WatchAPIHostPorts": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" - } - } - }, - "WatchAllContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" + "EndpointBindings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, - "WatchContainers": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/WatchContainers" + "ImageMetadata": { + "type": "array", + "items": { + "$ref": "#/definitions/CloudImageMetadata" + } }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" + "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" + ] }, - "WatchForModelConfigChanges": { + "ProvisioningInfoResult": { "type": "object", "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, "Result": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/ProvisioningInfo" } - } + }, + "additionalProperties": false, + "required": [ + "Error", + "Result" + ] }, - "WatchMachineErrorRetry": { + "ProvisioningInfoResults": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ProvisioningInfoResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, - "WatchModelMachines": { - "type": "object", - "properties": { - "Result": { - "$ref": "#/definitions/StringsWatchResult" - } - } - } - }, - "definitions": { - "APIHostPortsResult": { + "SetStatus": { "type": "object", "properties": { - "Servers": { + "Entities": { "type": "array", "items": { - "type": "array", - "items": { - "$ref": "#/definitions/HostPort" - } + "$ref": "#/definitions/EntityStatusArgs" } } }, "additionalProperties": false, "required": [ - "Servers" + "Entities" ] }, - "Address": { + "Settings": { "type": "object", "properties": { - "Scope": { + "Ftp": { "type": "string" }, - "SpaceName": { + "Http": { "type": "string" }, - "Type": { + "Https": { "type": "string" }, - "Value": { + "NoProxy": { "type": "string" } }, "additionalProperties": false, "required": [ - "Value", - "Type", - "Scope" + "Http", + "Https", + "Ftp", + "NoProxy" ] }, - "Binary": { + "StatusResult": { "type": "object", "properties": { - "Arch": { + "Data": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Error": { + "$ref": "#/definitions/Error" + }, + "Id": { "type": "string" }, - "Number": { - "$ref": "#/definitions/Number" + "Info": { + "type": "string" }, - "Series": { + "Life": { + "type": "string" + }, + "Since": { + "type": "string", + "format": "date-time" + }, + "Status": { "type": "string" } }, "additionalProperties": false, "required": [ - "Number", - "Series", - "Arch" + "Error", + "Id", + "Life", + "Status", + "Info", + "Data", + "Since" ] }, - "BytesResult": { + "StatusResults": { "type": "object", "properties": { - "Result": { + "Results": { "type": "array", "items": { - "type": "integer" + "$ref": "#/definitions/StatusResult" } } }, "additionalProperties": false, "required": [ - "Result" + "Results" ] }, - "CloudImageMetadata": { + "StringResult": { "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" + "Error": { + "$ref": "#/definitions/Error" }, - "virt_type": { + "Result": { "type": "string" } }, "additionalProperties": false, "required": [ - "image_id", - "region", - "version", - "series", - "arch", - "source", - "priority" + "Error", + "Result" ] }, - "ConstraintsResult": { + "StringResults": { "type": "object", "properties": { - "Constraints": { - "$ref": "#/definitions/Value" - }, - "Error": { - "$ref": "#/definitions/Error" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringResult" + } } }, "additionalProperties": false, "required": [ - "Error", - "Constraints" + "Results" ] }, - "ConstraintsResults": { + "StringsResult": { "type": "object", "properties": { - "Results": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Result": { "type": "array", "items": { - "$ref": "#/definitions/ConstraintsResult" + "type": "string" } } }, "additionalProperties": false, "required": [ - "Results" + "Error", + "Result" ] }, - "ContainerConfig": { + "StringsWatchResult": { "type": "object", "properties": { - "AllowLXCLoopMounts": { - "type": "boolean" - }, - "AptMirror": { - "type": "string" - }, - "AptProxy": { - "$ref": "#/definitions/Settings" + "Changes": { + "type": "array", + "items": { + "type": "string" + } }, - "AuthorizedKeys": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "ProviderType": { + "StringsWatcherId": { "type": "string" - }, - "Proxy": { - "$ref": "#/definitions/Settings" - }, - "SSLHostnameVerification": { - "type": "boolean" - }, - "UpdateBehavior": { - "$ref": "#/definitions/UpdateBehavior" } }, "additionalProperties": false, "required": [ - "ProviderType", - "AuthorizedKeys", - "SSLHostnameVerification", - "Proxy", - "AptProxy", - "AptMirror", - "AllowLXCLoopMounts", - "UpdateBehavior" + "StringsWatcherId", + "Changes", + "Error" ] }, - "ContainerManagerConfig": { + "StringsWatchResults": { "type": "object", "properties": { - "ManagerConfig": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/StringsWatchResult" } } }, "additionalProperties": false, "required": [ - "ManagerConfig" + "Results" ] }, - "ContainerManagerConfigParams": { + "Tools": { "type": "object", "properties": { - "Type": { + "sha256": { "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "version": { + "$ref": "#/definitions/Binary" } }, "additionalProperties": false, "required": [ - "Type" + "version", + "url", + "size" ] }, - "DistributionGroupResult": { + "ToolsResult": { "type": "object", "properties": { + "DisableSSLHostnameVerification": { + "type": "boolean" + }, "Error": { "$ref": "#/definitions/Error" }, - "Result": { + "ToolsList": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Tools" } } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "ToolsList", + "DisableSSLHostnameVerification", + "Error" ] }, - "DistributionGroupResults": { + "ToolsResults": { "type": "object", "properties": { "Results": { "type": "array", "items": { - "$ref": "#/definitions/DistributionGroupResult" + "$ref": "#/definitions/ToolsResult" } } }, @@ -15372,337 +15049,351 @@ "Results" ] }, - "Entities": { + "UpdateBehavior": { "type": "object", "properties": { - "Entities": { - "type": "array", - "items": { - "$ref": "#/definitions/Entity" - } + "EnableOSRefreshUpdate": { + "type": "boolean" + }, + "EnableOSUpgrade": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "Entities" + "EnableOSRefreshUpdate", + "EnableOSUpgrade" ] }, - "Entity": { + "Value": { "type": "object", "properties": { - "Tag": { + "arch": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "Tag" - ] - }, - "EntityPassword": { - "type": "object", - "properties": { - "Password": { + }, + "container": { + "type": "string" + }, + "cpu-cores": { + "type": "integer" + }, + "cpu-power": { + "type": "integer" + }, + "instance-type": { "type": "string" }, - "Tag": { + "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, - "required": [ - "Tag", - "Password" - ] + "additionalProperties": false }, - "EntityPasswords": { + "Volume": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityPassword" - } + "info": { + "$ref": "#/definitions/VolumeInfo" + }, + "volumetag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Changes" + "volumetag", + "info" ] }, - "EntityStatusArgs": { + "VolumeAttachmentInfo": { "type": "object", "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "Info": { + "busaddress": { "type": "string" }, - "Status": { + "devicelink": { "type": "string" }, - "Tag": { + "devicename": { "type": "string" + }, + "read-only": { + "type": "boolean" } }, - "additionalProperties": false, - "required": [ - "Tag", - "Status", - "Info", - "Data" - ] + "additionalProperties": false }, - "Error": { + "VolumeAttachmentParams": { "type": "object", "properties": { - "Code": { + "instanceid": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "machinetag": { + "type": "string" }, - "Message": { + "provider": { + "type": "string" + }, + "read-only": { + "type": "boolean" + }, + "volumeid": { + "type": "string" + }, + "volumetag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "volumetag", + "machinetag", + "provider" ] }, - "ErrorInfo": { + "VolumeInfo": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" + "hardwareid": { + "type": "string" }, - "MacaroonPath": { + "persistent": { + "type": "boolean" + }, + "size": { + "type": "integer" + }, + "volumeid": { "type": "string" } }, - "additionalProperties": false - }, - "ErrorResult": { - "type": "object", - "properties": { - "Error": { - "$ref": "#/definitions/Error" - } - }, "additionalProperties": false, "required": [ - "Error" + "volumeid", + "size", + "persistent" ] }, - "ErrorResults": { + "VolumeParams": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ErrorResult" + "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": [ - "Results" + "volumetag", + "size", + "provider" ] }, - "FindToolsParams": { + "WatchContainer": { "type": "object", "properties": { - "Arch": { + "ContainerType": { "type": "string" }, - "MajorVersion": { - "type": "integer" - }, - "MinorVersion": { - "type": "integer" - }, - "Number": { - "$ref": "#/definitions/Number" - }, - "Series": { + "MachineTag": { "type": "string" } }, "additionalProperties": false, "required": [ - "Number", - "MajorVersion", - "MinorVersion", - "Arch", - "Series" + "MachineTag", + "ContainerType" ] }, - "FindToolsResult": { + "WatchContainers": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "List": { + "Params": { "type": "array", "items": { - "$ref": "#/definitions/Tools" + "$ref": "#/definitions/WatchContainer" } } }, "additionalProperties": false, "required": [ - "List", - "Error" + "Params" ] }, - "HardwareCharacteristics": { + "caveat": { "type": "object", "properties": { - "Arch": { - "type": "string" - }, - "AvailabilityZone": { - "type": "string" - }, - "CpuCores": { - "type": "integer" - }, - "CpuPower": { - "type": "integer" - }, - "Mem": { - "type": "integer" + "caveatId": { + "$ref": "#/definitions/packet" }, - "RootDisk": { - "type": "integer" + "location": { + "$ref": "#/definitions/packet" }, - "Tags": { - "type": "array", - "items": { - "type": "string" - } + "verificationId": { + "$ref": "#/definitions/packet" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "location", + "caveatId", + "verificationId" + ] }, - "HostPort": { + "packet": { "type": "object", "properties": { - "Address": { - "$ref": "#/definitions/Address" + "headerLen": { + "type": "integer" }, - "Port": { + "start": { + "type": "integer" + }, + "totalLen": { "type": "integer" } }, "additionalProperties": false, "required": [ - "Address", - "Port" + "start", + "totalLen", + "headerLen" ] - }, - "InstanceInfo": { - "type": "object", - "properties": { - "Characteristics": { - "$ref": "#/definitions/HardwareCharacteristics" - }, - "InstanceId": { - "type": "string" - }, - "NetworkConfig": { - "type": "array", - "items": { - "$ref": "#/definitions/NetworkConfig" - } - }, - "Nonce": { - "type": "string" - }, - "Tag": { - "type": "string" + } + } + } + }, + { + "Name": "ProxyUpdater", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "ProxyConfig": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "VolumeAttachments": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/VolumeAttachmentInfo" - } - } + "Result": { + "$ref": "#/definitions/ProxyConfigResults" + } + } + }, + "WatchForProxyConfigAndAPIHostPortChanges": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" }, - "Volumes": { + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { + "type": "object", + "properties": { + "Entities": { "type": "array", "items": { - "$ref": "#/definitions/Volume" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "Tag", - "InstanceId", - "Nonce", - "Characteristics", - "Volumes", - "VolumeAttachments", - "NetworkConfig" + "Entities" ] }, - "InstancesInfo": { + "Entity": { "type": "object", "properties": { - "Machines": { - "type": "array", - "items": { - "$ref": "#/definitions/InstanceInfo" - } + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Machines" + "Tag" ] }, - "LifeResult": { + "Error": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Code": { + "type": "string" }, - "Life": { + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "Life", - "Error" + "Message", + "Code" ] }, - "LifeResults": { + "ErrorInfo": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/LifeResult" - } + "Macaroon": { + "$ref": "#/definitions/Macaroon" + }, + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Results" - ] + "additionalProperties": false }, "Macaroon": { "type": "object", @@ -15741,785 +15432,803 @@ "sig" ] }, - "MachineContainers": { + "NotifyWatchResult": { "type": "object", "properties": { - "ContainerTypes": { - "type": "array", - "items": { - "type": "string" - } + "Error": { + "$ref": "#/definitions/Error" }, - "MachineTag": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "MachineTag", - "ContainerTypes" + "NotifyWatcherId", + "Error" ] }, - "MachineContainersParams": { + "NotifyWatchResults": { "type": "object", "properties": { - "Params": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/MachineContainers" + "$ref": "#/definitions/NotifyWatchResult" } } }, "additionalProperties": false, "required": [ - "Params" + "Results" ] }, - "MachineNetworkConfigResult": { + "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" }, - "Info": { + "ProxySettings": { + "$ref": "#/definitions/ProxyConfig" + } + }, + "additionalProperties": false, + "required": [ + "ProxySettings", + "APTProxySettings" + ] + }, + "ProxyConfigResults": { + "type": "object", + "properties": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/NetworkConfig" + "$ref": "#/definitions/ProxyConfigResult" } } }, "additionalProperties": false, "required": [ - "Error", - "Info" + "Results" ] }, - "MachineNetworkConfigResults": { + "caveat": { "type": "object", "properties": { - "Results": { + "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/MachineNetworkConfigResult" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "Results" + "Entities" ] }, - "ModelConfigResult": { + "Entity": { "type": "object", "properties": { - "Config": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "Tag": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Config" + "Tag" ] }, - "NetworkConfig": { + "Error": { "type": "object", "properties": { - "Address": { - "type": "string" - }, - "CIDR": { - "type": "string" - }, - "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": { + "Code": { "type": "string" }, - "ProviderSubnetId": { - "type": "string" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "ProviderVLANId": { + "Message": { "type": "string" - }, - "VLANTag": { - "type": "integer" } }, "additionalProperties": false, "required": [ - "DeviceIndex", - "MACAddress", - "CIDR", - "MTU", - "ProviderId", - "ProviderSubnetId", - "ProviderSpaceId", - "ProviderAddressId", - "ProviderVLANId", - "VLANTag", - "InterfaceName", - "ParentInterfaceName", - "InterfaceType", - "Disabled" + "Message", + "Code" ] }, - "NotifyWatchResult": { + "ErrorInfo": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "NotifyWatcherId": { + "MacaroonPath": { "type": "string" } }, + "additionalProperties": false + }, + "ErrorResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + } + }, "additionalProperties": false, "required": [ - "NotifyWatcherId", "Error" ] }, - "Number": { + "ErrorResults": { "type": "object", "properties": { - "Build": { - "type": "integer" - }, - "Major": { - "type": "integer" - }, - "Minor": { - "type": "integer" - }, - "Patch": { - "type": "integer" - }, - "Tag": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } } }, "additionalProperties": false, "required": [ - "Major", - "Minor", - "Tag", - "Patch", - "Build" + "Results" ] }, - "ProvisioningInfo": { + "Macaroon": { "type": "object", "properties": { - "Constraints": { - "$ref": "#/definitions/Value" - }, - "EndpointBindings": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } - }, - "ImageMetadata": { + "caveats": { "type": "array", "items": { - "$ref": "#/definitions/CloudImageMetadata" + "$ref": "#/definitions/caveat" } }, - "Jobs": { + "data": { "type": "array", "items": { - "type": "string" + "type": "integer" } }, - "Placement": { - "type": "string" - }, - "Series": { - "type": "string" - }, - "SubnetsToZones": { - "type": "object", - "patternProperties": { - ".*": { - "type": "array", - "items": { - "type": "string" - } - } - } + "id": { + "$ref": "#/definitions/packet" }, - "Tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } + "location": { + "$ref": "#/definitions/packet" }, - "Volumes": { + "sig": { "type": "array", "items": { - "$ref": "#/definitions/VolumeParams" + "type": "integer" } } }, "additionalProperties": false, "required": [ - "Constraints", - "Series", - "Placement", - "Jobs", - "Volumes", - "Tags", - "SubnetsToZones", - "ImageMetadata", - "EndpointBindings" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "ProvisioningInfoResult": { + "NotifyWatchResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, - "Result": { - "$ref": "#/definitions/ProvisioningInfo" + "NotifyWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "NotifyWatcherId", + "Error" ] }, - "ProvisioningInfoResults": { + "RebootActionResult": { "type": "object", "properties": { - "Results": { + "error": { + "$ref": "#/definitions/Error" + }, + "result": { + "type": "string" + } + }, + "additionalProperties": false + }, + "RebootActionResults": { + "type": "object", + "properties": { + "results": { "type": "array", "items": { - "$ref": "#/definitions/ProvisioningInfoResult" + "$ref": "#/definitions/RebootActionResult" } } }, + "additionalProperties": false + }, + "caveat": { + "type": "object", + "properties": { + "caveatId": { + "$ref": "#/definitions/packet" + }, + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" + } + }, "additionalProperties": false, "required": [ - "Results" + "location", + "caveatId", + "verificationId" ] }, - "SetStatus": { + "packet": { "type": "object", "properties": { - "Entities": { - "type": "array", - "items": { - "$ref": "#/definitions/EntityStatusArgs" - } + "headerLen": { + "type": "integer" + }, + "start": { + "type": "integer" + }, + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Entities" + "start", + "totalLen", + "headerLen" ] + } + } + } + }, + { + "Name": "RelationUnitsWatcher", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Next": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/RelationUnitsWatchResult" + } + } }, - "Settings": { + "Stop": { + "type": "object" + } + }, + "definitions": { + "Error": { "type": "object", "properties": { - "Ftp": { - "type": "string" - }, - "Http": { + "Code": { "type": "string" }, - "Https": { - "type": "string" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "NoProxy": { + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "Http", - "Https", - "Ftp", - "NoProxy" + "Message", + "Code" ] }, - "StatusResult": { + "ErrorInfo": { "type": "object", "properties": { - "Data": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } - }, - "Error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "Id": { + "MacaroonPath": { "type": "string" + } + }, + "additionalProperties": false + }, + "Macaroon": { + "type": "object", + "properties": { + "caveats": { + "type": "array", + "items": { + "$ref": "#/definitions/caveat" + } }, - "Info": { - "type": "string" + "data": { + "type": "array", + "items": { + "type": "integer" + } }, - "Life": { - "type": "string" + "id": { + "$ref": "#/definitions/packet" }, - "Since": { - "type": "string", - "format": "date-time" + "location": { + "$ref": "#/definitions/packet" }, - "Status": { - "type": "string" + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "Error", - "Id", - "Life", - "Status", - "Info", - "Data", - "Since" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "StatusResults": { + "RelationUnitsChange": { "type": "object", "properties": { - "Results": { + "Changed": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/UnitSettings" + } + } + }, + "Departed": { "type": "array", "items": { - "$ref": "#/definitions/StatusResult" + "type": "string" } } }, "additionalProperties": false, "required": [ - "Results" + "Changed", + "Departed" ] }, - "StringResult": { + "RelationUnitsWatchResult": { "type": "object", "properties": { + "Changes": { + "$ref": "#/definitions/RelationUnitsChange" + }, "Error": { "$ref": "#/definitions/Error" }, - "Result": { + "RelationUnitsWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "RelationUnitsWatcherId", + "Changes", + "Error" ] }, - "StringResults": { + "UnitSettings": { "type": "object", "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/StringResult" - } + "Version": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Results" + "Version" ] }, - "StringsResult": { + "caveat": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "caveatId": { + "$ref": "#/definitions/packet" }, - "Result": { - "type": "array", - "items": { - "type": "string" - } + "location": { + "$ref": "#/definitions/packet" + }, + "verificationId": { + "$ref": "#/definitions/packet" } }, "additionalProperties": false, "required": [ - "Error", - "Result" + "location", + "caveatId", + "verificationId" ] }, - "StringsWatchResult": { + "packet": { "type": "object", "properties": { - "Changes": { - "type": "array", - "items": { - "type": "string" - } + "headerLen": { + "type": "integer" }, - "Error": { - "$ref": "#/definitions/Error" + "start": { + "type": "integer" }, - "StringsWatcherId": { - "type": "string" + "totalLen": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "StringsWatcherId", - "Changes", - "Error" + "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" + } + } }, - "StringsWatchResults": { + "WatchRetryStrategy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/NotifyWatchResults" + } + } + } + }, + "definitions": { + "Entities": { "type": "object", "properties": { - "Results": { + "Entities": { "type": "array", "items": { - "$ref": "#/definitions/StringsWatchResult" + "$ref": "#/definitions/Entity" } } }, "additionalProperties": false, "required": [ - "Results" + "Entities" ] }, - "Tools": { + "Entity": { "type": "object", "properties": { - "sha256": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { + "Tag": { "type": "string" - }, - "version": { - "$ref": "#/definitions/Binary" } }, "additionalProperties": false, "required": [ - "version", - "url", - "size" + "Tag" ] }, - "ToolsResult": { + "Error": { "type": "object", "properties": { - "DisableSSLHostnameVerification": { - "type": "boolean" + "Code": { + "type": "string" }, - "Error": { - "$ref": "#/definitions/Error" + "Info": { + "$ref": "#/definitions/ErrorInfo" }, - "ToolsList": { - "type": "array", - "items": { - "$ref": "#/definitions/Tools" - } - } - }, - "additionalProperties": false, - "required": [ - "ToolsList", - "DisableSSLHostnameVerification", - "Error" - ] - }, - "ToolsResults": { - "type": "object", - "properties": { - "Results": { - "type": "array", - "items": { - "$ref": "#/definitions/ToolsResult" - } + "Message": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Results" + "Message", + "Code" ] }, - "UpdateBehavior": { + "ErrorInfo": { "type": "object", "properties": { - "EnableOSRefreshUpdate": { - "type": "boolean" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "EnableOSUpgrade": { - "type": "boolean" + "MacaroonPath": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "EnableOSRefreshUpdate", - "EnableOSUpgrade" - ] + "additionalProperties": false }, - "Value": { + "Macaroon": { "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": { + "caveats": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/caveat" } }, - "tags": { + "data": { "type": "array", "items": { - "type": "string" + "type": "integer" } }, - "virt-type": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Volume": { - "type": "object", - "properties": { - "info": { - "$ref": "#/definitions/VolumeInfo" + "id": { + "$ref": "#/definitions/packet" }, - "volumetag": { - "type": "string" + "location": { + "$ref": "#/definitions/packet" + }, + "sig": { + "type": "array", + "items": { + "type": "integer" + } } }, "additionalProperties": false, "required": [ - "volumetag", - "info" + "data", + "location", + "id", + "caveats", + "sig" ] }, - "VolumeAttachmentInfo": { - "type": "object", - "properties": { - "busaddress": { - "type": "string" - }, - "devicelink": { - "type": "string" - }, - "devicename": { - "type": "string" - }, - "read-only": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "VolumeAttachmentParams": { + "NotifyWatchResult": { "type": "object", "properties": { - "instanceid": { - "type": "string" - }, - "machinetag": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "read-only": { - "type": "boolean" - }, - "volumeid": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "volumetag": { + "NotifyWatcherId": { "type": "string" } }, "additionalProperties": false, "required": [ - "volumetag", - "machinetag", - "provider" + "NotifyWatcherId", + "Error" ] }, - "VolumeInfo": { + "NotifyWatchResults": { "type": "object", "properties": { - "hardwareid": { - "type": "string" - }, - "persistent": { - "type": "boolean" - }, - "size": { - "type": "integer" - }, - "volumeid": { - "type": "string" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/NotifyWatchResult" + } } }, "additionalProperties": false, "required": [ - "volumeid", - "size", - "persistent" + "Results" ] }, - "VolumeParams": { + "RetryStrategy": { "type": "object", "properties": { - "attachment": { - "$ref": "#/definitions/VolumeAttachmentParams" - }, - "attributes": { - "type": "object", - "patternProperties": { - ".*": { - "type": "object", - "additionalProperties": true - } - } + "JitterRetryTime": { + "type": "boolean" }, - "provider": { - "type": "string" + "MaxRetryTime": { + "type": "integer" }, - "size": { + "MinRetryTime": { "type": "integer" }, - "tags": { - "type": "object", - "patternProperties": { - ".*": { - "type": "string" - } - } + "RetryTimeFactor": { + "type": "integer" }, - "volumetag": { - "type": "string" + "ShouldRetry": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "volumetag", - "size", - "provider" + "ShouldRetry", + "MinRetryTime", + "MaxRetryTime", + "JitterRetryTime", + "RetryTimeFactor" ] }, - "WatchContainer": { + "RetryStrategyResult": { "type": "object", "properties": { - "ContainerType": { - "type": "string" + "Error": { + "$ref": "#/definitions/Error" }, - "MachineTag": { - "type": "string" + "Result": { + "$ref": "#/definitions/RetryStrategy" } }, "additionalProperties": false, "required": [ - "MachineTag", - "ContainerType" + "Error", + "Result" ] }, - "WatchContainers": { + "RetryStrategyResults": { "type": "object", "properties": { - "Params": { + "Results": { "type": "array", "items": { - "$ref": "#/definitions/WatchContainer" + "$ref": "#/definitions/RetryStrategyResult" } } }, "additionalProperties": false, "required": [ - "Params" + "Results" ] }, "caveat": { @@ -16566,30 +16275,49 @@ } }, { - "Name": "ProxyUpdater", + "Name": "SSHClient", "Version": 1, "Schema": { "type": "object", "properties": { - "ProxyConfig": { + "PrivateAddress": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ProxyConfigResults" + "$ref": "#/definitions/SSHAddressResults" } } }, - "WatchForProxyConfigAndAPIHostPortChanges": { + "Proxy": { + "type": "object", + "properties": { + "Result": { + "$ref": "#/definitions/SSHProxyResult" + } + } + }, + "PublicAddress": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/NotifyWatchResults" + "$ref": "#/definitions/SSHAddressResults" + } + } + }, + "PublicKeys": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/SSHPublicKeysResults" } } } @@ -16690,93 +16418,73 @@ "sig" ] }, - "NotifyWatchResult": { + "SSHAddressResult": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" - }, - "NotifyWatcherId": { + "address": { "type": "string" + }, + "error": { + "$ref": "#/definitions/Error" } }, - "additionalProperties": false, - "required": [ - "NotifyWatcherId", - "Error" - ] + "additionalProperties": false }, - "NotifyWatchResults": { + "SSHAddressResults": { "type": "object", "properties": { - "Results": { + "results": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/SSHAddressResult" } } }, "additionalProperties": false, "required": [ - "Results" + "results" ] }, - "ProxyConfig": { + "SSHProxyResult": { "type": "object", "properties": { - "FTP": { - "type": "string" - }, - "HTTP": { - "type": "string" - }, - "HTTPS": { - "type": "string" - }, - "NoProxy": { - "type": "string" + "use-proxy": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "HTTP", - "HTTPS", - "FTP", - "NoProxy" + "use-proxy" ] }, - "ProxyConfigResult": { + "SSHPublicKeysResult": { "type": "object", "properties": { - "APTProxySettings": { - "$ref": "#/definitions/ProxyConfig" - }, - "Error": { + "error": { "$ref": "#/definitions/Error" }, - "ProxySettings": { - "$ref": "#/definitions/ProxyConfig" + "public-keys": { + "type": "array", + "items": { + "type": "string" + } } }, - "additionalProperties": false, - "required": [ - "ProxySettings", - "APTProxySettings" - ] + "additionalProperties": false }, - "ProxyConfigResults": { + "SSHPublicKeysResults": { "type": "object", "properties": { - "Results": { + "results": { "type": "array", "items": { - "$ref": "#/definitions/ProxyConfigResult" + "$ref": "#/definitions/SSHPublicKeysResult" } } }, "additionalProperties": false, "required": [ - "Results" + "results" ] }, "caveat": { @@ -16791,340 +16499,414 @@ "verificationId": { "$ref": "#/definitions/packet" } - }, - "additionalProperties": false, - "required": [ - "location", - "caveatId", - "verificationId" - ] + }, + "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": "Service", + "Version": 3, + "Schema": { + "type": "object", + "properties": { + "AddRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddRelation" + }, + "Result": { + "$ref": "#/definitions/AddRelationResults" + } + } + }, + "AddUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/AddServiceUnits" + }, + "Result": { + "$ref": "#/definitions/AddServiceUnitsResults" + } + } + }, + "CharmRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceCharmRelations" + }, + "Result": { + "$ref": "#/definitions/ServiceCharmRelationsResults" + } + } + }, + "Deploy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServicesDeploy" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, + "Destroy": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceDestroy" + } + } + }, + "DestroyRelation": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyRelation" + } + } + }, + "DestroyUnits": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/DestroyServiceUnits" + } + } + }, + "Expose": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceExpose" + } + } + }, + "Get": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceGet" + }, + "Result": { + "$ref": "#/definitions/ServiceGetResults" + } + } + }, + "GetCharmURL": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceGet" + }, + "Result": { + "$ref": "#/definitions/StringResult" + } + } + }, + "GetConstraints": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/GetServiceConstraints" + }, + "Result": { + "$ref": "#/definitions/GetConstraintsResults" + } + } + }, + "Set": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceSet" + } + } + }, + "SetCharm": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/ServiceSetCharm" + } + } }, - "packet": { + "SetConstraints": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" - }, - "totalLen": { - "type": "integer" + "Params": { + "$ref": "#/definitions/SetConstraints" } - }, - "additionalProperties": false, - "required": [ - "start", - "totalLen", - "headerLen" - ] - } - } - } - }, - { - "Name": "Reboot", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ClearReboot": { + } + }, + "SetMetricCredentials": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" + "$ref": "#/definitions/ServiceMetricCredentials" }, "Result": { "$ref": "#/definitions/ErrorResults" } } }, - "GetRebootAction": { + "Unexpose": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/RebootActionResults" + "$ref": "#/definitions/ServiceUnexpose" } } }, - "RequestReboot": { + "Unset": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/ServiceUnset" } } }, - "WatchForRebootEvent": { + "Update": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/NotifyWatchResult" + "Params": { + "$ref": "#/definitions/ServiceUpdate" } } } }, "definitions": { - "Entities": { + "AddRelation": { "type": "object", "properties": { - "Entities": { + "Endpoints": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "type": "string" } } }, "additionalProperties": false, "required": [ - "Entities" + "Endpoints" ] }, - "Entity": { + "AddRelationResults": { "type": "object", "properties": { - "Tag": { - "type": "string" + "Endpoints": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Relation" + } + } } }, "additionalProperties": false, "required": [ - "Tag" + "Endpoints" ] }, - "Error": { + "AddServiceUnits": { "type": "object", "properties": { - "Code": { - "type": "string" + "NumUnits": { + "type": "integer" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "Placement": { + "type": "array", + "items": { + "$ref": "#/definitions/Placement" + } }, - "Message": { + "ServiceName": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "ServiceName", + "NumUnits", + "Placement" ] }, - "ErrorInfo": { + "AddServiceUnitsResults": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { - "type": "string" + "Units": { + "type": "array", + "items": { + "type": "string" + } } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "Units" + ] }, - "ErrorResult": { + "Constraints": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Count": { + "type": "integer" + }, + "Pool": { + "type": "string" + }, + "Size": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "Error" + "Pool", + "Size", + "Count" ] }, - "ErrorResults": { + "DestroyRelation": { "type": "object", "properties": { - "Results": { + "Endpoints": { "type": "array", "items": { - "$ref": "#/definitions/ErrorResult" + "type": "string" } } }, "additionalProperties": false, "required": [ - "Results" + "Endpoints" ] }, - "Macaroon": { + "DestroyServiceUnits": { "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": { + "UnitNames": { "type": "array", "items": { - "type": "integer" + "type": "string" } } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "UnitNames" ] }, - "NotifyWatchResult": { + "Error": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "Code": { + "type": "string" }, - "NotifyWatcherId": { + "Info": { + "$ref": "#/definitions/ErrorInfo" + }, + "Message": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "Message", + "Code" ] }, - "RebootActionResult": { + "ErrorInfo": { "type": "object", "properties": { - "error": { - "$ref": "#/definitions/Error" + "Macaroon": { + "$ref": "#/definitions/Macaroon" }, - "result": { + "MacaroonPath": { "type": "string" } }, "additionalProperties": false }, - "RebootActionResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/RebootActionResult" - } - } - }, - "additionalProperties": false - }, - "caveat": { + "ErrorResult": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "verificationId": { - "$ref": "#/definitions/packet" + "Error": { + "$ref": "#/definitions/Error" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "Error" ] }, - "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": { + "ErrorResults": { "type": "object", "properties": { - "Result": { - "$ref": "#/definitions/RelationUnitsWatchResult" + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResult" + } } - } + }, + "additionalProperties": false, + "required": [ + "Results" + ] }, - "Stop": { - "type": "object" - } - }, - "definitions": { - "Error": { + "GetConstraintsResults": { "type": "object", "properties": { - "Code": { - "type": "string" - }, - "Info": { - "$ref": "#/definitions/ErrorInfo" - }, - "Message": { - "type": "string" + "Constraints": { + "$ref": "#/definitions/Value" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "Constraints" ] }, - "ErrorInfo": { + "GetServiceConstraints": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { + "ServiceName": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "ServiceName" + ] }, "Macaroon": { "type": "object", @@ -17163,18 +16945,70 @@ "sig" ] }, - "RelationUnitsChange": { + "Placement": { "type": "object", "properties": { - "Changed": { - "type": "object", - "patternProperties": { - ".*": { - "$ref": "#/definitions/UnitSettings" - } - } + "Directive": { + "type": "string" }, - "Departed": { + "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" + ] + }, + "ServiceCharmRelations": { + "type": "object", + "properties": { + "ServiceName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ServiceName" + ] + }, + "ServiceCharmRelationsResults": { + "type": "object", + "properties": { + "CharmRelations": { "type": "array", "items": { "type": "string" @@ -17183,289 +17017,361 @@ }, "additionalProperties": false, "required": [ - "Changed", - "Departed" + "CharmRelations" ] }, - "RelationUnitsWatchResult": { + "ServiceDeploy": { "type": "object", "properties": { - "Changes": { - "$ref": "#/definitions/RelationUnitsChange" + "Channel": { + "type": "string" }, - "Error": { - "$ref": "#/definitions/Error" + "CharmUrl": { + "type": "string" }, - "RelationUnitsWatcherId": { + "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" + }, + "ServiceName": { + "type": "string" + }, + "Storage": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/Constraints" + } + } } }, "additionalProperties": false, "required": [ - "RelationUnitsWatcherId", - "Changes", - "Error" + "ServiceName", + "Series", + "CharmUrl", + "Channel", + "NumUnits", + "Config", + "ConfigYAML", + "Constraints", + "Placement", + "Storage", + "EndpointBindings", + "Resources" ] }, - "UnitSettings": { + "ServiceDestroy": { "type": "object", "properties": { - "Version": { - "type": "integer" + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "Version" + "ServiceName" ] }, - "caveat": { + "ServiceExpose": { "type": "object", "properties": { - "caveatId": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "verificationId": { - "$ref": "#/definitions/packet" + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "location", - "caveatId", - "verificationId" + "ServiceName" ] }, - "packet": { + "ServiceGet": { "type": "object", "properties": { - "headerLen": { - "type": "integer" - }, - "start": { - "type": "integer" - }, - "totalLen": { - "type": "integer" + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "start", - "totalLen", - "headerLen" + "ServiceName" ] - } - } - } - }, - { - "Name": "Resumer", - "Version": 2, - "Schema": { - "type": "object", - "properties": { - "ResumeTransactions": { - "type": "object" - } - } - } - }, - { - "Name": "RetryStrategy", - "Version": 1, - "Schema": { - "type": "object", - "properties": { - "RetryStrategy": { + }, + "ServiceGetResults": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "Charm": { + "type": "string" }, - "Result": { - "$ref": "#/definitions/RetryStrategyResults" + "Config": { + "type": "object", + "patternProperties": { + ".*": { + "type": "object", + "additionalProperties": true + } + } + }, + "Constraints": { + "$ref": "#/definitions/Value" + }, + "Service": { + "type": "string" } - } + }, + "additionalProperties": false, + "required": [ + "Service", + "Charm", + "Config", + "Constraints" + ] }, - "WatchRetryStrategy": { + "ServiceMetricCredential": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" + "MetricCredentials": { + "type": "array", + "items": { + "type": "integer" + } }, - "Result": { - "$ref": "#/definitions/NotifyWatchResults" + "ServiceName": { + "type": "string" } - } - } - }, - "definitions": { - "Entities": { + }, + "additionalProperties": false, + "required": [ + "ServiceName", + "MetricCredentials" + ] + }, + "ServiceMetricCredentials": { "type": "object", "properties": { - "Entities": { + "Creds": { "type": "array", "items": { - "$ref": "#/definitions/Entity" + "$ref": "#/definitions/ServiceMetricCredential" } } }, "additionalProperties": false, "required": [ - "Entities" + "Creds" ] }, - "Entity": { + "ServiceSet": { "type": "object", "properties": { - "Tag": { + "Options": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "ServiceName": { "type": "string" } }, "additionalProperties": false, "required": [ - "Tag" + "ServiceName", + "Options" ] }, - "Error": { + "ServiceSetCharm": { "type": "object", "properties": { - "Code": { + "charmurl": { "type": "string" }, - "Info": { - "$ref": "#/definitions/ErrorInfo" + "cs-channel": { + "type": "string" }, - "Message": { + "forceseries": { + "type": "boolean" + }, + "forceunits": { + "type": "boolean" + }, + "resourceids": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "servicename": { "type": "string" } }, "additionalProperties": false, "required": [ - "Message", - "Code" + "servicename", + "charmurl", + "cs-channel", + "forceunits", + "forceseries", + "resourceids" ] }, - "ErrorInfo": { + "ServiceUnexpose": { "type": "object", "properties": { - "Macaroon": { - "$ref": "#/definitions/Macaroon" - }, - "MacaroonPath": { + "ServiceName": { "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "ServiceName" + ] }, - "Macaroon": { + "ServiceUnset": { "type": "object", "properties": { - "caveats": { - "type": "array", - "items": { - "$ref": "#/definitions/caveat" - } - }, - "data": { + "Options": { "type": "array", "items": { - "type": "integer" + "type": "string" } }, - "id": { - "$ref": "#/definitions/packet" - }, - "location": { - "$ref": "#/definitions/packet" - }, - "sig": { - "type": "array", - "items": { - "type": "integer" - } + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "data", - "location", - "id", - "caveats", - "sig" + "ServiceName", + "Options" ] }, - "NotifyWatchResult": { + "ServiceUpdate": { "type": "object", "properties": { - "Error": { - "$ref": "#/definitions/Error" + "CharmUrl": { + "type": "string" }, - "NotifyWatcherId": { + "Constraints": { + "$ref": "#/definitions/Value" + }, + "ForceCharmUrl": { + "type": "boolean" + }, + "ForceSeries": { + "type": "boolean" + }, + "MinUnits": { + "type": "integer" + }, + "ServiceName": { + "type": "string" + }, + "SettingsStrings": { + "type": "object", + "patternProperties": { + ".*": { + "type": "string" + } + } + }, + "SettingsYAML": { "type": "string" } }, "additionalProperties": false, "required": [ - "NotifyWatcherId", - "Error" + "ServiceName", + "CharmUrl", + "ForceCharmUrl", + "ForceSeries", + "MinUnits", + "SettingsStrings", + "SettingsYAML", + "Constraints" ] }, - "NotifyWatchResults": { + "ServicesDeploy": { "type": "object", "properties": { - "Results": { + "Services": { "type": "array", "items": { - "$ref": "#/definitions/NotifyWatchResult" + "$ref": "#/definitions/ServiceDeploy" } } }, "additionalProperties": false, "required": [ - "Results" + "Services" ] }, - "RetryStrategy": { + "SetConstraints": { "type": "object", "properties": { - "JitterRetryTime": { - "type": "boolean" - }, - "MaxRetryTime": { - "type": "integer" - }, - "MinRetryTime": { - "type": "integer" - }, - "RetryTimeFactor": { - "type": "integer" + "Constraints": { + "$ref": "#/definitions/Value" }, - "ShouldRetry": { - "type": "boolean" + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "ShouldRetry", - "MinRetryTime", - "MaxRetryTime", - "JitterRetryTime", - "RetryTimeFactor" + "ServiceName", + "Constraints" ] }, - "RetryStrategyResult": { + "StringResult": { "type": "object", "properties": { "Error": { "$ref": "#/definitions/Error" }, "Result": { - "$ref": "#/definitions/RetryStrategy" + "type": "string" } }, "additionalProperties": false, @@ -17474,20 +17380,47 @@ "Result" ] }, - "RetryStrategyResults": { + "Value": { "type": "object", "properties": { - "Results": { + "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": { - "$ref": "#/definitions/RetryStrategyResult" + "type": "string" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" } + }, + "virt-type": { + "type": "string" } }, - "additionalProperties": false, - "required": [ - "Results" - ] + "additionalProperties": false }, "caveat": { "type": "object", @@ -17525,57 +17458,35 @@ "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": { + "totalLen", + "headerLen" + ] + } + } + } + }, + { + "Name": "ServiceScaler", + "Version": 1, + "Schema": { + "type": "object", + "properties": { + "Rescale": { "type": "object", "properties": { "Params": { "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/SSHAddressResults" + "$ref": "#/definitions/ErrorResults" } } }, - "PublicKeys": { + "Watch": { "type": "object", "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, "Result": { - "$ref": "#/definitions/SSHPublicKeysResults" + "$ref": "#/definitions/StringsWatchResult" } } } @@ -17639,6 +17550,33 @@ }, "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": { @@ -17676,73 +17614,27 @@ "sig" ] }, - "SSHAddressResult": { - "type": "object", - "properties": { - "address": { - "type": "string" - }, - "error": { - "$ref": "#/definitions/Error" - } - }, - "additionalProperties": false - }, - "SSHAddressResults": { + "StringsWatchResult": { "type": "object", "properties": { - "results": { + "Changes": { "type": "array", "items": { - "$ref": "#/definitions/SSHAddressResult" + "type": "string" } - } - }, - "additionalProperties": false, - "required": [ - "results" - ] - }, - "SSHProxyResult": { - "type": "object", - "properties": { - "use-proxy": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "use-proxy" - ] - }, - "SSHPublicKeysResult": { - "type": "object", - "properties": { - "error": { + }, + "Error": { "$ref": "#/definitions/Error" }, - "public-keys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - }, - "SSHPublicKeysResults": { - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/SSHPublicKeysResult" - } + "StringsWatcherId": { + "type": "string" } }, "additionalProperties": false, "required": [ - "results" + "StringsWatcherId", + "Changes", + "Error" ] }, "caveat": { @@ -18329,17 +18221,13 @@ "StatusHistoryPruneArgs": { "type": "object", "properties": { - "MaxHistoryMB": { - "type": "integer" - }, - "MaxHistoryTime": { + "MaxLogsPerEntity": { "type": "integer" } }, "additionalProperties": false, "required": [ - "MaxHistoryTime", - "MaxHistoryMB" + "MaxLogsPerEntity" ] } } @@ -21641,7 +21529,7 @@ }, { "Name": "Uniter", - "Version": 4, + "Version": 3, "Schema": { "type": "object", "properties": { @@ -21705,28 +21593,6 @@ } } }, - "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": { @@ -22141,18 +22007,29 @@ } } }, - "SetAgentStatus": { + "ServiceOwner": { "type": "object", "properties": { "Params": { - "$ref": "#/definitions/SetStatus" + "$ref": "#/definitions/Entities" }, "Result": { - "$ref": "#/definitions/ErrorResults" + "$ref": "#/definitions/StringResults" + } + } + }, + "ServiceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/ServiceStatusResults" } } }, - "SetApplicationStatus": { + "SetAgentStatus": { "type": "object", "properties": { "Params": { @@ -22174,6 +22051,17 @@ } } }, + "SetServiceStatus": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/SetStatus" + }, + "Result": { + "$ref": "#/definitions/ErrorResults" + } + } + }, "SetStatus": { "type": "object", "properties": { @@ -22281,17 +22169,6 @@ } } }, - "WatchApplicationRelations": { - "type": "object", - "properties": { - "Params": { - "$ref": "#/definitions/Entities" - }, - "Result": { - "$ref": "#/definitions/StringsWatchResults" - } - } - }, "WatchConfigSettings": { "type": "object", "properties": { @@ -22344,6 +22221,17 @@ } } }, + "WatchServiceRelations": { + "type": "object", + "properties": { + "Params": { + "$ref": "#/definitions/Entities" + }, + "Result": { + "$ref": "#/definitions/StringsWatchResults" + } + } + }, "WatchStorageAttachments": { "type": "object", "properties": { @@ -22540,46 +22428,6 @@ "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": { @@ -22693,16 +22541,16 @@ "Endpoint": { "type": "object", "properties": { - "ApplicationName": { - "type": "string" - }, "Relation": { "$ref": "#/definitions/Relation" + }, + "ServiceName": { + "type": "string" } }, "additionalProperties": false, "required": [ - "ApplicationName", + "ServiceName", "Relation" ] }, @@ -23114,7 +22962,7 @@ "MergeLeadershipSettingsParam": { "type": "object", "properties": { - "ApplicationTag": { + "ServiceTag": { "type": "string" }, "Settings": { @@ -23128,7 +22976,7 @@ }, "additionalProperties": false, "required": [ - "ApplicationTag", + "ServiceTag", "Settings" ] }, @@ -23710,6 +23558,46 @@ "Results" ] }, + "ServiceStatusResult": { + "type": "object", + "properties": { + "Error": { + "$ref": "#/definitions/Error" + }, + "Service": { + "$ref": "#/definitions/StatusResult" + }, + "Units": { + "type": "object", + "patternProperties": { + ".*": { + "$ref": "#/definitions/StatusResult" + } + } + } + }, + "additionalProperties": false, + "required": [ + "Service", + "Units", + "Error" + ] + }, + "ServiceStatusResults": { + "type": "object", + "properties": { + "Results": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceStatusResult" + } + } + }, + "additionalProperties": false, + "required": [ + "Results" + ] + }, "SetStatus": { "type": "object", "properties": {