class Action(Type):
- _toSchema = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'}
- _toPy = {'receiver': 'receiver', 'tag': 'tag', 'parameters': 'parameters', 'name': 'name'}
+ _toSchema = {'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag', 'name': 'name'}
+ _toPy = {'parameters': 'parameters', 'receiver': 'receiver', 'tag': 'tag', 'name': 'name'}
def __init__(self, name=None, parameters=None, receiver=None, tag=None):
'''
name : str
class ActionResult(Type):
- _toSchema = {'action': 'action', 'completed': 'completed', 'output': 'output', 'status': 'status', 'started': 'started', 'message': 'message', 'enqueued': 'enqueued', 'error': 'error'}
- _toPy = {'action': 'action', 'completed': 'completed', 'output': 'output', 'status': 'status', 'started': 'started', 'message': 'message', 'enqueued': 'enqueued', 'error': 'error'}
+ _toSchema = {'action': 'action', 'completed': 'completed', 'output': 'output', 'started': 'started', 'enqueued': 'enqueued', 'message': 'message', 'error': 'error', 'status': 'status'}
+ _toPy = {'action': 'action', 'completed': 'completed', 'output': 'output', 'started': 'started', 'enqueued': 'enqueued', 'message': 'message', 'error': 'error', 'status': 'status'}
def __init__(self, action=None, completed=None, enqueued=None, error=None, message=None, output=None, started=None, status=None):
'''
action : Action
self.results = [ActionResult.from_json(o) for o in results or []]
+class ActionSpec(Type):
+ _toSchema = {'description': 'Description', 'params': 'Params'}
+ _toPy = {'Description': 'description', 'Params': 'params'}
+ def __init__(self, description=None, params=None):
+ '''
+ description : str
+ params : typing.Mapping[str, typing.Any]
+ '''
+ self.description = description
+ self.params = params
+
+
class Actions(Type):
- _toSchema = {'actions': 'actions'}
- _toPy = {'actions': 'actions'}
- def __init__(self, actions=None):
+ _toSchema = {'actionspecs': 'ActionSpecs'}
+ _toPy = {'ActionSpecs': 'actionspecs'}
+ def __init__(self, actionspecs=None):
'''
- actions : typing.Sequence[~Action]
+ actionspecs : typing.Mapping[str, ~ActionSpec]
'''
- self.actions = [Action.from_json(o) for o in actions or []]
+ self.actionspecs = {k: ActionSpec.from_json(v) for k, v in (actionspecs or dict()).items()}
class ActionsByName(Type):
- _toSchema = {'actions': 'actions', 'error': 'error', 'name': 'name'}
- _toPy = {'actions': 'actions', 'error': 'error', 'name': 'name'}
+ _toSchema = {'name': 'name', 'actions': 'actions', 'error': 'error'}
+ _toPy = {'name': 'name', 'actions': 'actions', 'error': 'error'}
def __init__(self, actions=None, error=None, name=None):
'''
actions : typing.Sequence[~ActionResult]
class ActionsByReceiver(Type):
- _toSchema = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'}
- _toPy = {'actions': 'actions', 'receiver': 'receiver', 'error': 'error'}
+ _toSchema = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'}
+ _toPy = {'receiver': 'receiver', 'actions': 'actions', 'error': 'error'}
def __init__(self, actions=None, error=None, receiver=None):
'''
actions : typing.Sequence[~ActionResult]
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'}
class Error(Type):
- _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'}
- _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'}
+ _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'}
+ _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'}
def __init__(self, code=None, info=None, message=None):
'''
code : str
class ErrorInfo(Type):
_toSchema = {'macaroonpath': 'MacaroonPath', 'macaroon': 'Macaroon'}
- _toPy = {'MacaroonPath': 'macaroonpath', 'Macaroon': 'macaroon'}
+ _toPy = {'Macaroon': 'macaroon', 'MacaroonPath': 'macaroonpath'}
def __init__(self, macaroon=None, macaroonpath=None):
'''
macaroon : Macaroon
class Macaroon(Type):
- _toSchema = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id_': 'id', 'data': 'data'}
- _toPy = {'location': 'location', 'caveats': 'caveats', 'sig': 'sig', 'id': 'id_', 'data': 'data'}
+ _toSchema = {'caveats': 'caveats', 'location': 'location', 'data': 'data', 'id_': 'id', 'sig': 'sig'}
+ _toPy = {'caveats': 'caveats', 'location': 'location', 'data': 'data', 'sig': 'sig', 'id': 'id_'}
def __init__(self, caveats=None, data=None, id_=None, location=None, sig=None):
'''
caveats : typing.Sequence[~caveat]
class RunParams(Type):
- _toSchema = {'timeout': 'Timeout', 'machines': 'Machines', 'units': 'Units', 'services': 'Services', 'commands': 'Commands'}
- _toPy = {'Services': 'services', 'Units': 'units', 'Machines': 'machines', 'Commands': 'commands', 'Timeout': 'timeout'}
- def __init__(self, commands=None, machines=None, services=None, timeout=None, units=None):
+ _toSchema = {'units': 'Units', 'applications': 'Applications', 'commands': 'Commands', 'machines': 'Machines', 'timeout': 'Timeout'}
+ _toPy = {'Applications': 'applications', 'Commands': 'commands', 'Timeout': 'timeout', 'Units': 'units', 'Machines': 'machines'}
+ def __init__(self, applications=None, commands=None, machines=None, timeout=None, units=None):
'''
+ applications : typing.Sequence[str]
commands : str
machines : typing.Sequence[str]
- services : typing.Sequence[str]
timeout : int
units : typing.Sequence[str]
'''
+ self.applications = applications
self.commands = commands
self.machines = machines
- self.services = services
self.timeout = timeout
self.units = units
-class ServiceCharmActionsResult(Type):
- _toSchema = {'actions': 'actions', 'error': 'error', 'servicetag': 'servicetag'}
- _toPy = {'actions': 'actions', 'error': 'error', 'servicetag': 'servicetag'}
- def __init__(self, actions=None, error=None, servicetag=None):
- '''
- actions : Actions
- error : Error
- servicetag : str
- '''
- self.actions = Actions.from_json(actions) if actions else None
- self.error = Error.from_json(error) if error else None
- self.servicetag = servicetag
-
-
-class ServicesCharmActionsResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
- '''
- results : typing.Sequence[~ServiceCharmActionsResult]
- '''
- self.results = [ServiceCharmActionsResult.from_json(o) for o in results or []]
-
-
class caveat(Type):
- _toSchema = {'location': 'location', 'caveatid': 'caveatId', 'verificationid': 'verificationId'}
- _toPy = {'location': 'location', 'caveatId': 'caveatid', 'verificationId': 'verificationid'}
+ _toSchema = {'caveatid': 'caveatId', 'location': 'location', 'verificationid': 'verificationId'}
+ _toPy = {'verificationId': 'verificationid', 'location': 'location', 'caveatId': 'caveatid'}
def __init__(self, caveatid=None, location=None, verificationid=None):
'''
caveatid : packet
class packet(Type):
- _toSchema = {'headerlen': 'headerLen', 'start': 'start', 'totallen': 'totalLen'}
- _toPy = {'totalLen': 'totallen', 'headerLen': 'headerlen', 'start': 'start'}
+ _toSchema = {'start': 'start', 'totallen': 'totalLen', 'headerlen': 'headerLen'}
+ _toPy = {'start': 'start', 'totalLen': 'totallen', 'headerLen': 'headerlen'}
def __init__(self, headerlen=None, start=None, totallen=None):
'''
headerlen : int
class BoolResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class ErrorResult(Type):
- _toSchema = {'info': 'Info', 'message': 'Message', 'code': 'Code'}
- _toPy = {'Info': 'info', 'Code': 'code', 'Message': 'message'}
+ _toSchema = {'code': 'Code', 'message': 'Message', 'info': 'Info'}
+ _toPy = {'Code': 'code', 'Message': 'message', 'Info': 'info'}
def __init__(self, code=None, info=None, message=None):
'''
code : str
class AgentGetEntitiesResult(Type):
- _toSchema = {'containertype': 'ContainerType', 'error': 'Error', 'life': 'Life', 'jobs': 'Jobs'}
- _toPy = {'Error': 'error', 'Jobs': 'jobs', 'ContainerType': 'containertype', 'Life': 'life'}
+ _toSchema = {'jobs': 'Jobs', 'life': 'Life', 'error': 'Error', 'containertype': 'ContainerType'}
+ _toPy = {'Life': 'life', 'ContainerType': 'containertype', 'Error': 'error', 'Jobs': 'jobs'}
def __init__(self, containertype=None, error=None, jobs=None, life=None):
'''
containertype : str
class EntityPassword(Type):
_toSchema = {'password': 'Password', 'tag': 'Tag'}
- _toPy = {'Password': 'password', 'Tag': 'tag'}
+ _toPy = {'Tag': 'tag', 'Password': 'password'}
def __init__(self, password=None, tag=None):
'''
password : str
class NotifyWatchResult(Type):
- _toSchema = {'error': 'Error', 'notifywatcherid': 'NotifyWatcherId'}
- _toPy = {'Error': 'error', 'NotifyWatcherId': 'notifywatcherid'}
+ _toSchema = {'notifywatcherid': 'NotifyWatcherId', 'error': 'Error'}
+ _toPy = {'NotifyWatcherId': 'notifywatcherid', 'Error': 'error'}
def __init__(self, error=None, notifywatcherid=None):
'''
error : Error
class StateServingInfo(Type):
- _toSchema = {'sharedsecret': 'SharedSecret', 'caprivatekey': 'CAPrivateKey', 'stateport': 'StatePort', 'cert': 'Cert', 'apiport': 'APIPort', 'privatekey': 'PrivateKey', 'systemidentity': 'SystemIdentity'}
- _toPy = {'StatePort': 'stateport', 'APIPort': 'apiport', 'CAPrivateKey': 'caprivatekey', 'PrivateKey': 'privatekey', 'SystemIdentity': 'systemidentity', 'Cert': 'cert', 'SharedSecret': 'sharedsecret'}
+ _toSchema = {'apiport': 'APIPort', 'stateport': 'StatePort', 'cert': 'Cert', 'caprivatekey': 'CAPrivateKey', 'systemidentity': 'SystemIdentity', 'sharedsecret': 'SharedSecret', 'privatekey': 'PrivateKey'}
+ _toPy = {'SharedSecret': 'sharedsecret', 'CAPrivateKey': 'caprivatekey', 'Cert': 'cert', 'PrivateKey': 'privatekey', 'StatePort': 'stateport', 'SystemIdentity': 'systemidentity', 'APIPort': 'apiport'}
def __init__(self, apiport=None, caprivatekey=None, cert=None, privatekey=None, sharedsecret=None, stateport=None, systemidentity=None):
'''
apiport : int
class Delta(Type):
- _toSchema = {'removed': 'Removed', 'entity': 'Entity'}
+ _toSchema = {'entity': 'Entity', 'removed': 'Removed'}
_toPy = {'Removed': 'removed', 'Entity': 'entity'}
def __init__(self, entity=None, removed=None):
'''
class AnnotationsGetResult(Type):
- _toSchema = {'error': 'Error', 'entitytag': 'EntityTag', 'annotations': 'Annotations'}
- _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations', 'Error': 'error'}
+ _toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'Annotations': 'annotations', 'EntityTag': 'entitytag'}
def __init__(self, annotations=None, entitytag=None, error=None):
'''
annotations : typing.Mapping[str, str]
class EntityAnnotations(Type):
_toSchema = {'entitytag': 'EntityTag', 'annotations': 'Annotations'}
- _toPy = {'EntityTag': 'entitytag', 'Annotations': 'annotations'}
+ _toPy = {'Annotations': 'annotations', 'EntityTag': 'entitytag'}
def __init__(self, annotations=None, entitytag=None):
'''
annotations : typing.Mapping[str, str]
self.entitytag = entitytag
-class BackupsCreateArgs(Type):
- _toSchema = {'notes': 'Notes'}
- _toPy = {'Notes': 'notes'}
- def __init__(self, notes=None):
+class AddApplicationUnits(Type):
+ _toSchema = {'numunits': 'NumUnits', 'applicationname': 'ApplicationName', 'placement': 'Placement'}
+ _toPy = {'NumUnits': 'numunits', 'Placement': 'placement', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, numunits=None, placement=None):
'''
- notes : str
+ applicationname : str
+ numunits : int
+ placement : typing.Sequence[~Placement]
'''
- self.notes = notes
+ self.applicationname = applicationname
+ self.numunits = numunits
+ self.placement = [Placement.from_json(o) for o in placement or []]
-class BackupsInfoArgs(Type):
- _toSchema = {'id_': 'ID'}
- _toPy = {'ID': 'id_'}
- def __init__(self, id_=None):
+class AddApplicationUnitsResults(Type):
+ _toSchema = {'units': 'Units'}
+ _toPy = {'Units': 'units'}
+ def __init__(self, units=None):
'''
- id_ : str
+ units : typing.Sequence[str]
'''
- self.id_ = id_
+ self.units = units
-class BackupsListArgs(Type):
- _toSchema = {}
- _toPy = {}
- def __init__(self):
+class AddRelation(Type):
+ _toSchema = {'endpoints': 'Endpoints'}
+ _toPy = {'Endpoints': 'endpoints'}
+ def __init__(self, endpoints=None):
'''
-
+ endpoints : typing.Sequence[str]
'''
- pass
+ self.endpoints = endpoints
-class BackupsListResult(Type):
- _toSchema = {'list_': 'List'}
- _toPy = {'List': 'list_'}
- def __init__(self, list_=None):
+class AddRelationResults(Type):
+ _toSchema = {'endpoints': 'Endpoints'}
+ _toPy = {'Endpoints': 'endpoints'}
+ def __init__(self, endpoints=None):
'''
- list_ : typing.Sequence[~BackupsMetadataResult]
+ endpoints : typing.Mapping[str, ~Relation]
'''
- self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []]
+ self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()}
-class BackupsMetadataResult(Type):
- _toSchema = {'caprivatekey': 'CAPrivateKey', 'started': 'Started', 'finished': 'Finished', 'size': 'Size', 'stored': 'Stored', 'checksum': 'Checksum', 'model': 'Model', 'version': 'Version', 'cacert': 'CACert', 'machine': 'Machine', 'hostname': 'Hostname', 'notes': 'Notes', 'checksumformat': 'ChecksumFormat', 'id_': 'ID'}
- _toPy = {'Hostname': 'hostname', 'Stored': 'stored', 'CACert': 'cacert', 'Checksum': 'checksum', 'Started': 'started', 'Model': 'model', 'ChecksumFormat': 'checksumformat', 'Machine': 'machine', 'Version': 'version', 'CAPrivateKey': 'caprivatekey', 'Size': 'size', 'ID': 'id_', 'Finished': 'finished', 'Notes': 'notes'}
- def __init__(self, cacert=None, caprivatekey=None, checksum=None, checksumformat=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, size=None, started=None, stored=None, version=None):
+class ApplicationCharmRelations(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- cacert : str
- caprivatekey : str
- checksum : str
- checksumformat : str
- finished : str
- hostname : str
- id_ : str
- machine : str
- model : str
- notes : str
- size : int
- started : str
- stored : str
- version : Number
+ applicationname : str
'''
- self.cacert = cacert
- self.caprivatekey = caprivatekey
- self.checksum = checksum
- self.checksumformat = checksumformat
- self.finished = finished
- self.hostname = hostname
- self.id_ = id_
- self.machine = machine
- self.model = model
- self.notes = notes
- self.size = size
- self.started = started
- self.stored = stored
- self.version = Number.from_json(version) if version else None
+ self.applicationname = applicationname
-class BackupsRemoveArgs(Type):
- _toSchema = {'id_': 'ID'}
- _toPy = {'ID': 'id_'}
- def __init__(self, id_=None):
+class ApplicationCharmRelationsResults(Type):
+ _toSchema = {'charmrelations': 'CharmRelations'}
+ _toPy = {'CharmRelations': 'charmrelations'}
+ def __init__(self, charmrelations=None):
'''
- id_ : str
+ charmrelations : typing.Sequence[str]
'''
- self.id_ = id_
+ self.charmrelations = charmrelations
-class Number(Type):
- _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'}
- _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'}
- def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
+class ApplicationDeploy(Type):
+ _toSchema = {'resources': 'Resources', 'channel': 'Channel', 'numunits': 'NumUnits', 'charmurl': 'CharmUrl', 'endpointbindings': 'EndpointBindings', 'configyaml': 'ConfigYAML', 'series': 'Series', 'storage': 'Storage', 'placement': 'Placement', 'config': 'Config', 'constraints': 'Constraints', 'applicationname': 'ApplicationName'}
+ _toPy = {'Storage': 'storage', 'ApplicationName': 'applicationname', 'Channel': 'channel', 'CharmUrl': 'charmurl', 'Constraints': 'constraints', 'Config': 'config', 'ConfigYAML': 'configyaml', 'Resources': 'resources', 'EndpointBindings': 'endpointbindings', 'NumUnits': 'numunits', 'Placement': 'placement', 'Series': 'series'}
+ def __init__(self, applicationname=None, channel=None, charmurl=None, config=None, configyaml=None, constraints=None, endpointbindings=None, numunits=None, placement=None, resources=None, series=None, storage=None):
'''
- build : int
- major : int
- minor : int
- patch : int
- tag : str
+ applicationname : str
+ channel : str
+ charmurl : str
+ config : typing.Mapping[str, str]
+ configyaml : str
+ constraints : Value
+ endpointbindings : typing.Mapping[str, str]
+ numunits : int
+ placement : typing.Sequence[~Placement]
+ resources : typing.Mapping[str, str]
+ series : str
+ storage : typing.Mapping[str, ~Constraints]
'''
- self.build = build
- self.major = major
- self.minor = minor
- self.patch = patch
- self.tag = tag
+ self.applicationname = applicationname
+ self.channel = channel
+ self.charmurl = charmurl
+ self.config = config
+ self.configyaml = configyaml
+ self.constraints = Value.from_json(constraints) if constraints else None
+ self.endpointbindings = endpointbindings
+ self.numunits = numunits
+ self.placement = [Placement.from_json(o) for o in placement or []]
+ self.resources = resources
+ self.series = series
+ self.storage = {k: Constraints.from_json(v) for k, v in (storage or dict()).items()}
-class RestoreArgs(Type):
- _toSchema = {'backupid': 'BackupId'}
- _toPy = {'BackupId': 'backupid'}
- def __init__(self, backupid=None):
+class ApplicationDestroy(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- backupid : str
+ applicationname : str
'''
- self.backupid = backupid
+ self.applicationname = applicationname
-class Block(Type):
- _toSchema = {'message': 'message', 'type_': 'type', 'id_': 'id', 'tag': 'tag'}
- _toPy = {'message': 'message', 'id': 'id_', 'tag': 'tag', 'type': 'type_'}
- def __init__(self, id_=None, message=None, tag=None, type_=None):
+class ApplicationExpose(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- id_ : str
- message : str
- tag : str
- type_ : str
+ applicationname : str
'''
- self.id_ = id_
- self.message = message
- self.tag = tag
- self.type_ = type_
+ self.applicationname = applicationname
-class BlockResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
- def __init__(self, error=None, result=None):
+class ApplicationGet(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- error : Error
- result : Block
+ applicationname : str
'''
- self.error = Error.from_json(error) if error else None
- self.result = Block.from_json(result) if result else None
+ self.applicationname = applicationname
-class BlockResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class ApplicationGetResults(Type):
+ _toSchema = {'charm': 'Charm', 'config': 'Config', 'application': 'Application', 'constraints': 'Constraints'}
+ _toPy = {'Constraints': 'constraints', 'Charm': 'charm', 'Application': 'application', 'Config': 'config'}
+ def __init__(self, application=None, charm=None, config=None, constraints=None):
'''
- results : typing.Sequence[~BlockResult]
+ application : str
+ charm : str
+ config : typing.Mapping[str, typing.Any]
+ constraints : Value
'''
- self.results = [BlockResult.from_json(o) for o in results or []]
+ self.application = application
+ self.charm = charm
+ self.config = config
+ self.constraints = Value.from_json(constraints) if constraints else None
-class BlockSwitchParams(Type):
- _toSchema = {'message': 'message', 'type_': 'type'}
- _toPy = {'message': 'message', 'type': 'type_'}
- def __init__(self, message=None, type_=None):
+class ApplicationMetricCredential(Type):
+ _toSchema = {'metriccredentials': 'MetricCredentials', 'applicationname': 'ApplicationName'}
+ _toPy = {'MetricCredentials': 'metriccredentials', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, metriccredentials=None):
'''
- message : str
- type_ : str
+ applicationname : str
+ metriccredentials : typing.Sequence[int]
'''
- self.message = message
- self.type_ = type_
+ self.applicationname = applicationname
+ self.metriccredentials = metriccredentials
-class CharmInfo(Type):
- _toSchema = {'charmurl': 'CharmURL'}
- _toPy = {'CharmURL': 'charmurl'}
- def __init__(self, charmurl=None):
+class ApplicationMetricCredentials(Type):
+ _toSchema = {'creds': 'Creds'}
+ _toPy = {'Creds': 'creds'}
+ def __init__(self, creds=None):
'''
- charmurl : str
+ creds : typing.Sequence[~ApplicationMetricCredential]
'''
- self.charmurl = charmurl
+ self.creds = [ApplicationMetricCredential.from_json(o) for o in creds or []]
-class CharmsList(Type):
- _toSchema = {'names': 'Names'}
- _toPy = {'Names': 'names'}
- def __init__(self, names=None):
+class ApplicationSet(Type):
+ _toSchema = {'options': 'Options', 'applicationname': 'ApplicationName'}
+ _toPy = {'Options': 'options', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, options=None):
'''
- names : typing.Sequence[str]
+ applicationname : str
+ options : typing.Mapping[str, str]
'''
- self.names = names
+ self.applicationname = applicationname
+ self.options = options
-class CharmsListResult(Type):
- _toSchema = {'charmurls': 'CharmURLs'}
- _toPy = {'CharmURLs': 'charmurls'}
- def __init__(self, charmurls=None):
+class ApplicationSetCharm(Type):
+ _toSchema = {'forceseries': 'forceseries', 'charmurl': 'charmurl', 'resourceids': 'resourceids', 'forceunits': 'forceunits', 'cs_channel': 'cs-channel', 'applicationname': 'applicationname'}
+ _toPy = {'forceseries': 'forceseries', 'charmurl': 'charmurl', 'forceunits': 'forceunits', 'cs-channel': 'cs_channel', 'applicationname': 'applicationname', 'resourceids': 'resourceids'}
+ def __init__(self, applicationname=None, charmurl=None, cs_channel=None, forceseries=None, forceunits=None, resourceids=None):
'''
- charmurls : typing.Sequence[str]
+ applicationname : str
+ charmurl : str
+ cs_channel : str
+ forceseries : bool
+ forceunits : bool
+ resourceids : typing.Mapping[str, str]
'''
- self.charmurls = charmurls
+ self.applicationname = applicationname
+ self.charmurl = charmurl
+ self.cs_channel = cs_channel
+ self.forceseries = forceseries
+ self.forceunits = forceunits
+ self.resourceids = resourceids
-class IsMeteredResult(Type):
- _toSchema = {'metered': 'Metered'}
- _toPy = {'Metered': 'metered'}
- def __init__(self, metered=None):
+class ApplicationUnexpose(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- metered : bool
+ applicationname : str
'''
- self.metered = metered
+ self.applicationname = applicationname
-class APIHostPortsResult(Type):
- _toSchema = {'servers': 'Servers'}
- _toPy = {'Servers': 'servers'}
- def __init__(self, servers=None):
+class ApplicationUnset(Type):
+ _toSchema = {'options': 'Options', 'applicationname': 'ApplicationName'}
+ _toPy = {'Options': 'options', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, options=None):
'''
- servers : typing.Sequence[~HostPort]
+ applicationname : str
+ options : typing.Sequence[str]
'''
- self.servers = [HostPort.from_json(o) for o in servers or []]
+ self.applicationname = applicationname
+ self.options = options
-class AddCharm(Type):
- _toSchema = {'channel': 'Channel', 'url': 'URL'}
- _toPy = {'Channel': 'channel', 'URL': 'url'}
- def __init__(self, channel=None, url=None):
+class ApplicationUpdate(Type):
+ _toSchema = {'forceseries': 'ForceSeries', 'charmurl': 'CharmUrl', 'settingsyaml': 'SettingsYAML', 'constraints': 'Constraints', 'forcecharmurl': 'ForceCharmUrl', 'settingsstrings': 'SettingsStrings', 'applicationname': 'ApplicationName', 'minunits': 'MinUnits'}
+ _toPy = {'Constraints': 'constraints', 'SettingsYAML': 'settingsyaml', 'SettingsStrings': 'settingsstrings', 'ApplicationName': 'applicationname', 'MinUnits': 'minunits', 'ForceCharmUrl': 'forcecharmurl', 'CharmUrl': 'charmurl', 'ForceSeries': 'forceseries'}
+ def __init__(self, applicationname=None, charmurl=None, constraints=None, forcecharmurl=None, forceseries=None, minunits=None, settingsstrings=None, settingsyaml=None):
'''
- channel : str
- url : str
+ applicationname : str
+ charmurl : str
+ constraints : Value
+ forcecharmurl : bool
+ forceseries : bool
+ minunits : int
+ settingsstrings : typing.Mapping[str, str]
+ settingsyaml : str
'''
- self.channel = channel
- self.url = url
+ self.applicationname = applicationname
+ self.charmurl = charmurl
+ self.constraints = Value.from_json(constraints) if constraints else None
+ self.forcecharmurl = forcecharmurl
+ self.forceseries = forceseries
+ self.minunits = minunits
+ self.settingsstrings = settingsstrings
+ self.settingsyaml = settingsyaml
-class AddCharmWithAuthorization(Type):
- _toSchema = {'channel': 'Channel', 'charmstoremacaroon': 'CharmStoreMacaroon', 'url': 'URL'}
- _toPy = {'Channel': 'channel', 'CharmStoreMacaroon': 'charmstoremacaroon', 'URL': 'url'}
- def __init__(self, channel=None, charmstoremacaroon=None, url=None):
+class ApplicationsDeploy(Type):
+ _toSchema = {'applications': 'Applications'}
+ _toPy = {'Applications': 'applications'}
+ def __init__(self, applications=None):
'''
- channel : str
- charmstoremacaroon : Macaroon
- url : str
+ applications : typing.Sequence[~ApplicationDeploy]
'''
- self.channel = channel
- self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None
- self.url = url
+ self.applications = [ApplicationDeploy.from_json(o) for o in applications or []]
-class AddMachineParams(Type):
- _toSchema = {'parentid': 'ParentId', 'containertype': 'ContainerType', 'instanceid': 'InstanceId', 'disks': 'Disks', 'jobs': 'Jobs', 'placement': 'Placement', 'addrs': 'Addrs', 'nonce': 'Nonce', 'constraints': 'Constraints', 'series': 'Series', 'hardwarecharacteristics': 'HardwareCharacteristics'}
- _toPy = {'HardwareCharacteristics': 'hardwarecharacteristics', 'Constraints': 'constraints', 'InstanceId': 'instanceid', 'ContainerType': 'containertype', 'ParentId': 'parentid', 'Addrs': 'addrs', 'Placement': 'placement', 'Disks': 'disks', 'Nonce': 'nonce', 'Jobs': 'jobs', 'Series': 'series'}
- def __init__(self, addrs=None, constraints=None, containertype=None, disks=None, hardwarecharacteristics=None, instanceid=None, jobs=None, nonce=None, parentid=None, placement=None, series=None):
+class Constraints(Type):
+ _toSchema = {'pool': 'Pool', 'size': 'Size', 'count': 'Count'}
+ _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'}
+ def __init__(self, count=None, pool=None, size=None):
'''
- addrs : typing.Sequence[~Address]
- constraints : Value
- containertype : str
- disks : typing.Sequence[~Constraints]
- hardwarecharacteristics : HardwareCharacteristics
- instanceid : str
- jobs : typing.Sequence[str]
- nonce : str
- parentid : str
- placement : Placement
- series : str
+ count : int
+ pool : str
+ size : int
'''
- self.addrs = [Address.from_json(o) for o in addrs or []]
- self.constraints = Value.from_json(constraints) if constraints else None
- self.containertype = containertype
- self.disks = [Constraints.from_json(o) for o in disks or []]
- self.hardwarecharacteristics = HardwareCharacteristics.from_json(hardwarecharacteristics) if hardwarecharacteristics else None
- self.instanceid = instanceid
- self.jobs = jobs
- self.nonce = nonce
- self.parentid = parentid
- self.placement = Placement.from_json(placement) if placement else None
- self.series = series
+ self.count = count
+ self.pool = pool
+ self.size = size
-class AddMachines(Type):
- _toSchema = {'machineparams': 'MachineParams'}
- _toPy = {'MachineParams': 'machineparams'}
- def __init__(self, machineparams=None):
+class DestroyApplicationUnits(Type):
+ _toSchema = {'unitnames': 'UnitNames'}
+ _toPy = {'UnitNames': 'unitnames'}
+ def __init__(self, unitnames=None):
'''
- machineparams : typing.Sequence[~AddMachineParams]
+ unitnames : typing.Sequence[str]
'''
- self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []]
+ self.unitnames = unitnames
-class AddMachinesResult(Type):
- _toSchema = {'error': 'Error', 'machine': 'Machine'}
- _toPy = {'Error': 'error', 'Machine': 'machine'}
- def __init__(self, error=None, machine=None):
+class DestroyRelation(Type):
+ _toSchema = {'endpoints': 'Endpoints'}
+ _toPy = {'Endpoints': 'endpoints'}
+ def __init__(self, endpoints=None):
'''
- error : Error
- machine : str
+ endpoints : typing.Sequence[str]
'''
- self.error = Error.from_json(error) if error else None
- self.machine = machine
+ self.endpoints = endpoints
-class AddMachinesResults(Type):
- _toSchema = {'machines': 'Machines'}
- _toPy = {'Machines': 'machines'}
- def __init__(self, machines=None):
+class GetApplicationConstraints(Type):
+ _toSchema = {'applicationname': 'ApplicationName'}
+ _toPy = {'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None):
'''
- machines : typing.Sequence[~AddMachinesResult]
+ applicationname : str
'''
- self.machines = [AddMachinesResult.from_json(o) for o in machines or []]
+ self.applicationname = applicationname
-class Address(Type):
- _toSchema = {'spacename': 'SpaceName', 'value': 'Value', 'scope': 'Scope', 'type_': 'Type'}
- _toPy = {'SpaceName': 'spacename', 'Type': 'type_', 'Scope': 'scope', 'Value': 'value'}
- def __init__(self, scope=None, spacename=None, type_=None, value=None):
+class GetConstraintsResults(Type):
+ _toSchema = {'root_disk': 'root-disk', 'mem': 'mem', 'container': 'container', 'virt_type': 'virt-type', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'instance_type': 'instance-type'}
+ _toPy = {'spaces': 'spaces', 'container': 'container', 'cpu-cores': 'cpu_cores', 'instance-type': 'instance_type', 'mem': 'mem', 'cpu-power': 'cpu_power', 'tags': 'tags', 'arch': 'arch', 'root-disk': 'root_disk', 'virt-type': 'virt_type'}
+ def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None):
+ '''
+ arch : str
+ container : str
+ cpu_cores : int
+ cpu_power : int
+ instance_type : str
+ mem : int
+ root_disk : int
+ spaces : typing.Sequence[str]
+ tags : typing.Sequence[str]
+ virt_type : str
+ '''
+ self.arch = arch
+ self.container = container
+ self.cpu_cores = cpu_cores
+ self.cpu_power = cpu_power
+ self.instance_type = instance_type
+ self.mem = mem
+ self.root_disk = root_disk
+ self.spaces = spaces
+ self.tags = tags
+ self.virt_type = virt_type
+
+
+class Placement(Type):
+ _toSchema = {'directive': 'Directive', 'scope': 'Scope'}
+ _toPy = {'Directive': 'directive', 'Scope': 'scope'}
+ def __init__(self, directive=None, scope=None):
'''
+ directive : str
scope : str
- spacename : str
- type_ : str
- value : str
'''
+ self.directive = directive
self.scope = scope
- self.spacename = spacename
- self.type_ = type_
- self.value = value
-class AgentVersionResult(Type):
- _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'}
- _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'}
- def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
+class Relation(Type):
+ _toSchema = {'role': 'Role', 'limit': 'Limit', 'optional': 'Optional', 'name': 'Name', 'scope': 'Scope', 'interface': 'Interface'}
+ _toPy = {'Name': 'name', 'Role': 'role', 'Scope': 'scope', 'Limit': 'limit', 'Interface': 'interface', 'Optional': 'optional'}
+ def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None):
'''
- build : int
- major : int
- minor : int
- patch : int
- tag : str
+ interface : str
+ limit : int
+ name : str
+ optional : bool
+ role : str
+ scope : str
'''
- self.build = build
- self.major = major
- self.minor = minor
- self.patch = patch
- self.tag = tag
+ self.interface = interface
+ self.limit = limit
+ self.name = name
+ self.optional = optional
+ self.role = role
+ self.scope = scope
-class AllWatcherId(Type):
- _toSchema = {'allwatcherid': 'AllWatcherId'}
- _toPy = {'AllWatcherId': 'allwatcherid'}
- def __init__(self, allwatcherid=None):
+class SetConstraints(Type):
+ _toSchema = {'constraints': 'Constraints', 'applicationname': 'ApplicationName'}
+ _toPy = {'Constraints': 'constraints', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, constraints=None):
'''
- allwatcherid : str
+ applicationname : str
+ constraints : Value
'''
- self.allwatcherid = allwatcherid
+ self.applicationname = applicationname
+ self.constraints = Value.from_json(constraints) if constraints else None
-class Binary(Type):
- _toSchema = {'series': 'Series', 'arch': 'Arch', 'number': 'Number'}
- _toPy = {'Arch': 'arch', 'Number': 'number', 'Series': 'series'}
- def __init__(self, arch=None, number=None, series=None):
+class StringResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
+ def __init__(self, error=None, result=None):
+ '''
+ error : Error
+ result : str
+ '''
+ self.error = Error.from_json(error) if error else None
+ self.result = result
+
+
+class Value(Type):
+ _toSchema = {'root_disk': 'root-disk', 'mem': 'mem', 'container': 'container', 'virt_type': 'virt-type', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'instance_type': 'instance-type'}
+ _toPy = {'spaces': 'spaces', 'container': 'container', 'cpu-cores': 'cpu_cores', 'instance-type': 'instance_type', 'mem': 'mem', 'cpu-power': 'cpu_power', 'tags': 'tags', 'arch': 'arch', 'root-disk': 'root_disk', 'virt-type': 'virt_type'}
+ def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None):
'''
arch : str
- number : Number
- series : str
+ container : str
+ cpu_cores : int
+ cpu_power : int
+ instance_type : str
+ mem : int
+ root_disk : int
+ spaces : typing.Sequence[str]
+ tags : typing.Sequence[str]
+ virt_type : str
'''
self.arch = arch
- self.number = Number.from_json(number) if number else None
- self.series = series
+ self.container = container
+ self.cpu_cores = cpu_cores
+ self.cpu_power = cpu_power
+ self.instance_type = instance_type
+ self.mem = mem
+ self.root_disk = root_disk
+ self.spaces = spaces
+ self.tags = tags
+ self.virt_type = virt_type
-class BundleChangesChange(Type):
- _toSchema = {'requires': 'requires', 'args': 'args', 'id_': 'id', 'method': 'method'}
- _toPy = {'args': 'args', 'id': 'id_', 'method': 'method', 'requires': 'requires'}
- def __init__(self, args=None, id_=None, method=None, requires=None):
+class StringsWatchResult(Type):
+ _toSchema = {'changes': 'Changes', 'stringswatcherid': 'StringsWatcherId', 'error': 'Error'}
+ _toPy = {'Changes': 'changes', 'Error': 'error', 'StringsWatcherId': 'stringswatcherid'}
+ def __init__(self, changes=None, error=None, stringswatcherid=None):
+ '''
+ changes : typing.Sequence[str]
+ error : Error
+ stringswatcherid : str
+ '''
+ self.changes = changes
+ self.error = Error.from_json(error) if error else None
+ self.stringswatcherid = stringswatcherid
+
+
+class BackupsCreateArgs(Type):
+ _toSchema = {'notes': 'Notes'}
+ _toPy = {'Notes': 'notes'}
+ def __init__(self, notes=None):
+ '''
+ notes : str
+ '''
+ self.notes = notes
+
+
+class BackupsInfoArgs(Type):
+ _toSchema = {'id_': 'ID'}
+ _toPy = {'ID': 'id_'}
+ def __init__(self, id_=None):
'''
- args : typing.Sequence[typing.Any]
id_ : str
- method : str
- requires : typing.Sequence[str]
'''
- self.args = args
self.id_ = id_
- self.method = method
- self.requires = requires
-class Constraints(Type):
- _toSchema = {'pool': 'Pool', 'count': 'Count', 'size': 'Size'}
- _toPy = {'Pool': 'pool', 'Count': 'count', 'Size': 'size'}
- def __init__(self, count=None, pool=None, size=None):
+class BackupsListArgs(Type):
+ _toSchema = {}
+ _toPy = {}
+ def __init__(self):
'''
- count : int
- pool : str
- size : int
+
'''
- self.count = count
- self.pool = pool
- self.size = size
+ pass
-class DestroyMachines(Type):
- _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'}
- _toPy = {'MachineNames': 'machinenames', 'Force': 'force'}
- def __init__(self, force=None, machinenames=None):
+class BackupsListResult(Type):
+ _toSchema = {'list_': 'List'}
+ _toPy = {'List': 'list_'}
+ def __init__(self, list_=None):
'''
- force : bool
- machinenames : typing.Sequence[str]
+ list_ : typing.Sequence[~BackupsMetadataResult]
'''
- self.force = force
- self.machinenames = machinenames
+ self.list_ = [BackupsMetadataResult.from_json(o) for o in list_ or []]
-class DetailedStatus(Type):
- _toSchema = {'info': 'Info', 'status': 'Status', 'version': 'Version', 'data': 'Data', 'kind': 'Kind', 'since': 'Since', 'err': 'Err', 'life': 'Life'}
- _toPy = {'Status': 'status', 'Since': 'since', 'Version': 'version', 'Err': 'err', 'Info': 'info', 'Data': 'data', 'Life': 'life', 'Kind': 'kind'}
- def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None):
+class BackupsMetadataResult(Type):
+ _toSchema = {'checksumformat': 'ChecksumFormat', 'started': 'Started', 'stored': 'Stored', 'cacert': 'CACert', 'version': 'Version', 'machine': 'Machine', 'checksum': 'Checksum', 'series': 'Series', 'id_': 'ID', 'hostname': 'Hostname', 'size': 'Size', 'finished': 'Finished', 'caprivatekey': 'CAPrivateKey', 'model': 'Model', 'notes': 'Notes'}
+ _toPy = {'Finished': 'finished', 'ChecksumFormat': 'checksumformat', 'CAPrivateKey': 'caprivatekey', 'Started': 'started', 'ID': 'id_', 'Notes': 'notes', 'Stored': 'stored', 'Hostname': 'hostname', 'Model': 'model', 'Size': 'size', 'Checksum': 'checksum', 'Machine': 'machine', 'Version': 'version', 'CACert': 'cacert', 'Series': 'series'}
+ def __init__(self, cacert=None, caprivatekey=None, checksum=None, checksumformat=None, finished=None, hostname=None, id_=None, machine=None, model=None, notes=None, series=None, size=None, started=None, stored=None, version=None):
'''
- data : typing.Mapping[str, typing.Any]
- err : typing.Mapping[str, typing.Any]
- info : str
- kind : str
- life : str
- since : str
- status : str
- version : str
+ cacert : str
+ caprivatekey : str
+ checksum : str
+ checksumformat : str
+ finished : str
+ hostname : str
+ id_ : str
+ machine : str
+ model : str
+ notes : str
+ series : str
+ size : int
+ started : str
+ stored : str
+ version : Number
'''
- self.data = data
- self.err = err
- self.info = info
- self.kind = kind
- self.life = life
- self.since = since
- self.status = status
- self.version = version
+ self.cacert = cacert
+ self.caprivatekey = caprivatekey
+ self.checksum = checksum
+ self.checksumformat = checksumformat
+ self.finished = finished
+ self.hostname = hostname
+ self.id_ = id_
+ self.machine = machine
+ self.model = model
+ self.notes = notes
+ self.series = series
+ self.size = size
+ self.started = started
+ self.stored = stored
+ self.version = Number.from_json(version) if version else None
-class EndpointStatus(Type):
- _toSchema = {'role': 'Role', 'subordinate': 'Subordinate', 'servicename': 'ServiceName', 'name': 'Name'}
- _toPy = {'ServiceName': 'servicename', 'Subordinate': 'subordinate', 'Role': 'role', 'Name': 'name'}
- def __init__(self, name=None, role=None, servicename=None, subordinate=None):
+class BackupsRemoveArgs(Type):
+ _toSchema = {'id_': 'ID'}
+ _toPy = {'ID': 'id_'}
+ def __init__(self, id_=None):
'''
- name : str
- role : str
- servicename : str
- subordinate : bool
+ id_ : str
'''
- self.name = name
- self.role = role
- self.servicename = servicename
- self.subordinate = subordinate
+ self.id_ = id_
-class EntityStatus(Type):
- _toSchema = {'info': 'Info', 'status': 'Status', 'since': 'Since', 'data': 'Data'}
- _toPy = {'Info': 'info', 'Since': 'since', 'Status': 'status', 'Data': 'data'}
- def __init__(self, data=None, info=None, since=None, status=None):
+class Number(Type):
+ _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'}
+ _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'}
+ def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
'''
- data : typing.Mapping[str, typing.Any]
- info : str
- since : str
- status : str
+ build : int
+ major : int
+ minor : int
+ patch : int
+ tag : str
'''
- self.data = data
- self.info = info
- self.since = since
- self.status = status
+ self.build = build
+ self.major = major
+ self.minor = minor
+ self.patch = patch
+ self.tag = tag
-class FindToolsParams(Type):
- _toSchema = {'minorversion': 'MinorVersion', 'arch': 'Arch', 'number': 'Number', 'majorversion': 'MajorVersion', 'series': 'Series'}
- _toPy = {'Arch': 'arch', 'MinorVersion': 'minorversion', 'MajorVersion': 'majorversion', 'Number': 'number', 'Series': 'series'}
- def __init__(self, arch=None, majorversion=None, minorversion=None, number=None, series=None):
+class RestoreArgs(Type):
+ _toSchema = {'backupid': 'BackupId'}
+ _toPy = {'BackupId': 'backupid'}
+ def __init__(self, backupid=None):
'''
- arch : str
- majorversion : int
- minorversion : int
- number : Number
- series : str
+ backupid : str
'''
- self.arch = arch
- self.majorversion = majorversion
- self.minorversion = minorversion
- self.number = Number.from_json(number) if number else None
- self.series = series
+ self.backupid = backupid
-class FindToolsResult(Type):
- _toSchema = {'error': 'Error', 'list_': 'List'}
- _toPy = {'Error': 'error', 'List': 'list_'}
- def __init__(self, error=None, list_=None):
+class Block(Type):
+ _toSchema = {'type_': 'type', 'id_': 'id', 'message': 'message', 'tag': 'tag'}
+ _toPy = {'type': 'type_', 'id': 'id_', 'message': 'message', 'tag': 'tag'}
+ def __init__(self, id_=None, message=None, tag=None, type_=None):
+ '''
+ id_ : str
+ message : str
+ tag : str
+ type_ : str
+ '''
+ self.id_ = id_
+ self.message = message
+ self.tag = tag
+ self.type_ = type_
+
+
+class BlockResult(Type):
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
+ def __init__(self, error=None, result=None):
'''
error : Error
- list_ : typing.Sequence[~Tools]
+ result : Block
'''
self.error = Error.from_json(error) if error else None
- self.list_ = [Tools.from_json(o) for o in list_ or []]
+ self.result = Block.from_json(result) if result else None
-class FullStatus(Type):
- _toSchema = {'machines': 'Machines', 'modelname': 'ModelName', 'availableversion': 'AvailableVersion', 'relations': 'Relations', 'services': 'Services'}
- _toPy = {'Services': 'services', 'Relations': 'relations', 'AvailableVersion': 'availableversion', 'ModelName': 'modelname', 'Machines': 'machines'}
- def __init__(self, availableversion=None, machines=None, modelname=None, relations=None, services=None):
+class BlockResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
'''
- availableversion : str
- machines : typing.Mapping[str, ~MachineStatus]
- modelname : str
- relations : typing.Sequence[~RelationStatus]
- services : typing.Mapping[str, ~ServiceStatus]
+ results : typing.Sequence[~BlockResult]
'''
- self.availableversion = availableversion
- self.machines = {k: MachineStatus.from_json(v) for k, v in (machines or dict()).items()}
- self.modelname = modelname
- self.relations = [RelationStatus.from_json(o) for o in relations or []]
- self.services = {k: ServiceStatus.from_json(v) for k, v in (services or dict()).items()}
+ self.results = [BlockResult.from_json(o) for o in results or []]
-class GetBundleChangesParams(Type):
- _toSchema = {'yaml': 'yaml'}
- _toPy = {'yaml': 'yaml'}
- def __init__(self, yaml=None):
+class BlockSwitchParams(Type):
+ _toSchema = {'type_': 'type', 'message': 'message'}
+ _toPy = {'type': 'type_', 'message': 'message'}
+ def __init__(self, message=None, type_=None):
'''
- yaml : str
+ message : str
+ type_ : str
'''
- self.yaml = yaml
+ self.message = message
+ self.type_ = type_
-class GetBundleChangesResults(Type):
- _toSchema = {'errors': 'errors', 'changes': 'changes'}
- _toPy = {'errors': 'errors', 'changes': 'changes'}
- def __init__(self, changes=None, errors=None):
+class CharmInfo(Type):
+ _toSchema = {'charmurl': 'CharmURL'}
+ _toPy = {'CharmURL': 'charmurl'}
+ def __init__(self, charmurl=None):
'''
- changes : typing.Sequence[~BundleChangesChange]
- errors : typing.Sequence[str]
+ charmurl : str
'''
- self.changes = [BundleChangesChange.from_json(o) for o in changes or []]
- self.errors = errors
+ self.charmurl = charmurl
-class GetConstraintsResults(Type):
- _toSchema = {'virt_type': 'virt-type', 'mem': 'mem', 'container': 'container', 'instance_type': 'instance-type', 'root_disk': 'root-disk', 'tags': 'tags', 'arch': 'arch', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'spaces': 'spaces'}
- _toPy = {'instance-type': 'instance_type', 'root-disk': 'root_disk', 'cpu-power': 'cpu_power', 'mem': 'mem', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'virt-type': 'virt_type', 'container': 'container', 'cpu-cores': 'cpu_cores'}
- def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None):
+class CharmsList(Type):
+ _toSchema = {'names': 'Names'}
+ _toPy = {'Names': 'names'}
+ def __init__(self, names=None):
'''
- arch : str
- container : str
- cpu_cores : int
- cpu_power : int
- instance_type : str
- mem : int
- root_disk : int
- spaces : typing.Sequence[str]
- tags : typing.Sequence[str]
- virt_type : str
+ names : typing.Sequence[str]
'''
- self.arch = arch
- self.container = container
- self.cpu_cores = cpu_cores
- self.cpu_power = cpu_power
- self.instance_type = instance_type
- self.mem = mem
- self.root_disk = root_disk
- self.spaces = spaces
- self.tags = tags
- self.virt_type = virt_type
+ self.names = names
-class HardwareCharacteristics(Type):
- _toSchema = {'tags': 'Tags', 'rootdisk': 'RootDisk', 'arch': 'Arch', 'cpupower': 'CpuPower', 'availabilityzone': 'AvailabilityZone', 'cpucores': 'CpuCores', 'mem': 'Mem'}
- _toPy = {'RootDisk': 'rootdisk', 'Arch': 'arch', 'CpuCores': 'cpucores', 'Tags': 'tags', 'AvailabilityZone': 'availabilityzone', 'CpuPower': 'cpupower', 'Mem': 'mem'}
- def __init__(self, arch=None, availabilityzone=None, cpucores=None, cpupower=None, mem=None, rootdisk=None, tags=None):
+class CharmsListResult(Type):
+ _toSchema = {'charmurls': 'CharmURLs'}
+ _toPy = {'CharmURLs': 'charmurls'}
+ def __init__(self, charmurls=None):
'''
- arch : str
- availabilityzone : str
- cpucores : int
- cpupower : int
- mem : int
- rootdisk : int
- tags : typing.Sequence[str]
+ charmurls : typing.Sequence[str]
'''
- self.arch = arch
- self.availabilityzone = availabilityzone
- self.cpucores = cpucores
- self.cpupower = cpupower
- self.mem = mem
- self.rootdisk = rootdisk
- self.tags = tags
+ self.charmurls = charmurls
-class HostPort(Type):
- _toSchema = {'address': 'Address', 'port': 'Port'}
- _toPy = {'Port': 'port', 'Address': 'address'}
- def __init__(self, address=None, port=None):
+class IsMeteredResult(Type):
+ _toSchema = {'metered': 'Metered'}
+ _toPy = {'Metered': 'metered'}
+ def __init__(self, metered=None):
'''
- address : Address
- port : int
+ metered : bool
'''
- self.address = Address.from_json(address) if address else None
- self.port = port
+ self.metered = metered
-class MachineStatus(Type):
- _toSchema = {'series': 'Series', 'jobs': 'Jobs', 'instanceid': 'InstanceId', 'instancestatus': 'InstanceStatus', 'hasvote': 'HasVote', 'wantsvote': 'WantsVote', 'containers': 'Containers', 'agentstatus': 'AgentStatus', 'dnsname': 'DNSName', 'hardware': 'Hardware', 'id_': 'Id'}
- _toPy = {'AgentStatus': 'agentstatus', 'InstanceId': 'instanceid', 'HasVote': 'hasvote', 'Series': 'series', 'Hardware': 'hardware', 'DNSName': 'dnsname', 'WantsVote': 'wantsvote', 'Id': 'id_', 'Jobs': 'jobs', 'InstanceStatus': 'instancestatus', 'Containers': 'containers'}
- def __init__(self, agentstatus=None, containers=None, dnsname=None, hardware=None, hasvote=None, id_=None, instanceid=None, instancestatus=None, jobs=None, series=None, wantsvote=None):
+class APIHostPortsResult(Type):
+ _toSchema = {'servers': 'Servers'}
+ _toPy = {'Servers': 'servers'}
+ def __init__(self, servers=None):
'''
- agentstatus : DetailedStatus
- containers : typing.Mapping[str, ~MachineStatus]
- dnsname : str
- hardware : str
- hasvote : bool
- id_ : str
- instanceid : str
- instancestatus : DetailedStatus
- jobs : typing.Sequence[str]
- series : str
- wantsvote : bool
+ servers : typing.Sequence[~HostPort]
'''
- self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None
- self.containers = {k: MachineStatus.from_json(v) for k, v in (containers or dict()).items()}
- self.dnsname = dnsname
- self.hardware = hardware
- self.hasvote = hasvote
- self.id_ = id_
- self.instanceid = instanceid
- self.instancestatus = DetailedStatus.from_json(instancestatus) if instancestatus else None
- self.jobs = jobs
- self.series = series
- self.wantsvote = wantsvote
+ self.servers = [HostPort.from_json(o) for o in servers or []]
-class MeterStatus(Type):
- _toSchema = {'message': 'Message', 'color': 'Color'}
- _toPy = {'Message': 'message', 'Color': 'color'}
- def __init__(self, color=None, message=None):
- '''
- color : str
- message : str
- '''
- self.color = color
- self.message = message
-
-
-class ModelConfigResults(Type):
- _toSchema = {'config': 'Config'}
- _toPy = {'Config': 'config'}
- def __init__(self, config=None):
- '''
- config : typing.Mapping[str, typing.Any]
- '''
- self.config = config
-
-
-class ModelInfo(Type):
- _toSchema = {'users': 'Users', 'status': 'Status', 'serveruuid': 'ServerUUID', 'uuid': 'UUID', 'name': 'Name', 'providertype': 'ProviderType', 'defaultseries': 'DefaultSeries', 'ownertag': 'OwnerTag', 'life': 'Life'}
- _toPy = {'Status': 'status', 'UUID': 'uuid', 'OwnerTag': 'ownertag', 'Name': 'name', 'ServerUUID': 'serveruuid', 'DefaultSeries': 'defaultseries', 'Life': 'life', 'Users': 'users', 'ProviderType': 'providertype'}
- def __init__(self, defaultseries=None, life=None, name=None, ownertag=None, providertype=None, serveruuid=None, status=None, uuid=None, users=None):
+class AddCharm(Type):
+ _toSchema = {'url': 'URL', 'channel': 'Channel'}
+ _toPy = {'URL': 'url', 'Channel': 'channel'}
+ def __init__(self, channel=None, url=None):
'''
- defaultseries : str
- life : str
- name : str
- ownertag : str
- providertype : str
- serveruuid : str
- status : EntityStatus
- uuid : str
- users : typing.Sequence[~ModelUserInfo]
+ channel : str
+ url : str
'''
- self.defaultseries = defaultseries
- self.life = life
- self.name = name
- self.ownertag = ownertag
- self.providertype = providertype
- self.serveruuid = serveruuid
- self.status = EntityStatus.from_json(status) if status else None
- self.uuid = uuid
- self.users = [ModelUserInfo.from_json(o) for o in users or []]
+ self.channel = channel
+ self.url = url
-class ModelSet(Type):
- _toSchema = {'config': 'Config'}
- _toPy = {'Config': 'config'}
- def __init__(self, config=None):
+class AddCharmWithAuthorization(Type):
+ _toSchema = {'url': 'URL', 'channel': 'Channel', 'charmstoremacaroon': 'CharmStoreMacaroon'}
+ _toPy = {'URL': 'url', 'CharmStoreMacaroon': 'charmstoremacaroon', 'Channel': 'channel'}
+ def __init__(self, channel=None, charmstoremacaroon=None, url=None):
'''
- config : typing.Mapping[str, typing.Any]
+ channel : str
+ charmstoremacaroon : Macaroon
+ url : str
'''
- self.config = config
+ self.channel = channel
+ self.charmstoremacaroon = Macaroon.from_json(charmstoremacaroon) if charmstoremacaroon else None
+ self.url = url
-class ModelUnset(Type):
- _toSchema = {'keys': 'Keys'}
- _toPy = {'Keys': 'keys'}
- def __init__(self, keys=None):
+class AddMachineParams(Type):
+ _toSchema = {'jobs': 'Jobs', 'series': 'Series', 'hardwarecharacteristics': 'HardwareCharacteristics', 'nonce': 'Nonce', 'containertype': 'ContainerType', 'constraints': 'Constraints', 'disks': 'Disks', 'placement': 'Placement', 'instanceid': 'InstanceId', 'parentid': 'ParentId', 'addrs': 'Addrs'}
+ _toPy = {'Constraints': 'constraints', 'InstanceId': 'instanceid', 'ContainerType': 'containertype', 'Nonce': 'nonce', 'Disks': 'disks', 'Addrs': 'addrs', 'HardwareCharacteristics': 'hardwarecharacteristics', 'Series': 'series', 'ParentId': 'parentid', 'Placement': 'placement', 'Jobs': 'jobs'}
+ def __init__(self, addrs=None, constraints=None, containertype=None, disks=None, hardwarecharacteristics=None, instanceid=None, jobs=None, nonce=None, parentid=None, placement=None, series=None):
'''
- keys : typing.Sequence[str]
+ addrs : typing.Sequence[~Address]
+ constraints : Value
+ containertype : str
+ disks : typing.Sequence[~Constraints]
+ hardwarecharacteristics : HardwareCharacteristics
+ instanceid : str
+ jobs : typing.Sequence[str]
+ nonce : str
+ parentid : str
+ placement : Placement
+ series : str
'''
- self.keys = keys
+ self.addrs = [Address.from_json(o) for o in addrs or []]
+ self.constraints = Value.from_json(constraints) if constraints else None
+ self.containertype = containertype
+ self.disks = [Constraints.from_json(o) for o in disks or []]
+ self.hardwarecharacteristics = HardwareCharacteristics.from_json(hardwarecharacteristics) if hardwarecharacteristics else None
+ self.instanceid = instanceid
+ self.jobs = jobs
+ self.nonce = nonce
+ self.parentid = parentid
+ self.placement = Placement.from_json(placement) if placement else None
+ self.series = series
-class ModelUserInfo(Type):
- _toSchema = {'displayname': 'displayname', 'access': 'access', 'user': 'user', 'lastconnection': 'lastconnection'}
- _toPy = {'displayname': 'displayname', 'access': 'access', 'user': 'user', 'lastconnection': 'lastconnection'}
- def __init__(self, access=None, displayname=None, lastconnection=None, user=None):
+class AddMachines(Type):
+ _toSchema = {'machineparams': 'MachineParams'}
+ _toPy = {'MachineParams': 'machineparams'}
+ def __init__(self, machineparams=None):
'''
- access : str
- displayname : str
- lastconnection : str
- user : str
+ machineparams : typing.Sequence[~AddMachineParams]
'''
- self.access = access
- self.displayname = displayname
- self.lastconnection = lastconnection
- self.user = user
+ self.machineparams = [AddMachineParams.from_json(o) for o in machineparams or []]
-class ModelUserInfoResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
- def __init__(self, error=None, result=None):
+class AddMachinesResult(Type):
+ _toSchema = {'error': 'Error', 'machine': 'Machine'}
+ _toPy = {'Error': 'error', 'Machine': 'machine'}
+ def __init__(self, error=None, machine=None):
'''
error : Error
- result : ModelUserInfo
+ machine : str
'''
self.error = Error.from_json(error) if error else None
- self.result = ModelUserInfo.from_json(result) if result else None
+ self.machine = machine
-class ModelUserInfoResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class AddMachinesResults(Type):
+ _toSchema = {'machines': 'Machines'}
+ _toPy = {'Machines': 'machines'}
+ def __init__(self, machines=None):
'''
- results : typing.Sequence[~ModelUserInfoResult]
+ machines : typing.Sequence[~AddMachinesResult]
'''
- self.results = [ModelUserInfoResult.from_json(o) for o in results or []]
+ self.machines = [AddMachinesResult.from_json(o) for o in machines or []]
-class Placement(Type):
- _toSchema = {'scope': 'Scope', 'directive': 'Directive'}
- _toPy = {'Directive': 'directive', 'Scope': 'scope'}
- def __init__(self, directive=None, scope=None):
+class Address(Type):
+ _toSchema = {'value': 'Value', 'type_': 'Type', 'spacename': 'SpaceName', 'scope': 'Scope'}
+ _toPy = {'Value': 'value', 'Type': 'type_', 'SpaceName': 'spacename', 'Scope': 'scope'}
+ def __init__(self, scope=None, spacename=None, type_=None, value=None):
'''
- directive : str
scope : str
+ spacename : str
+ type_ : str
+ value : str
'''
- self.directive = directive
self.scope = scope
+ self.spacename = spacename
+ self.type_ = type_
+ self.value = value
-class PrivateAddress(Type):
- _toSchema = {'target': 'Target'}
- _toPy = {'Target': 'target'}
- def __init__(self, target=None):
+class AgentVersionResult(Type):
+ _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'}
+ _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'}
+ def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
'''
- target : str
+ build : int
+ major : int
+ minor : int
+ patch : int
+ tag : str
'''
- self.target = target
+ self.build = build
+ self.major = major
+ self.minor = minor
+ self.patch = patch
+ self.tag = tag
-class PrivateAddressResults(Type):
- _toSchema = {'privateaddress': 'PrivateAddress'}
- _toPy = {'PrivateAddress': 'privateaddress'}
- def __init__(self, privateaddress=None):
+class AllWatcherId(Type):
+ _toSchema = {'allwatcherid': 'AllWatcherId'}
+ _toPy = {'AllWatcherId': 'allwatcherid'}
+ def __init__(self, allwatcherid=None):
'''
- privateaddress : str
+ allwatcherid : str
'''
- self.privateaddress = privateaddress
+ self.allwatcherid = allwatcherid
-class ProvisioningScriptParams(Type):
- _toSchema = {'machineid': 'MachineId', 'disablepackagecommands': 'DisablePackageCommands', 'nonce': 'Nonce', 'datadir': 'DataDir'}
- _toPy = {'Nonce': 'nonce', 'DisablePackageCommands': 'disablepackagecommands', 'MachineId': 'machineid', 'DataDir': 'datadir'}
- def __init__(self, datadir=None, disablepackagecommands=None, machineid=None, nonce=None):
+class ApplicationStatus(Type):
+ _toSchema = {'charm': 'Charm', 'exposed': 'Exposed', 'err': 'Err', 'meterstatuses': 'MeterStatuses', 'relations': 'Relations', 'units': 'Units', 'life': 'Life', 'canupgradeto': 'CanUpgradeTo', 'subordinateto': 'SubordinateTo', 'status': 'Status'}
+ _toPy = {'Charm': 'charm', 'Err': 'err', 'Units': 'units', 'MeterStatuses': 'meterstatuses', 'CanUpgradeTo': 'canupgradeto', 'Status': 'status', 'SubordinateTo': 'subordinateto', 'Life': 'life', 'Relations': 'relations', 'Exposed': 'exposed'}
+ def __init__(self, canupgradeto=None, charm=None, err=None, exposed=None, life=None, meterstatuses=None, relations=None, status=None, subordinateto=None, units=None):
'''
- datadir : str
- disablepackagecommands : bool
- machineid : str
- nonce : str
+ canupgradeto : str
+ charm : str
+ err : typing.Mapping[str, typing.Any]
+ exposed : bool
+ life : str
+ meterstatuses : typing.Mapping[str, ~MeterStatus]
+ relations : typing.Sequence[str]
+ status : DetailedStatus
+ subordinateto : typing.Sequence[str]
+ units : typing.Mapping[str, ~UnitStatus]
'''
- self.datadir = datadir
- self.disablepackagecommands = disablepackagecommands
- self.machineid = machineid
- self.nonce = nonce
+ self.canupgradeto = canupgradeto
+ self.charm = charm
+ self.err = err
+ self.exposed = exposed
+ self.life = life
+ self.meterstatuses = {k: MeterStatus.from_json(v) for k, v in (meterstatuses or dict()).items()}
+ self.relations = relations
+ self.status = DetailedStatus.from_json(status) if status else None
+ self.subordinateto = subordinateto
+ self.units = {k: UnitStatus.from_json(v) for k, v in (units or dict()).items()}
-class ProvisioningScriptResult(Type):
- _toSchema = {'script': 'Script'}
- _toPy = {'Script': 'script'}
- def __init__(self, script=None):
+class Binary(Type):
+ _toSchema = {'number': 'Number', 'series': 'Series', 'arch': 'Arch'}
+ _toPy = {'Number': 'number', 'Arch': 'arch', 'Series': 'series'}
+ def __init__(self, arch=None, number=None, series=None):
'''
- script : str
+ arch : str
+ number : Number
+ series : str
'''
- self.script = script
+ self.arch = arch
+ self.number = Number.from_json(number) if number else None
+ self.series = series
-class PublicAddress(Type):
- _toSchema = {'target': 'Target'}
- _toPy = {'Target': 'target'}
- def __init__(self, target=None):
+class BundleChangesChange(Type):
+ _toSchema = {'method': 'method', 'args': 'args', 'requires': 'requires', 'id_': 'id'}
+ _toPy = {'method': 'method', 'id': 'id_', 'args': 'args', 'requires': 'requires'}
+ def __init__(self, args=None, id_=None, method=None, requires=None):
'''
- target : str
+ args : typing.Sequence[typing.Any]
+ id_ : str
+ method : str
+ requires : typing.Sequence[str]
'''
- self.target = target
+ self.args = args
+ self.id_ = id_
+ self.method = method
+ self.requires = requires
-class PublicAddressResults(Type):
- _toSchema = {'publicaddress': 'PublicAddress'}
- _toPy = {'PublicAddress': 'publicaddress'}
- def __init__(self, publicaddress=None):
+class DestroyMachines(Type):
+ _toSchema = {'force': 'Force', 'machinenames': 'MachineNames'}
+ _toPy = {'Force': 'force', 'MachineNames': 'machinenames'}
+ def __init__(self, force=None, machinenames=None):
'''
- publicaddress : str
+ force : bool
+ machinenames : typing.Sequence[str]
'''
- self.publicaddress = publicaddress
+ self.force = force
+ self.machinenames = machinenames
-class RelationStatus(Type):
- _toSchema = {'key': 'Key', 'interface': 'Interface', 'scope': 'Scope', 'endpoints': 'Endpoints', 'id_': 'Id'}
- _toPy = {'Key': 'key', 'Id': 'id_', 'Scope': 'scope', 'Interface': 'interface', 'Endpoints': 'endpoints'}
- def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None):
- '''
- endpoints : typing.Sequence[~EndpointStatus]
- id_ : int
- interface : str
- key : str
- scope : str
+class DetailedStatus(Type):
+ _toSchema = {'since': 'Since', 'data': 'Data', 'life': 'Life', 'version': 'Version', 'err': 'Err', 'kind': 'Kind', 'info': 'Info', 'status': 'Status'}
+ _toPy = {'Err': 'err', 'Data': 'data', 'Since': 'since', 'Status': 'status', 'Info': 'info', 'Life': 'life', 'Version': 'version', 'Kind': 'kind'}
+ def __init__(self, data=None, err=None, info=None, kind=None, life=None, since=None, status=None, version=None):
'''
- self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []]
- self.id_ = id_
- self.interface = interface
- self.key = key
- self.scope = scope
+ data : typing.Mapping[str, typing.Any]
+ err : typing.Mapping[str, typing.Any]
+ info : str
+ kind : str
+ life : str
+ since : str
+ status : str
+ version : str
+ '''
+ self.data = data
+ self.err = err
+ self.info = info
+ self.kind = kind
+ self.life = life
+ self.since = since
+ self.status = status
+ self.version = version
-class ResolveCharmResult(Type):
- _toSchema = {'error': 'Error', 'url': 'URL'}
- _toPy = {'Error': 'error', 'URL': 'url'}
- def __init__(self, error=None, url=None):
+class EndpointStatus(Type):
+ _toSchema = {'role': 'Role', 'subordinate': 'Subordinate', 'applicationname': 'ApplicationName', 'name': 'Name'}
+ _toPy = {'Subordinate': 'subordinate', 'Name': 'name', 'Role': 'role', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, name=None, role=None, subordinate=None):
'''
- error : str
- url : URL
+ applicationname : str
+ name : str
+ role : str
+ subordinate : bool
'''
- self.error = error
- self.url = URL.from_json(url) if url else None
+ self.applicationname = applicationname
+ self.name = name
+ self.role = role
+ self.subordinate = subordinate
-class ResolveCharmResults(Type):
- _toSchema = {'urls': 'URLs'}
- _toPy = {'URLs': 'urls'}
- def __init__(self, urls=None):
+class EntityStatus(Type):
+ _toSchema = {'since': 'Since', 'data': 'Data', 'info': 'Info', 'status': 'Status'}
+ _toPy = {'Since': 'since', 'Status': 'status', 'Data': 'data', 'Info': 'info'}
+ def __init__(self, data=None, info=None, since=None, status=None):
'''
- urls : typing.Sequence[~ResolveCharmResult]
+ data : typing.Mapping[str, typing.Any]
+ info : str
+ since : str
+ status : str
'''
- self.urls = [ResolveCharmResult.from_json(o) for o in urls or []]
+ self.data = data
+ self.info = info
+ self.since = since
+ self.status = status
-class ResolveCharms(Type):
- _toSchema = {'references': 'References'}
- _toPy = {'References': 'references'}
- def __init__(self, references=None):
+class FindToolsParams(Type):
+ _toSchema = {'minorversion': 'MinorVersion', 'number': 'Number', 'series': 'Series', 'arch': 'Arch', 'majorversion': 'MajorVersion'}
+ _toPy = {'Number': 'number', 'Series': 'series', 'Arch': 'arch', 'MinorVersion': 'minorversion', 'MajorVersion': 'majorversion'}
+ def __init__(self, arch=None, majorversion=None, minorversion=None, number=None, series=None):
'''
- references : typing.Sequence[~URL]
+ arch : str
+ majorversion : int
+ minorversion : int
+ number : Number
+ series : str
'''
- self.references = [URL.from_json(o) for o in references or []]
+ self.arch = arch
+ self.majorversion = majorversion
+ self.minorversion = minorversion
+ self.number = Number.from_json(number) if number else None
+ self.series = series
-class Resolved(Type):
- _toSchema = {'retry': 'Retry', 'unitname': 'UnitName'}
- _toPy = {'UnitName': 'unitname', 'Retry': 'retry'}
- def __init__(self, retry=None, unitname=None):
+class FindToolsResult(Type):
+ _toSchema = {'error': 'Error', 'list_': 'List'}
+ _toPy = {'List': 'list_', 'Error': 'error'}
+ def __init__(self, error=None, list_=None):
'''
- retry : bool
- unitname : str
+ error : Error
+ list_ : typing.Sequence[~Tools]
'''
- self.retry = retry
- self.unitname = unitname
+ self.error = Error.from_json(error) if error else None
+ self.list_ = [Tools.from_json(o) for o in list_ or []]
-class ServiceStatus(Type):
- _toSchema = {'units': 'Units', 'charm': 'Charm', 'relations': 'Relations', 'status': 'Status', 'exposed': 'Exposed', 'canupgradeto': 'CanUpgradeTo', 'meterstatuses': 'MeterStatuses', 'subordinateto': 'SubordinateTo', 'life': 'Life', 'err': 'Err'}
- _toPy = {'Status': 'status', 'Relations': 'relations', 'Exposed': 'exposed', 'Err': 'err', 'SubordinateTo': 'subordinateto', 'Charm': 'charm', 'CanUpgradeTo': 'canupgradeto', 'Units': 'units', 'Life': 'life', 'MeterStatuses': 'meterstatuses'}
- def __init__(self, canupgradeto=None, charm=None, err=None, exposed=None, life=None, meterstatuses=None, relations=None, status=None, subordinateto=None, units=None):
+class FullStatus(Type):
+ _toSchema = {'modelname': 'ModelName', 'availableversion': 'AvailableVersion', 'applications': 'Applications', 'relations': 'Relations', 'machines': 'Machines'}
+ _toPy = {'Applications': 'applications', 'Machines': 'machines', 'AvailableVersion': 'availableversion', 'ModelName': 'modelname', 'Relations': 'relations'}
+ def __init__(self, applications=None, availableversion=None, machines=None, modelname=None, relations=None):
'''
- canupgradeto : str
- charm : str
- err : typing.Mapping[str, typing.Any]
- exposed : bool
- life : str
- meterstatuses : typing.Mapping[str, ~MeterStatus]
- relations : typing.Sequence[str]
- status : DetailedStatus
- subordinateto : typing.Sequence[str]
- units : typing.Mapping[str, ~UnitStatus]
+ applications : typing.Mapping[str, ~ApplicationStatus]
+ availableversion : str
+ machines : typing.Mapping[str, ~MachineStatus]
+ modelname : str
+ relations : typing.Sequence[~RelationStatus]
'''
- self.canupgradeto = canupgradeto
- self.charm = charm
- self.err = err
- self.exposed = exposed
- self.life = life
- self.meterstatuses = {k: MeterStatus.from_json(v) for k, v in (meterstatuses or dict()).items()}
- self.relations = relations
- self.status = DetailedStatus.from_json(status) if status else None
- self.subordinateto = subordinateto
- self.units = {k: UnitStatus.from_json(v) for k, v in (units or dict()).items()}
+ self.applications = {k: ApplicationStatus.from_json(v) for k, v in (applications or dict()).items()}
+ self.availableversion = availableversion
+ self.machines = {k: MachineStatus.from_json(v) for k, v in (machines or dict()).items()}
+ self.modelname = modelname
+ self.relations = [RelationStatus.from_json(o) for o in relations or []]
-class SetConstraints(Type):
- _toSchema = {'constraints': 'Constraints', 'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints'}
- def __init__(self, constraints=None, servicename=None):
+class GetBundleChangesParams(Type):
+ _toSchema = {'yaml': 'yaml'}
+ _toPy = {'yaml': 'yaml'}
+ def __init__(self, yaml=None):
'''
- constraints : Value
- servicename : str
+ yaml : str
'''
- self.constraints = Value.from_json(constraints) if constraints else None
- self.servicename = servicename
+ self.yaml = yaml
-class SetModelAgentVersion(Type):
- _toSchema = {'minor': 'Minor', 'major': 'Major', 'tag': 'Tag', 'patch': 'Patch', 'build': 'Build'}
- _toPy = {'Tag': 'tag', 'Build': 'build', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'}
- def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
+class GetBundleChangesResults(Type):
+ _toSchema = {'changes': 'changes', 'errors': 'errors'}
+ _toPy = {'changes': 'changes', 'errors': 'errors'}
+ def __init__(self, changes=None, errors=None):
'''
- build : int
- major : int
- minor : int
- patch : int
- tag : str
+ changes : typing.Sequence[~BundleChangesChange]
+ errors : typing.Sequence[str]
'''
- self.build = build
- self.major = major
- self.minor = minor
- self.patch = patch
- self.tag = tag
+ self.changes = [BundleChangesChange.from_json(o) for o in changes or []]
+ self.errors = errors
-class StatusHistoryArgs(Type):
- _toSchema = {'kind': 'Kind', 'size': 'Size', 'name': 'Name'}
- _toPy = {'Size': 'size', 'Kind': 'kind', 'Name': 'name'}
- def __init__(self, kind=None, name=None, size=None):
+class HardwareCharacteristics(Type):
+ _toSchema = {'rootdisk': 'RootDisk', 'cpucores': 'CpuCores', 'mem': 'Mem', 'tags': 'Tags', 'arch': 'Arch', 'availabilityzone': 'AvailabilityZone', 'cpupower': 'CpuPower'}
+ _toPy = {'CpuPower': 'cpupower', 'RootDisk': 'rootdisk', 'AvailabilityZone': 'availabilityzone', 'Mem': 'mem', 'CpuCores': 'cpucores', 'Tags': 'tags', 'Arch': 'arch'}
+ def __init__(self, arch=None, availabilityzone=None, cpucores=None, cpupower=None, mem=None, rootdisk=None, tags=None):
'''
- kind : str
- name : str
- size : int
+ arch : str
+ availabilityzone : str
+ cpucores : int
+ cpupower : int
+ mem : int
+ rootdisk : int
+ tags : typing.Sequence[str]
'''
- self.kind = kind
- self.name = name
- self.size = size
+ self.arch = arch
+ self.availabilityzone = availabilityzone
+ self.cpucores = cpucores
+ self.cpupower = cpupower
+ self.mem = mem
+ self.rootdisk = rootdisk
+ self.tags = tags
-class StatusHistoryResults(Type):
- _toSchema = {'statuses': 'Statuses'}
- _toPy = {'Statuses': 'statuses'}
- def __init__(self, statuses=None):
+class History(Type):
+ _toSchema = {'error': 'Error', 'statuses': 'Statuses'}
+ _toPy = {'Error': 'error', 'Statuses': 'statuses'}
+ def __init__(self, error=None, statuses=None):
'''
+ error : Error
statuses : typing.Sequence[~DetailedStatus]
'''
+ self.error = Error.from_json(error) if error else None
self.statuses = [DetailedStatus.from_json(o) for o in statuses or []]
-class StatusParams(Type):
- _toSchema = {'patterns': 'Patterns'}
- _toPy = {'Patterns': 'patterns'}
- def __init__(self, patterns=None):
+class HostPort(Type):
+ _toSchema = {'address': 'Address', 'port': 'Port'}
+ _toPy = {'Port': 'port', 'Address': 'address'}
+ def __init__(self, address=None, port=None):
'''
- patterns : typing.Sequence[str]
+ address : Address
+ port : int
'''
- self.patterns = patterns
+ self.address = Address.from_json(address) if address else None
+ self.port = port
-class Tools(Type):
- _toSchema = {'url': 'url', 'version': 'version', 'size': 'size', 'sha256': 'sha256'}
- _toPy = {'url': 'url', 'version': 'version', 'size': 'size', 'sha256': 'sha256'}
- def __init__(self, sha256=None, size=None, url=None, version=None):
+class MachineStatus(Type):
+ _toSchema = {'dnsname': 'DNSName', 'hardware': 'Hardware', 'series': 'Series', 'id_': 'Id', 'hasvote': 'HasVote', 'jobs': 'Jobs', 'containers': 'Containers', 'agentstatus': 'AgentStatus', 'instanceid': 'InstanceId', 'wantsvote': 'WantsVote', 'instancestatus': 'InstanceStatus'}
+ _toPy = {'AgentStatus': 'agentstatus', 'InstanceId': 'instanceid', 'Hardware': 'hardware', 'HasVote': 'hasvote', 'Containers': 'containers', 'Id': 'id_', 'WantsVote': 'wantsvote', 'Series': 'series', 'DNSName': 'dnsname', 'InstanceStatus': 'instancestatus', 'Jobs': 'jobs'}
+ def __init__(self, agentstatus=None, containers=None, dnsname=None, hardware=None, hasvote=None, id_=None, instanceid=None, instancestatus=None, jobs=None, series=None, wantsvote=None):
'''
- sha256 : str
- size : int
- url : str
- version : Binary
+ agentstatus : DetailedStatus
+ containers : typing.Mapping[str, ~MachineStatus]
+ dnsname : str
+ hardware : str
+ hasvote : bool
+ id_ : str
+ instanceid : str
+ instancestatus : DetailedStatus
+ jobs : typing.Sequence[str]
+ series : str
+ wantsvote : bool
'''
- self.sha256 = sha256
- self.size = size
- self.url = url
- self.version = Binary.from_json(version) if version else None
+ self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None
+ self.containers = {k: MachineStatus.from_json(v) for k, v in (containers or dict()).items()}
+ self.dnsname = dnsname
+ self.hardware = hardware
+ self.hasvote = hasvote
+ self.id_ = id_
+ self.instanceid = instanceid
+ self.instancestatus = DetailedStatus.from_json(instancestatus) if instancestatus else None
+ self.jobs = jobs
+ self.series = series
+ self.wantsvote = wantsvote
-class URL(Type):
- _toSchema = {'series': 'Series', 'channel': 'Channel', 'schema': 'Schema', 'revision': 'Revision', 'name': 'Name', 'user': 'User'}
- _toPy = {'Schema': 'schema', 'Name': 'name', 'Channel': 'channel', 'User': 'user', 'Revision': 'revision', 'Series': 'series'}
- def __init__(self, channel=None, name=None, revision=None, schema=None, series=None, user=None):
+class MeterStatus(Type):
+ _toSchema = {'color': 'Color', 'message': 'Message'}
+ _toPy = {'Message': 'message', 'Color': 'color'}
+ def __init__(self, color=None, message=None):
'''
- channel : str
- name : str
- revision : int
- schema : str
- series : str
- user : str
+ color : str
+ message : str
'''
- self.channel = channel
- self.name = name
- self.revision = revision
- self.schema = schema
- self.series = series
- self.user = user
+ self.color = color
+ self.message = message
-class UnitStatus(Type):
- _toSchema = {'charm': 'Charm', 'subordinates': 'Subordinates', 'workloadstatus': 'WorkloadStatus', 'machine': 'Machine', 'openedports': 'OpenedPorts', 'agentstatus': 'AgentStatus', 'publicaddress': 'PublicAddress'}
- _toPy = {'AgentStatus': 'agentstatus', 'Machine': 'machine', 'Charm': 'charm', 'Subordinates': 'subordinates', 'PublicAddress': 'publicaddress', 'WorkloadStatus': 'workloadstatus', 'OpenedPorts': 'openedports'}
- def __init__(self, agentstatus=None, charm=None, machine=None, openedports=None, publicaddress=None, subordinates=None, workloadstatus=None):
+class ModelConfigResults(Type):
+ _toSchema = {'config': 'Config'}
+ _toPy = {'Config': 'config'}
+ def __init__(self, config=None):
'''
- agentstatus : DetailedStatus
- charm : str
- machine : str
- openedports : typing.Sequence[str]
- publicaddress : str
- subordinates : typing.Mapping[str, ~UnitStatus]
- workloadstatus : DetailedStatus
+ config : typing.Mapping[str, typing.Any]
'''
- self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None
- self.charm = charm
- self.machine = machine
- self.openedports = openedports
- self.publicaddress = publicaddress
- self.subordinates = {k: UnitStatus.from_json(v) for k, v in (subordinates or dict()).items()}
- self.workloadstatus = DetailedStatus.from_json(workloadstatus) if workloadstatus else None
+ self.config = config
-class Value(Type):
- _toSchema = {'virt_type': 'virt-type', 'mem': 'mem', 'container': 'container', 'instance_type': 'instance-type', 'root_disk': 'root-disk', 'tags': 'tags', 'arch': 'arch', 'cpu_power': 'cpu-power', 'cpu_cores': 'cpu-cores', 'spaces': 'spaces'}
- _toPy = {'instance-type': 'instance_type', 'root-disk': 'root_disk', 'cpu-power': 'cpu_power', 'mem': 'mem', 'tags': 'tags', 'arch': 'arch', 'spaces': 'spaces', 'virt-type': 'virt_type', 'container': 'container', 'cpu-cores': 'cpu_cores'}
- def __init__(self, arch=None, container=None, cpu_cores=None, cpu_power=None, instance_type=None, mem=None, root_disk=None, spaces=None, tags=None, virt_type=None):
+class ModelInfo(Type):
+ _toSchema = {'uuid': 'UUID', 'cloud': 'Cloud', 'life': 'Life', 'users': 'Users', 'name': 'Name', 'serveruuid': 'ServerUUID', 'defaultseries': 'DefaultSeries', 'ownertag': 'OwnerTag', 'providertype': 'ProviderType', 'status': 'Status'}
+ _toPy = {'OwnerTag': 'ownertag', 'Cloud': 'cloud', 'DefaultSeries': 'defaultseries', 'Name': 'name', 'UUID': 'uuid', 'Status': 'status', 'ServerUUID': 'serveruuid', 'Users': 'users', 'Life': 'life', 'ProviderType': 'providertype'}
+ def __init__(self, cloud=None, defaultseries=None, life=None, name=None, ownertag=None, providertype=None, serveruuid=None, status=None, uuid=None, users=None):
'''
- arch : str
- container : str
- cpu_cores : int
- cpu_power : int
- instance_type : str
- mem : int
- root_disk : int
- spaces : typing.Sequence[str]
- tags : typing.Sequence[str]
- virt_type : str
+ cloud : str
+ defaultseries : str
+ life : str
+ name : str
+ ownertag : str
+ providertype : str
+ serveruuid : str
+ status : EntityStatus
+ uuid : str
+ users : typing.Sequence[~ModelUserInfo]
'''
- self.arch = arch
- self.container = container
- self.cpu_cores = cpu_cores
- self.cpu_power = cpu_power
- self.instance_type = instance_type
- self.mem = mem
- self.root_disk = root_disk
- self.spaces = spaces
- self.tags = tags
- self.virt_type = virt_type
+ self.cloud = cloud
+ self.defaultseries = defaultseries
+ self.life = life
+ self.name = name
+ self.ownertag = ownertag
+ self.providertype = providertype
+ self.serveruuid = serveruuid
+ self.status = EntityStatus.from_json(status) if status else None
+ self.uuid = uuid
+ self.users = [ModelUserInfo.from_json(o) for o in users or []]
-class DestroyControllerArgs(Type):
- _toSchema = {'destroy_models': 'destroy-models'}
- _toPy = {'destroy-models': 'destroy_models'}
- def __init__(self, destroy_models=None):
+class ModelSet(Type):
+ _toSchema = {'config': 'Config'}
+ _toPy = {'Config': 'config'}
+ def __init__(self, config=None):
'''
- destroy_models : bool
+ config : typing.Mapping[str, typing.Any]
'''
- self.destroy_models = destroy_models
+ self.config = config
-class InitiateModelMigrationArgs(Type):
- _toSchema = {'specs': 'specs'}
- _toPy = {'specs': 'specs'}
- def __init__(self, specs=None):
+class ModelUnset(Type):
+ _toSchema = {'keys': 'Keys'}
+ _toPy = {'Keys': 'keys'}
+ def __init__(self, keys=None):
'''
- specs : typing.Sequence[~ModelMigrationSpec]
+ keys : typing.Sequence[str]
'''
- self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []]
+ self.keys = keys
-class InitiateModelMigrationResult(Type):
- _toSchema = {'error': 'error', 'id_': 'id', 'model_tag': 'model-tag'}
- _toPy = {'model-tag': 'model_tag', 'error': 'error', 'id': 'id_'}
- def __init__(self, error=None, id_=None, model_tag=None):
+class ModelUserInfo(Type):
+ _toSchema = {'displayname': 'displayname', 'user': 'user', 'lastconnection': 'lastconnection', 'access': 'access'}
+ _toPy = {'displayname': 'displayname', 'user': 'user', 'lastconnection': 'lastconnection', 'access': 'access'}
+ def __init__(self, access=None, displayname=None, lastconnection=None, user=None):
+ '''
+ access : str
+ displayname : str
+ lastconnection : str
+ user : str
+ '''
+ self.access = access
+ self.displayname = displayname
+ self.lastconnection = lastconnection
+ self.user = user
+
+
+class ModelUserInfoResult(Type):
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
+ def __init__(self, error=None, result=None):
'''
error : Error
- id_ : str
- model_tag : str
+ result : ModelUserInfo
'''
self.error = Error.from_json(error) if error else None
- self.id_ = id_
- self.model_tag = model_tag
+ self.result = ModelUserInfo.from_json(result) if result else None
-class InitiateModelMigrationResults(Type):
+class ModelUserInfoResults(Type):
_toSchema = {'results': 'results'}
_toPy = {'results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~InitiateModelMigrationResult]
+ results : typing.Sequence[~ModelUserInfoResult]
'''
- self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []]
+ self.results = [ModelUserInfoResult.from_json(o) for o in results or []]
-class Model(Type):
- _toSchema = {'ownertag': 'OwnerTag', 'uuid': 'UUID', 'name': 'Name'}
- _toPy = {'UUID': 'uuid', 'OwnerTag': 'ownertag', 'Name': 'name'}
- def __init__(self, name=None, ownertag=None, uuid=None):
+class PrivateAddress(Type):
+ _toSchema = {'target': 'Target'}
+ _toPy = {'Target': 'target'}
+ def __init__(self, target=None):
'''
- name : str
- ownertag : str
- uuid : str
+ target : str
'''
- self.name = name
- self.ownertag = ownertag
- self.uuid = uuid
+ self.target = target
-class ModelBlockInfo(Type):
- _toSchema = {'model_uuid': 'model-uuid', 'owner_tag': 'owner-tag', 'blocks': 'blocks', 'name': 'name'}
- _toPy = {'model-uuid': 'model_uuid', 'blocks': 'blocks', 'owner-tag': 'owner_tag', 'name': 'name'}
- def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None):
+class PrivateAddressResults(Type):
+ _toSchema = {'privateaddress': 'PrivateAddress'}
+ _toPy = {'PrivateAddress': 'privateaddress'}
+ def __init__(self, privateaddress=None):
'''
- blocks : typing.Sequence[str]
- model_uuid : str
- name : str
- owner_tag : str
+ privateaddress : str
'''
- self.blocks = blocks
- self.model_uuid = model_uuid
- self.name = name
- self.owner_tag = owner_tag
+ self.privateaddress = privateaddress
-class ModelBlockInfoList(Type):
- _toSchema = {'models': 'models'}
- _toPy = {'models': 'models'}
- def __init__(self, models=None):
+class ProvisioningScriptParams(Type):
+ _toSchema = {'disablepackagecommands': 'DisablePackageCommands', 'machineid': 'MachineId', 'datadir': 'DataDir', 'nonce': 'Nonce'}
+ _toPy = {'MachineId': 'machineid', 'DisablePackageCommands': 'disablepackagecommands', 'DataDir': 'datadir', 'Nonce': 'nonce'}
+ def __init__(self, datadir=None, disablepackagecommands=None, machineid=None, nonce=None):
'''
- models : typing.Sequence[~ModelBlockInfo]
+ datadir : str
+ disablepackagecommands : bool
+ machineid : str
+ nonce : str
'''
- self.models = [ModelBlockInfo.from_json(o) for o in models or []]
+ self.datadir = datadir
+ self.disablepackagecommands = disablepackagecommands
+ self.machineid = machineid
+ self.nonce = nonce
-class ModelMigrationSpec(Type):
- _toSchema = {'model_tag': 'model-tag', 'target_info': 'target-info'}
- _toPy = {'model-tag': 'model_tag', 'target-info': 'target_info'}
- def __init__(self, model_tag=None, target_info=None):
+class ProvisioningScriptResult(Type):
+ _toSchema = {'script': 'Script'}
+ _toPy = {'Script': 'script'}
+ def __init__(self, script=None):
'''
- model_tag : str
- target_info : ModelMigrationTargetInfo
+ script : str
'''
- self.model_tag = model_tag
- self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None
+ self.script = script
-class ModelMigrationTargetInfo(Type):
- _toSchema = {'auth_tag': 'auth-tag', 'password': 'password', 'controller_tag': 'controller-tag', 'ca_cert': 'ca-cert', 'addrs': 'addrs'}
- _toPy = {'password': 'password', 'auth-tag': 'auth_tag', 'ca-cert': 'ca_cert', 'controller-tag': 'controller_tag', 'addrs': 'addrs'}
- def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, password=None):
+class PublicAddress(Type):
+ _toSchema = {'target': 'Target'}
+ _toPy = {'Target': 'target'}
+ def __init__(self, target=None):
'''
- addrs : typing.Sequence[str]
- auth_tag : str
- ca_cert : str
- controller_tag : str
- password : str
+ target : str
'''
- self.addrs = addrs
- self.auth_tag = auth_tag
- self.ca_cert = ca_cert
- self.controller_tag = controller_tag
- self.password = password
+ self.target = target
-class ModelStatus(Type):
- _toSchema = {'hosted_machine_count': 'hosted-machine-count', 'service_count': 'service-count', 'life': 'life', 'model_tag': 'model-tag', 'owner_tag': 'owner-tag'}
- _toPy = {'model-tag': 'model_tag', 'service-count': 'service_count', 'life': 'life', 'hosted-machine-count': 'hosted_machine_count', 'owner-tag': 'owner_tag'}
- def __init__(self, hosted_machine_count=None, life=None, model_tag=None, owner_tag=None, service_count=None):
+class PublicAddressResults(Type):
+ _toSchema = {'publicaddress': 'PublicAddress'}
+ _toPy = {'PublicAddress': 'publicaddress'}
+ def __init__(self, publicaddress=None):
'''
- hosted_machine_count : int
- life : str
- model_tag : str
- owner_tag : str
- service_count : int
+ publicaddress : str
'''
- self.hosted_machine_count = hosted_machine_count
- self.life = life
- self.model_tag = model_tag
- self.owner_tag = owner_tag
- self.service_count = service_count
+ self.publicaddress = publicaddress
-class ModelStatusResults(Type):
- _toSchema = {'models': 'models'}
- _toPy = {'models': 'models'}
- def __init__(self, models=None):
+class RelationStatus(Type):
+ _toSchema = {'key': 'Key', 'endpoints': 'Endpoints', 'scope': 'Scope', 'id_': 'Id', 'interface': 'Interface'}
+ _toPy = {'Key': 'key', 'Interface': 'interface', 'Id': 'id_', 'Endpoints': 'endpoints', 'Scope': 'scope'}
+ def __init__(self, endpoints=None, id_=None, interface=None, key=None, scope=None):
'''
- models : typing.Sequence[~ModelStatus]
+ endpoints : typing.Sequence[~EndpointStatus]
+ id_ : int
+ interface : str
+ key : str
+ scope : str
'''
- self.models = [ModelStatus.from_json(o) for o in models or []]
+ self.endpoints = [EndpointStatus.from_json(o) for o in endpoints or []]
+ self.id_ = id_
+ self.interface = interface
+ self.key = key
+ self.scope = scope
-class RemoveBlocksArgs(Type):
- _toSchema = {'all_': 'all'}
- _toPy = {'all': 'all_'}
- def __init__(self, all_=None):
+class ResolveCharmResult(Type):
+ _toSchema = {'error': 'Error', 'url': 'URL'}
+ _toPy = {'URL': 'url', 'Error': 'error'}
+ def __init__(self, error=None, url=None):
'''
- all_ : bool
+ error : str
+ url : URL
'''
- self.all_ = all_
+ self.error = error
+ self.url = URL.from_json(url) if url else None
-class UserModel(Type):
- _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'}
- _toPy = {'LastConnection': 'lastconnection', 'Model': 'model'}
- def __init__(self, lastconnection=None, model=None):
+class ResolveCharmResults(Type):
+ _toSchema = {'urls': 'URLs'}
+ _toPy = {'URLs': 'urls'}
+ def __init__(self, urls=None):
'''
- lastconnection : str
- model : Model
+ urls : typing.Sequence[~ResolveCharmResult]
'''
- self.lastconnection = lastconnection
- self.model = Model.from_json(model) if model else None
+ self.urls = [ResolveCharmResult.from_json(o) for o in urls or []]
-class UserModelList(Type):
- _toSchema = {'usermodels': 'UserModels'}
- _toPy = {'UserModels': 'usermodels'}
- def __init__(self, usermodels=None):
+class ResolveCharms(Type):
+ _toSchema = {'references': 'References'}
+ _toPy = {'References': 'references'}
+ def __init__(self, references=None):
'''
- usermodels : typing.Sequence[~UserModel]
+ references : typing.Sequence[~URL]
'''
- self.usermodels = [UserModel.from_json(o) for o in usermodels or []]
+ self.references = [URL.from_json(o) for o in references or []]
-class BytesResult(Type):
- _toSchema = {'result': 'Result'}
- _toPy = {'Result': 'result'}
- def __init__(self, result=None):
+class Resolved(Type):
+ _toSchema = {'unitname': 'UnitName', 'retry': 'Retry'}
+ _toPy = {'UnitName': 'unitname', 'Retry': 'retry'}
+ def __init__(self, retry=None, unitname=None):
'''
- result : typing.Sequence[int]
+ retry : bool
+ unitname : str
'''
- self.result = result
+ self.retry = retry
+ self.unitname = unitname
-class DeployerConnectionValues(Type):
- _toSchema = {'apiaddresses': 'APIAddresses', 'stateaddresses': 'StateAddresses'}
- _toPy = {'StateAddresses': 'stateaddresses', 'APIAddresses': 'apiaddresses'}
- def __init__(self, apiaddresses=None, stateaddresses=None):
- '''
- apiaddresses : typing.Sequence[str]
- stateaddresses : typing.Sequence[str]
- '''
- self.apiaddresses = apiaddresses
- self.stateaddresses = stateaddresses
-
-
-class LifeResult(Type):
- _toSchema = {'error': 'Error', 'life': 'Life'}
- _toPy = {'Error': 'error', 'Life': 'life'}
- def __init__(self, error=None, life=None):
+class SetModelAgentVersion(Type):
+ _toSchema = {'minor': 'Minor', 'major': 'Major', 'patch': 'Patch', 'tag': 'Tag', 'build': 'Build'}
+ _toPy = {'Patch': 'patch', 'Major': 'major', 'Minor': 'minor', 'Tag': 'tag', 'Build': 'build'}
+ def __init__(self, build=None, major=None, minor=None, patch=None, tag=None):
'''
- error : Error
- life : str
+ build : int
+ major : int
+ minor : int
+ patch : int
+ tag : str
'''
- self.error = Error.from_json(error) if error else None
- self.life = life
+ self.build = build
+ self.major = major
+ self.minor = minor
+ self.patch = patch
+ self.tag = tag
-class LifeResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class StatusHistoryFilter(Type):
+ _toSchema = {'delta': 'Delta', 'date': 'Date', 'size': 'Size'}
+ _toPy = {'Delta': 'delta', 'Date': 'date', 'Size': 'size'}
+ def __init__(self, date=None, delta=None, size=None):
'''
- results : typing.Sequence[~LifeResult]
+ date : str
+ delta : int
+ size : int
'''
- self.results = [LifeResult.from_json(o) for o in results or []]
+ self.date = date
+ self.delta = delta
+ self.size = size
-class StringResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
- def __init__(self, error=None, result=None):
+class StatusHistoryRequest(Type):
+ _toSchema = {'historykind': 'HistoryKind', 'filter_': 'Filter', 'tag': 'Tag', 'size': 'Size'}
+ _toPy = {'Tag': 'tag', 'Size': 'size', 'Filter': 'filter_', 'HistoryKind': 'historykind'}
+ def __init__(self, filter_=None, historykind=None, size=None, tag=None):
'''
- error : Error
- result : str
+ filter_ : StatusHistoryFilter
+ historykind : str
+ size : int
+ tag : str
'''
- self.error = Error.from_json(error) if error else None
- self.result = result
+ self.filter_ = StatusHistoryFilter.from_json(filter_) if filter_ else None
+ self.historykind = historykind
+ self.size = size
+ self.tag = tag
-class StringsResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
- def __init__(self, error=None, result=None):
+class StatusHistoryRequests(Type):
+ _toSchema = {'requests': 'Requests'}
+ _toPy = {'Requests': 'requests'}
+ def __init__(self, requests=None):
'''
- error : Error
- result : typing.Sequence[str]
+ requests : typing.Sequence[~StatusHistoryRequest]
'''
- self.error = Error.from_json(error) if error else None
- self.result = result
+ self.requests = [StatusHistoryRequest.from_json(o) for o in requests or []]
-class StringsWatchResult(Type):
- _toSchema = {'changes': 'Changes', 'stringswatcherid': 'StringsWatcherId', 'error': 'Error'}
- _toPy = {'Changes': 'changes', 'Error': 'error', 'StringsWatcherId': 'stringswatcherid'}
- def __init__(self, changes=None, error=None, stringswatcherid=None):
+class StatusHistoryResult(Type):
+ _toSchema = {'history': 'History', 'error': 'Error'}
+ _toPy = {'History': 'history', 'Error': 'error'}
+ def __init__(self, error=None, history=None):
'''
- changes : typing.Sequence[str]
error : Error
- stringswatcherid : str
+ history : History
'''
- self.changes = changes
self.error = Error.from_json(error) if error else None
- self.stringswatcherid = stringswatcherid
+ self.history = History.from_json(history) if history else None
-class StringsWatchResults(Type):
+class StatusHistoryResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~StringsWatchResult]
+ results : typing.Sequence[~StatusHistoryResult]
'''
- self.results = [StringsWatchResult.from_json(o) for o in results or []]
+ self.results = [StatusHistoryResult.from_json(o) for o in results or []]
-class AddSubnetParams(Type):
- _toSchema = {'subnettag': 'SubnetTag', 'zones': 'Zones', 'subnetproviderid': 'SubnetProviderId', 'spacetag': 'SpaceTag'}
- _toPy = {'SpaceTag': 'spacetag', 'SubnetProviderId': 'subnetproviderid', 'SubnetTag': 'subnettag', 'Zones': 'zones'}
- def __init__(self, spacetag=None, subnetproviderid=None, subnettag=None, zones=None):
+class StatusParams(Type):
+ _toSchema = {'patterns': 'Patterns'}
+ _toPy = {'Patterns': 'patterns'}
+ def __init__(self, patterns=None):
'''
- spacetag : str
- subnetproviderid : str
- subnettag : str
- zones : typing.Sequence[str]
+ patterns : typing.Sequence[str]
'''
- self.spacetag = spacetag
- self.subnetproviderid = subnetproviderid
- self.subnettag = subnettag
- self.zones = zones
+ self.patterns = patterns
-class AddSubnetsParams(Type):
- _toSchema = {'subnets': 'Subnets'}
- _toPy = {'Subnets': 'subnets'}
- def __init__(self, subnets=None):
+class Tools(Type):
+ _toSchema = {'sha256': 'sha256', 'url': 'url', 'size': 'size', 'version': 'version'}
+ _toPy = {'sha256': 'sha256', 'url': 'url', 'size': 'size', 'version': 'version'}
+ def __init__(self, sha256=None, size=None, url=None, version=None):
'''
- subnets : typing.Sequence[~AddSubnetParams]
+ sha256 : str
+ size : int
+ url : str
+ version : Binary
'''
- self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []]
+ self.sha256 = sha256
+ self.size = size
+ self.url = url
+ self.version = Binary.from_json(version) if version else None
-class CreateSpaceParams(Type):
- _toSchema = {'public': 'Public', 'subnettags': 'SubnetTags', 'providerid': 'ProviderId', 'spacetag': 'SpaceTag'}
- _toPy = {'ProviderId': 'providerid', 'Public': 'public', 'SpaceTag': 'spacetag', 'SubnetTags': 'subnettags'}
- def __init__(self, providerid=None, public=None, spacetag=None, subnettags=None):
+class URL(Type):
+ _toSchema = {'revision': 'Revision', 'series': 'Series', 'schema': 'Schema', 'channel': 'Channel', 'name': 'Name', 'user': 'User'}
+ _toPy = {'Name': 'name', 'Revision': 'revision', 'User': 'user', 'Schema': 'schema', 'Channel': 'channel', 'Series': 'series'}
+ def __init__(self, channel=None, name=None, revision=None, schema=None, series=None, user=None):
'''
- providerid : str
- public : bool
- spacetag : str
- subnettags : typing.Sequence[str]
+ channel : str
+ name : str
+ revision : int
+ schema : str
+ series : str
+ user : str
'''
- self.providerid = providerid
- self.public = public
- self.spacetag = spacetag
- self.subnettags = subnettags
+ self.channel = channel
+ self.name = name
+ self.revision = revision
+ self.schema = schema
+ self.series = series
+ self.user = user
-class CreateSpacesParams(Type):
- _toSchema = {'spaces': 'Spaces'}
- _toPy = {'Spaces': 'spaces'}
- def __init__(self, spaces=None):
+class UnitStatus(Type):
+ _toSchema = {'charm': 'Charm', 'publicaddress': 'PublicAddress', 'openedports': 'OpenedPorts', 'agentstatus': 'AgentStatus', 'subordinates': 'Subordinates', 'workloadstatus': 'WorkloadStatus', 'machine': 'Machine'}
+ _toPy = {'AgentStatus': 'agentstatus', 'Charm': 'charm', 'OpenedPorts': 'openedports', 'WorkloadStatus': 'workloadstatus', 'PublicAddress': 'publicaddress', 'Machine': 'machine', 'Subordinates': 'subordinates'}
+ def __init__(self, agentstatus=None, charm=None, machine=None, openedports=None, publicaddress=None, subordinates=None, workloadstatus=None):
'''
- spaces : typing.Sequence[~CreateSpaceParams]
+ agentstatus : DetailedStatus
+ charm : str
+ machine : str
+ openedports : typing.Sequence[str]
+ publicaddress : str
+ subordinates : typing.Mapping[str, ~UnitStatus]
+ workloadstatus : DetailedStatus
'''
- self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []]
+ self.agentstatus = DetailedStatus.from_json(agentstatus) if agentstatus else None
+ self.charm = charm
+ self.machine = machine
+ self.openedports = openedports
+ self.publicaddress = publicaddress
+ self.subordinates = {k: UnitStatus.from_json(v) for k, v in (subordinates or dict()).items()}
+ self.workloadstatus = DetailedStatus.from_json(workloadstatus) if workloadstatus else None
-class DiscoverSpacesResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class DestroyControllerArgs(Type):
+ _toSchema = {'destroy_models': 'destroy-models'}
+ _toPy = {'destroy-models': 'destroy_models'}
+ def __init__(self, destroy_models=None):
'''
- results : typing.Sequence[~ProviderSpace]
+ destroy_models : bool
'''
- self.results = [ProviderSpace.from_json(o) for o in results or []]
+ self.destroy_models = destroy_models
-class ListSubnetsResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class InitiateModelMigrationArgs(Type):
+ _toSchema = {'specs': 'specs'}
+ _toPy = {'specs': 'specs'}
+ def __init__(self, specs=None):
'''
- results : typing.Sequence[~Subnet]
+ specs : typing.Sequence[~ModelMigrationSpec]
'''
- self.results = [Subnet.from_json(o) for o in results or []]
+ self.specs = [ModelMigrationSpec.from_json(o) for o in specs or []]
-class ProviderSpace(Type):
- _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'providerid': 'ProviderId', 'name': 'Name'}
- _toPy = {'ProviderId': 'providerid', 'Error': 'error', 'Subnets': 'subnets', 'Name': 'name'}
- def __init__(self, error=None, name=None, providerid=None, subnets=None):
+class InitiateModelMigrationResult(Type):
+ _toSchema = {'id_': 'id', 'model_tag': 'model-tag', 'error': 'error'}
+ _toPy = {'id': 'id_', 'error': 'error', 'model-tag': 'model_tag'}
+ def __init__(self, error=None, id_=None, model_tag=None):
'''
error : Error
- name : str
- providerid : str
- subnets : typing.Sequence[~Subnet]
+ id_ : str
+ model_tag : str
'''
self.error = Error.from_json(error) if error else None
- self.name = name
- self.providerid = providerid
- self.subnets = [Subnet.from_json(o) for o in subnets or []]
-
-
-class Subnet(Type):
- _toSchema = {'zones': 'Zones', 'vlantag': 'VLANTag', 'staticrangelowip': 'StaticRangeLowIP', 'providerid': 'ProviderId', 'spacetag': 'SpaceTag', 'status': 'Status', 'staticrangehighip': 'StaticRangeHighIP', 'life': 'Life', 'cidr': 'CIDR'}
- _toPy = {'ProviderId': 'providerid', 'SpaceTag': 'spacetag', 'StaticRangeLowIP': 'staticrangelowip', 'StaticRangeHighIP': 'staticrangehighip', 'Status': 'status', 'CIDR': 'cidr', 'Life': 'life', 'VLANTag': 'vlantag', 'Zones': 'zones'}
- def __init__(self, cidr=None, life=None, providerid=None, spacetag=None, staticrangehighip=None, staticrangelowip=None, status=None, vlantag=None, zones=None):
- '''
- cidr : str
- life : str
- providerid : str
- spacetag : str
- staticrangehighip : typing.Sequence[int]
- staticrangelowip : typing.Sequence[int]
- status : str
- vlantag : int
- zones : typing.Sequence[str]
- '''
- self.cidr = cidr
- self.life = life
- self.providerid = providerid
- self.spacetag = spacetag
- self.staticrangehighip = staticrangehighip
- self.staticrangelowip = staticrangelowip
- self.status = status
- self.vlantag = vlantag
- self.zones = zones
+ self.id_ = id_
+ self.model_tag = model_tag
-class SubnetsFilters(Type):
- _toSchema = {'zone': 'Zone', 'spacetag': 'SpaceTag'}
- _toPy = {'SpaceTag': 'spacetag', 'Zone': 'zone'}
- def __init__(self, spacetag=None, zone=None):
+class InitiateModelMigrationResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
'''
- spacetag : str
- zone : str
+ results : typing.Sequence[~InitiateModelMigrationResult]
'''
- self.spacetag = spacetag
- self.zone = zone
+ self.results = [InitiateModelMigrationResult.from_json(o) for o in results or []]
-class BlockDevice(Type):
- _toSchema = {'devicename': 'DeviceName', 'hardwareid': 'HardwareId', 'inuse': 'InUse', 'uuid': 'UUID', 'mountpoint': 'MountPoint', 'filesystemtype': 'FilesystemType', 'label': 'Label', 'devicelinks': 'DeviceLinks', 'size': 'Size', 'busaddress': 'BusAddress'}
- _toPy = {'DeviceLinks': 'devicelinks', 'BusAddress': 'busaddress', 'Size': 'size', 'Label': 'label', 'InUse': 'inuse', 'HardwareId': 'hardwareid', 'UUID': 'uuid', 'DeviceName': 'devicename', 'FilesystemType': 'filesystemtype', 'MountPoint': 'mountpoint'}
- def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None):
+class Model(Type):
+ _toSchema = {'uuid': 'UUID', 'ownertag': 'OwnerTag', 'name': 'Name'}
+ _toPy = {'OwnerTag': 'ownertag', 'Name': 'name', 'UUID': 'uuid'}
+ def __init__(self, name=None, ownertag=None, uuid=None):
'''
- busaddress : str
- devicelinks : typing.Sequence[str]
- devicename : str
- filesystemtype : str
- hardwareid : str
- inuse : bool
- label : str
- mountpoint : str
- size : int
+ name : str
+ ownertag : str
uuid : str
'''
- self.busaddress = busaddress
- self.devicelinks = devicelinks
- self.devicename = devicename
- self.filesystemtype = filesystemtype
- self.hardwareid = hardwareid
- self.inuse = inuse
- self.label = label
- self.mountpoint = mountpoint
- self.size = size
+ self.name = name
+ self.ownertag = ownertag
self.uuid = uuid
-class MachineBlockDevices(Type):
- _toSchema = {'machine': 'machine', 'blockdevices': 'blockdevices'}
- _toPy = {'machine': 'machine', 'blockdevices': 'blockdevices'}
- def __init__(self, blockdevices=None, machine=None):
+class ModelBlockInfo(Type):
+ _toSchema = {'blocks': 'blocks', 'model_uuid': 'model-uuid', 'owner_tag': 'owner-tag', 'name': 'name'}
+ _toPy = {'owner-tag': 'owner_tag', 'blocks': 'blocks', 'model-uuid': 'model_uuid', 'name': 'name'}
+ def __init__(self, blocks=None, model_uuid=None, name=None, owner_tag=None):
'''
- blockdevices : typing.Sequence[~BlockDevice]
- machine : str
+ blocks : typing.Sequence[str]
+ model_uuid : str
+ name : str
+ owner_tag : str
'''
- self.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []]
- self.machine = machine
-
-
-class SetMachineBlockDevices(Type):
- _toSchema = {'machineblockdevices': 'machineblockdevices'}
- _toPy = {'machineblockdevices': 'machineblockdevices'}
- def __init__(self, machineblockdevices=None):
- '''
- machineblockdevices : typing.Sequence[~MachineBlockDevices]
- '''
- self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []]
+ self.blocks = blocks
+ self.model_uuid = model_uuid
+ self.name = name
+ self.owner_tag = owner_tag
-class MachineStorageId(Type):
- _toSchema = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'}
- _toPy = {'machinetag': 'machinetag', 'attachmenttag': 'attachmenttag'}
- def __init__(self, attachmenttag=None, machinetag=None):
+class ModelBlockInfoList(Type):
+ _toSchema = {'models': 'models'}
+ _toPy = {'models': 'models'}
+ def __init__(self, models=None):
'''
- attachmenttag : str
- machinetag : str
+ models : typing.Sequence[~ModelBlockInfo]
'''
- self.attachmenttag = attachmenttag
- self.machinetag = machinetag
+ self.models = [ModelBlockInfo.from_json(o) for o in models or []]
-class MachineStorageIdsWatchResult(Type):
- _toSchema = {'machinestorageidswatcherid': 'MachineStorageIdsWatcherId', 'changes': 'Changes', 'error': 'Error'}
- _toPy = {'Changes': 'changes', 'Error': 'error', 'MachineStorageIdsWatcherId': 'machinestorageidswatcherid'}
- def __init__(self, changes=None, error=None, machinestorageidswatcherid=None):
+class ModelMigrationSpec(Type):
+ _toSchema = {'model_tag': 'model-tag', 'target_info': 'target-info'}
+ _toPy = {'model-tag': 'model_tag', 'target-info': 'target_info'}
+ def __init__(self, model_tag=None, target_info=None):
'''
- changes : typing.Sequence[~MachineStorageId]
- error : Error
- machinestorageidswatcherid : str
+ model_tag : str
+ target_info : ModelMigrationTargetInfo
'''
- self.changes = [MachineStorageId.from_json(o) for o in changes or []]
- self.error = Error.from_json(error) if error else None
- self.machinestorageidswatcherid = machinestorageidswatcherid
+ self.model_tag = model_tag
+ self.target_info = ModelMigrationTargetInfo.from_json(target_info) if target_info else None
-class BoolResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class ModelMigrationTargetInfo(Type):
+ _toSchema = {'auth_tag': 'auth-tag', 'ca_cert': 'ca-cert', 'controller_tag': 'controller-tag', 'password': 'password', 'addrs': 'addrs'}
+ _toPy = {'ca-cert': 'ca_cert', 'auth-tag': 'auth_tag', 'password': 'password', 'controller-tag': 'controller_tag', 'addrs': 'addrs'}
+ def __init__(self, addrs=None, auth_tag=None, ca_cert=None, controller_tag=None, password=None):
'''
- results : typing.Sequence[~BoolResult]
+ addrs : typing.Sequence[str]
+ auth_tag : str
+ ca_cert : str
+ controller_tag : str
+ password : str
'''
- self.results = [BoolResult.from_json(o) for o in results or []]
+ self.addrs = addrs
+ self.auth_tag = auth_tag
+ self.ca_cert = ca_cert
+ self.controller_tag = controller_tag
+ self.password = password
-class MachinePortRange(Type):
- _toSchema = {'unittag': 'UnitTag', 'relationtag': 'RelationTag', 'portrange': 'PortRange'}
- _toPy = {'RelationTag': 'relationtag', 'UnitTag': 'unittag', 'PortRange': 'portrange'}
- def __init__(self, portrange=None, relationtag=None, unittag=None):
+class ModelStatus(Type):
+ _toSchema = {'model_tag': 'model-tag', 'life': 'life', 'application_count': 'application-count', 'hosted_machine_count': 'hosted-machine-count', 'owner_tag': 'owner-tag'}
+ _toPy = {'life': 'life', 'application-count': 'application_count', 'hosted-machine-count': 'hosted_machine_count', 'model-tag': 'model_tag', 'owner-tag': 'owner_tag'}
+ def __init__(self, application_count=None, hosted_machine_count=None, life=None, model_tag=None, owner_tag=None):
'''
- portrange : PortRange
- relationtag : str
- unittag : str
+ application_count : int
+ hosted_machine_count : int
+ life : str
+ model_tag : str
+ owner_tag : str
'''
- self.portrange = PortRange.from_json(portrange) if portrange else None
- self.relationtag = relationtag
- self.unittag = unittag
+ self.application_count = application_count
+ self.hosted_machine_count = hosted_machine_count
+ self.life = life
+ self.model_tag = model_tag
+ self.owner_tag = owner_tag
-class MachinePorts(Type):
- _toSchema = {'machinetag': 'MachineTag', 'subnettag': 'SubnetTag'}
- _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'}
- def __init__(self, machinetag=None, subnettag=None):
+class ModelStatusResults(Type):
+ _toSchema = {'models': 'models'}
+ _toPy = {'models': 'models'}
+ def __init__(self, models=None):
'''
- machinetag : str
- subnettag : str
+ models : typing.Sequence[~ModelStatus]
'''
- self.machinetag = machinetag
- self.subnettag = subnettag
+ self.models = [ModelStatus.from_json(o) for o in models or []]
-class MachinePortsParams(Type):
- _toSchema = {'params': 'Params'}
- _toPy = {'Params': 'params'}
- def __init__(self, params=None):
+class RemoveBlocksArgs(Type):
+ _toSchema = {'all_': 'all'}
+ _toPy = {'all': 'all_'}
+ def __init__(self, all_=None):
'''
- params : typing.Sequence[~MachinePorts]
+ all_ : bool
'''
- self.params = [MachinePorts.from_json(o) for o in params or []]
+ self.all_ = all_
-class MachinePortsResult(Type):
- _toSchema = {'error': 'Error', 'ports': 'Ports'}
- _toPy = {'Error': 'error', 'Ports': 'ports'}
- def __init__(self, error=None, ports=None):
+class UserModel(Type):
+ _toSchema = {'model': 'Model', 'lastconnection': 'LastConnection'}
+ _toPy = {'Model': 'model', 'LastConnection': 'lastconnection'}
+ def __init__(self, lastconnection=None, model=None):
'''
- error : Error
- ports : typing.Sequence[~MachinePortRange]
+ lastconnection : str
+ model : Model
'''
- self.error = Error.from_json(error) if error else None
- self.ports = [MachinePortRange.from_json(o) for o in ports or []]
+ self.lastconnection = lastconnection
+ self.model = Model.from_json(model) if model else None
-class MachinePortsResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class UserModelList(Type):
+ _toSchema = {'usermodels': 'UserModels'}
+ _toPy = {'UserModels': 'usermodels'}
+ def __init__(self, usermodels=None):
'''
- results : typing.Sequence[~MachinePortsResult]
+ usermodels : typing.Sequence[~UserModel]
'''
- self.results = [MachinePortsResult.from_json(o) for o in results or []]
+ self.usermodels = [UserModel.from_json(o) for o in usermodels or []]
-class NotifyWatchResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class BytesResult(Type):
+ _toSchema = {'result': 'Result'}
+ _toPy = {'Result': 'result'}
+ def __init__(self, result=None):
'''
- results : typing.Sequence[~NotifyWatchResult]
+ result : typing.Sequence[int]
'''
- self.results = [NotifyWatchResult.from_json(o) for o in results or []]
+ self.result = result
-class PortRange(Type):
- _toSchema = {'protocol': 'Protocol', 'fromport': 'FromPort', 'toport': 'ToPort'}
- _toPy = {'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'}
- def __init__(self, fromport=None, protocol=None, toport=None):
+class DeployerConnectionValues(Type):
+ _toSchema = {'stateaddresses': 'StateAddresses', 'apiaddresses': 'APIAddresses'}
+ _toPy = {'StateAddresses': 'stateaddresses', 'APIAddresses': 'apiaddresses'}
+ def __init__(self, apiaddresses=None, stateaddresses=None):
'''
- fromport : int
- protocol : str
- toport : int
+ apiaddresses : typing.Sequence[str]
+ stateaddresses : typing.Sequence[str]
'''
- self.fromport = fromport
- self.protocol = protocol
- self.toport = toport
+ self.apiaddresses = apiaddresses
+ self.stateaddresses = stateaddresses
-class StringResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class LifeResult(Type):
+ _toSchema = {'life': 'Life', 'error': 'Error'}
+ _toPy = {'Life': 'life', 'Error': 'error'}
+ def __init__(self, error=None, life=None):
'''
- results : typing.Sequence[~StringResult]
+ error : Error
+ life : str
'''
- self.results = [StringResult.from_json(o) for o in results or []]
+ self.error = Error.from_json(error) if error else None
+ self.life = life
-class StringsResults(Type):
+class LifeResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~StringsResult]
+ results : typing.Sequence[~LifeResult]
'''
- self.results = [StringsResult.from_json(o) for o in results or []]
+ self.results = [LifeResult.from_json(o) for o in results or []]
-class ControllersChangeResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
+class StringsResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
- result : ControllersChanges
+ result : typing.Sequence[str]
'''
self.error = Error.from_json(error) if error else None
- self.result = ControllersChanges.from_json(result) if result else None
+ self.result = result
-class ControllersChangeResults(Type):
+class StringsWatchResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~ControllersChangeResult]
+ results : typing.Sequence[~StringsWatchResult]
'''
- self.results = [ControllersChangeResult.from_json(o) for o in results or []]
+ self.results = [StringsWatchResult.from_json(o) for o in results or []]
-class ControllersChanges(Type):
- _toSchema = {'added': 'added', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed', 'demoted': 'demoted', 'converted': 'converted'}
- _toPy = {'added': 'added', 'maintained': 'maintained', 'promoted': 'promoted', 'removed': 'removed', 'demoted': 'demoted', 'converted': 'converted'}
- def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None):
+class AddSubnetParams(Type):
+ _toSchema = {'subnetproviderid': 'SubnetProviderId', 'spacetag': 'SpaceTag', 'subnettag': 'SubnetTag', 'zones': 'Zones'}
+ _toPy = {'SubnetTag': 'subnettag', 'SpaceTag': 'spacetag', 'Zones': 'zones', 'SubnetProviderId': 'subnetproviderid'}
+ def __init__(self, spacetag=None, subnetproviderid=None, subnettag=None, zones=None):
'''
- added : typing.Sequence[str]
- converted : typing.Sequence[str]
- demoted : typing.Sequence[str]
- maintained : typing.Sequence[str]
- promoted : typing.Sequence[str]
- removed : typing.Sequence[str]
+ spacetag : str
+ subnetproviderid : str
+ subnettag : str
+ zones : typing.Sequence[str]
'''
- self.added = added
- self.converted = converted
- self.demoted = demoted
- self.maintained = maintained
- self.promoted = promoted
- self.removed = removed
+ self.spacetag = spacetag
+ self.subnetproviderid = subnetproviderid
+ self.subnettag = subnettag
+ self.zones = zones
-class ControllersSpec(Type):
- _toSchema = {'modeltag': 'ModelTag', 'num_controllers': 'num-controllers', 'constraints': 'constraints', 'placement': 'placement', 'series': 'series'}
- _toPy = {'num-controllers': 'num_controllers', 'ModelTag': 'modeltag', 'constraints': 'constraints', 'placement': 'placement', 'series': 'series'}
- def __init__(self, modeltag=None, constraints=None, num_controllers=None, placement=None, series=None):
+class AddSubnetsParams(Type):
+ _toSchema = {'subnets': 'Subnets'}
+ _toPy = {'Subnets': 'subnets'}
+ def __init__(self, subnets=None):
'''
- modeltag : str
- constraints : Value
- num_controllers : int
- placement : typing.Sequence[str]
- series : str
+ subnets : typing.Sequence[~AddSubnetParams]
'''
- self.modeltag = modeltag
- self.constraints = Value.from_json(constraints) if constraints else None
- self.num_controllers = num_controllers
- self.placement = placement
- self.series = series
+ self.subnets = [AddSubnetParams.from_json(o) for o in subnets or []]
-class ControllersSpecs(Type):
- _toSchema = {'specs': 'Specs'}
- _toPy = {'Specs': 'specs'}
- def __init__(self, specs=None):
+class CreateSpaceParams(Type):
+ _toSchema = {'providerid': 'ProviderId', 'public': 'Public', 'spacetag': 'SpaceTag', 'subnettags': 'SubnetTags'}
+ _toPy = {'Public': 'public', 'SpaceTag': 'spacetag', 'SubnetTags': 'subnettags', 'ProviderId': 'providerid'}
+ def __init__(self, providerid=None, public=None, spacetag=None, subnettags=None):
'''
- specs : typing.Sequence[~ControllersSpec]
+ providerid : str
+ public : bool
+ spacetag : str
+ subnettags : typing.Sequence[str]
'''
- self.specs = [ControllersSpec.from_json(o) for o in specs or []]
+ self.providerid = providerid
+ self.public = public
+ self.spacetag = spacetag
+ self.subnettags = subnettags
-class HAMember(Type):
- _toSchema = {'series': 'Series', 'publicaddress': 'PublicAddress', 'tag': 'Tag'}
- _toPy = {'Tag': 'tag', 'PublicAddress': 'publicaddress', 'Series': 'series'}
- def __init__(self, publicaddress=None, series=None, tag=None):
+class CreateSpacesParams(Type):
+ _toSchema = {'spaces': 'Spaces'}
+ _toPy = {'Spaces': 'spaces'}
+ def __init__(self, spaces=None):
'''
- publicaddress : Address
- series : str
- tag : str
+ spaces : typing.Sequence[~CreateSpaceParams]
'''
- self.publicaddress = Address.from_json(publicaddress) if publicaddress else None
- self.series = series
- self.tag = tag
+ self.spaces = [CreateSpaceParams.from_json(o) for o in spaces or []]
-class Member(Type):
- _toSchema = {'hidden': 'Hidden', 'tags': 'Tags', 'buildindexes': 'BuildIndexes', 'address': 'Address', 'slavedelay': 'SlaveDelay', 'votes': 'Votes', 'id_': 'Id', 'arbiter': 'Arbiter', 'priority': 'Priority'}
- _toPy = {'Tags': 'tags', 'SlaveDelay': 'slavedelay', 'Votes': 'votes', 'Arbiter': 'arbiter', 'Address': 'address', 'Hidden': 'hidden', 'Priority': 'priority', 'BuildIndexes': 'buildindexes', 'Id': 'id_'}
- def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None):
+class DiscoverSpacesResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- address : str
- arbiter : bool
- buildindexes : bool
- hidden : bool
- id_ : int
- priority : float
- slavedelay : int
- tags : typing.Mapping[str, str]
- votes : int
+ results : typing.Sequence[~ProviderSpace]
'''
- self.address = address
- self.arbiter = arbiter
- self.buildindexes = buildindexes
- self.hidden = hidden
- self.id_ = id_
- self.priority = priority
- self.slavedelay = slavedelay
- self.tags = tags
- self.votes = votes
+ self.results = [ProviderSpace.from_json(o) for o in results or []]
-class MongoUpgradeResults(Type):
- _toSchema = {'members': 'Members', 'master': 'Master', 'rsmembers': 'RsMembers'}
- _toPy = {'Master': 'master', 'Members': 'members', 'RsMembers': 'rsmembers'}
- def __init__(self, master=None, members=None, rsmembers=None):
+class ListSubnetsResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- master : HAMember
- members : typing.Sequence[~HAMember]
- rsmembers : typing.Sequence[~Member]
+ results : typing.Sequence[~Subnet]
'''
- self.master = HAMember.from_json(master) if master else None
- self.members = [HAMember.from_json(o) for o in members or []]
- self.rsmembers = [Member.from_json(o) for o in rsmembers or []]
+ self.results = [Subnet.from_json(o) for o in results or []]
-class ResumeReplicationParams(Type):
- _toSchema = {'members': 'Members'}
- _toPy = {'Members': 'members'}
- def __init__(self, members=None):
+class ProviderSpace(Type):
+ _toSchema = {'providerid': 'ProviderId', 'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'}
+ _toPy = {'ProviderId': 'providerid', 'Subnets': 'subnets', 'Error': 'error', 'Name': 'name'}
+ def __init__(self, error=None, name=None, providerid=None, subnets=None):
'''
- members : typing.Sequence[~Member]
+ error : Error
+ name : str
+ providerid : str
+ subnets : typing.Sequence[~Subnet]
'''
- self.members = [Member.from_json(o) for o in members or []]
+ self.error = Error.from_json(error) if error else None
+ self.name = name
+ self.providerid = providerid
+ self.subnets = [Subnet.from_json(o) for o in subnets or []]
-class UpgradeMongoParams(Type):
- _toSchema = {'minor': 'Minor', 'major': 'Major', 'storageengine': 'StorageEngine', 'patch': 'Patch'}
- _toPy = {'StorageEngine': 'storageengine', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'}
- def __init__(self, major=None, minor=None, patch=None, storageengine=None):
+class Subnet(Type):
+ _toSchema = {'staticrangelowip': 'StaticRangeLowIP', 'spacetag': 'SpaceTag', 'cidr': 'CIDR', 'providerid': 'ProviderId', 'life': 'Life', 'staticrangehighip': 'StaticRangeHighIP', 'zones': 'Zones', 'vlantag': 'VLANTag', 'status': 'Status'}
+ _toPy = {'StaticRangeHighIP': 'staticrangehighip', 'VLANTag': 'vlantag', 'Zones': 'zones', 'SpaceTag': 'spacetag', 'Life': 'life', 'Status': 'status', 'ProviderId': 'providerid', 'StaticRangeLowIP': 'staticrangelowip', 'CIDR': 'cidr'}
+ def __init__(self, cidr=None, life=None, providerid=None, spacetag=None, staticrangehighip=None, staticrangelowip=None, status=None, vlantag=None, zones=None):
'''
- major : int
- minor : int
- patch : str
- storageengine : str
+ cidr : str
+ life : str
+ providerid : str
+ spacetag : str
+ staticrangehighip : typing.Sequence[int]
+ staticrangelowip : typing.Sequence[int]
+ status : str
+ vlantag : int
+ zones : typing.Sequence[str]
'''
- self.major = major
- self.minor = minor
- self.patch = patch
- self.storageengine = storageengine
+ self.cidr = cidr
+ self.life = life
+ self.providerid = providerid
+ self.spacetag = spacetag
+ self.staticrangehighip = staticrangehighip
+ self.staticrangelowip = staticrangelowip
+ self.status = status
+ self.vlantag = vlantag
+ self.zones = zones
-class Version(Type):
- _toSchema = {'minor': 'Minor', 'major': 'Major', 'storageengine': 'StorageEngine', 'patch': 'Patch'}
- _toPy = {'StorageEngine': 'storageengine', 'Major': 'major', 'Minor': 'minor', 'Patch': 'patch'}
- def __init__(self, major=None, minor=None, patch=None, storageengine=None):
+class SubnetsFilters(Type):
+ _toSchema = {'spacetag': 'SpaceTag', 'zone': 'Zone'}
+ _toPy = {'SpaceTag': 'spacetag', 'Zone': 'zone'}
+ def __init__(self, spacetag=None, zone=None):
'''
- major : int
- minor : int
- patch : str
- storageengine : str
+ spacetag : str
+ zone : str
'''
- self.major = major
- self.minor = minor
- self.patch = patch
- self.storageengine = storageengine
+ self.spacetag = spacetag
+ self.zone = zone
-class SSHHostKeySet(Type):
- _toSchema = {'entity_keys': 'entity-keys'}
- _toPy = {'entity-keys': 'entity_keys'}
- def __init__(self, entity_keys=None):
+class BlockDevice(Type):
+ _toSchema = {'inuse': 'InUse', 'busaddress': 'BusAddress', 'devicename': 'DeviceName', 'size': 'Size', 'filesystemtype': 'FilesystemType', 'uuid': 'UUID', 'hardwareid': 'HardwareId', 'label': 'Label', 'mountpoint': 'MountPoint', 'devicelinks': 'DeviceLinks'}
+ _toPy = {'FilesystemType': 'filesystemtype', 'Label': 'label', 'Size': 'size', 'UUID': 'uuid', 'MountPoint': 'mountpoint', 'BusAddress': 'busaddress', 'InUse': 'inuse', 'DeviceName': 'devicename', 'DeviceLinks': 'devicelinks', 'HardwareId': 'hardwareid'}
+ def __init__(self, busaddress=None, devicelinks=None, devicename=None, filesystemtype=None, hardwareid=None, inuse=None, label=None, mountpoint=None, size=None, uuid=None):
'''
- entity_keys : typing.Sequence[~SSHHostKeys]
+ busaddress : str
+ devicelinks : typing.Sequence[str]
+ devicename : str
+ filesystemtype : str
+ hardwareid : str
+ inuse : bool
+ label : str
+ mountpoint : str
+ size : int
+ uuid : str
'''
- self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []]
+ self.busaddress = busaddress
+ self.devicelinks = devicelinks
+ self.devicename = devicename
+ self.filesystemtype = filesystemtype
+ self.hardwareid = hardwareid
+ self.inuse = inuse
+ self.label = label
+ self.mountpoint = mountpoint
+ self.size = size
+ self.uuid = uuid
-class SSHHostKeys(Type):
- _toSchema = {'tag': 'tag', 'public_keys': 'public-keys'}
- _toPy = {'public-keys': 'public_keys', 'tag': 'tag'}
- def __init__(self, public_keys=None, tag=None):
+class MachineBlockDevices(Type):
+ _toSchema = {'blockdevices': 'blockdevices', 'machine': 'machine'}
+ _toPy = {'blockdevices': 'blockdevices', 'machine': 'machine'}
+ def __init__(self, blockdevices=None, machine=None):
'''
- public_keys : typing.Sequence[str]
- tag : str
+ blockdevices : typing.Sequence[~BlockDevice]
+ machine : str
'''
- self.public_keys = public_keys
- self.tag = tag
+ self.blockdevices = [BlockDevice.from_json(o) for o in blockdevices or []]
+ self.machine = machine
-class ImageFilterParams(Type):
- _toSchema = {'images': 'images'}
- _toPy = {'images': 'images'}
- def __init__(self, images=None):
+class SetMachineBlockDevices(Type):
+ _toSchema = {'machineblockdevices': 'machineblockdevices'}
+ _toPy = {'machineblockdevices': 'machineblockdevices'}
+ def __init__(self, machineblockdevices=None):
'''
- images : typing.Sequence[~ImageSpec]
+ machineblockdevices : typing.Sequence[~MachineBlockDevices]
'''
- self.images = [ImageSpec.from_json(o) for o in images or []]
+ self.machineblockdevices = [MachineBlockDevices.from_json(o) for o in machineblockdevices or []]
-class ImageMetadata(Type):
- _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind', 'created': 'created', 'url': 'url'}
- _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind', 'created': 'created', 'url': 'url'}
- def __init__(self, arch=None, created=None, kind=None, series=None, url=None):
+class MachineStorageId(Type):
+ _toSchema = {'attachmenttag': 'attachmenttag', 'machinetag': 'machinetag'}
+ _toPy = {'attachmenttag': 'attachmenttag', 'machinetag': 'machinetag'}
+ def __init__(self, attachmenttag=None, machinetag=None):
'''
- arch : str
- created : str
- kind : str
- series : str
- url : str
+ attachmenttag : str
+ machinetag : str
'''
- self.arch = arch
- self.created = created
- self.kind = kind
- self.series = series
- self.url = url
+ self.attachmenttag = attachmenttag
+ self.machinetag = machinetag
-class ImageSpec(Type):
- _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind'}
- _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind'}
- def __init__(self, arch=None, kind=None, series=None):
+class MachineStorageIdsWatchResult(Type):
+ _toSchema = {'changes': 'Changes', 'machinestorageidswatcherid': 'MachineStorageIdsWatcherId', 'error': 'Error'}
+ _toPy = {'Changes': 'changes', 'Error': 'error', 'MachineStorageIdsWatcherId': 'machinestorageidswatcherid'}
+ def __init__(self, changes=None, error=None, machinestorageidswatcherid=None):
'''
- arch : str
- kind : str
- series : str
+ changes : typing.Sequence[~MachineStorageId]
+ error : Error
+ machinestorageidswatcherid : str
'''
- self.arch = arch
- self.kind = kind
- self.series = series
+ self.changes = [MachineStorageId.from_json(o) for o in changes or []]
+ self.error = Error.from_json(error) if error else None
+ self.machinestorageidswatcherid = machinestorageidswatcherid
-class ListImageResult(Type):
- _toSchema = {'result': 'result'}
- _toPy = {'result': 'result'}
- def __init__(self, result=None):
+class BoolResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- result : typing.Sequence[~ImageMetadata]
+ results : typing.Sequence[~BoolResult]
'''
- self.result = [ImageMetadata.from_json(o) for o in result or []]
+ self.results = [BoolResult.from_json(o) for o in results or []]
-class CloudImageMetadata(Type):
- _toSchema = {'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'image_id': 'image_id', 'series': 'series', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'stream': 'stream', 'region': 'region', 'priority': 'priority'}
- _toPy = {'root_storage_type': 'root_storage_type', 'virt_type': 'virt_type', 'version': 'version', 'image_id': 'image_id', 'series': 'series', 'source': 'source', 'root_storage_size': 'root_storage_size', 'arch': 'arch', 'stream': 'stream', 'region': 'region', 'priority': 'priority'}
- def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None):
+class MachinePortRange(Type):
+ _toSchema = {'unittag': 'UnitTag', 'portrange': 'PortRange', 'relationtag': 'RelationTag'}
+ _toPy = {'RelationTag': 'relationtag', 'UnitTag': 'unittag', 'PortRange': 'portrange'}
+ def __init__(self, portrange=None, relationtag=None, unittag=None):
'''
- arch : str
- image_id : str
- priority : int
- region : str
- root_storage_size : int
- root_storage_type : str
- series : str
- source : str
- stream : str
- version : str
- virt_type : str
+ portrange : PortRange
+ relationtag : str
+ unittag : str
'''
- self.arch = arch
- self.image_id = image_id
- self.priority = priority
- self.region = region
- self.root_storage_size = root_storage_size
- self.root_storage_type = root_storage_type
- self.series = series
- self.source = source
- self.stream = stream
- self.version = version
- self.virt_type = virt_type
+ self.portrange = PortRange.from_json(portrange) if portrange else None
+ self.relationtag = relationtag
+ self.unittag = unittag
-class CloudImageMetadataList(Type):
- _toSchema = {'metadata': 'metadata'}
- _toPy = {'metadata': 'metadata'}
- def __init__(self, metadata=None):
+class MachinePorts(Type):
+ _toSchema = {'subnettag': 'SubnetTag', 'machinetag': 'MachineTag'}
+ _toPy = {'MachineTag': 'machinetag', 'SubnetTag': 'subnettag'}
+ def __init__(self, machinetag=None, subnettag=None):
'''
- metadata : typing.Sequence[~CloudImageMetadata]
+ machinetag : str
+ subnettag : str
'''
- self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []]
-
-
-class ImageMetadataFilter(Type):
- _toSchema = {'series': 'series', 'virt_type': 'virt_type', 'stream': 'stream', 'arches': 'arches', 'root_storage_type': 'root-storage-type', 'region': 'region'}
- _toPy = {'arches': 'arches', 'virt_type': 'virt_type', 'stream': 'stream', 'series': 'series', 'root-storage-type': 'root_storage_type', 'region': 'region'}
- def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None):
- '''
- arches : typing.Sequence[str]
- region : str
- root_storage_type : str
- series : typing.Sequence[str]
- stream : str
- virt_type : str
- '''
- self.arches = arches
- self.region = region
- self.root_storage_type = root_storage_type
- self.series = series
- self.stream = stream
- self.virt_type = virt_type
-
-
-class ListCloudImageMetadataResult(Type):
- _toSchema = {'result': 'result'}
- _toPy = {'result': 'result'}
- def __init__(self, result=None):
- '''
- result : typing.Sequence[~CloudImageMetadata]
- '''
- self.result = [CloudImageMetadata.from_json(o) for o in result or []]
+ self.machinetag = machinetag
+ self.subnettag = subnettag
-class MetadataImageIds(Type):
- _toSchema = {'image_ids': 'image_ids'}
- _toPy = {'image_ids': 'image_ids'}
- def __init__(self, image_ids=None):
+class MachinePortsParams(Type):
+ _toSchema = {'params': 'Params'}
+ _toPy = {'Params': 'params'}
+ def __init__(self, params=None):
'''
- image_ids : typing.Sequence[str]
+ params : typing.Sequence[~MachinePorts]
'''
- self.image_ids = image_ids
+ self.params = [MachinePorts.from_json(o) for o in params or []]
-class MetadataSaveParams(Type):
- _toSchema = {'metadata': 'metadata'}
- _toPy = {'metadata': 'metadata'}
- def __init__(self, metadata=None):
+class MachinePortsResult(Type):
+ _toSchema = {'ports': 'Ports', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'Ports': 'ports'}
+ def __init__(self, error=None, ports=None):
'''
- metadata : typing.Sequence[~CloudImageMetadataList]
+ error : Error
+ ports : typing.Sequence[~MachinePortRange]
'''
- self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []]
+ self.error = Error.from_json(error) if error else None
+ self.ports = [MachinePortRange.from_json(o) for o in ports or []]
-class EntityStatusArgs(Type):
- _toSchema = {'info': 'Info', 'status': 'Status', 'tag': 'Tag', 'data': 'Data'}
- _toPy = {'Info': 'info', 'Status': 'status', 'Tag': 'tag', 'Data': 'data'}
- def __init__(self, data=None, info=None, status=None, tag=None):
+class MachinePortsResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- data : typing.Mapping[str, typing.Any]
- info : str
- status : str
- tag : str
+ results : typing.Sequence[~MachinePortsResult]
'''
- self.data = data
- self.info = info
- self.status = status
- self.tag = tag
+ self.results = [MachinePortsResult.from_json(o) for o in results or []]
-class MachineAddresses(Type):
- _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'}
- _toPy = {'Tag': 'tag', 'Addresses': 'addresses'}
- def __init__(self, addresses=None, tag=None):
+class NotifyWatchResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- addresses : typing.Sequence[~Address]
- tag : str
+ results : typing.Sequence[~NotifyWatchResult]
'''
- self.addresses = [Address.from_json(o) for o in addresses or []]
- self.tag = tag
+ self.results = [NotifyWatchResult.from_json(o) for o in results or []]
-class MachineAddressesResult(Type):
- _toSchema = {'addresses': 'Addresses', 'error': 'Error'}
- _toPy = {'Error': 'error', 'Addresses': 'addresses'}
- def __init__(self, addresses=None, error=None):
+class PortRange(Type):
+ _toSchema = {'toport': 'ToPort', 'fromport': 'FromPort', 'protocol': 'Protocol'}
+ _toPy = {'FromPort': 'fromport', 'Protocol': 'protocol', 'ToPort': 'toport'}
+ def __init__(self, fromport=None, protocol=None, toport=None):
'''
- addresses : typing.Sequence[~Address]
- error : Error
+ fromport : int
+ protocol : str
+ toport : int
'''
- self.addresses = [Address.from_json(o) for o in addresses or []]
- self.error = Error.from_json(error) if error else None
+ self.fromport = fromport
+ self.protocol = protocol
+ self.toport = toport
-class MachineAddressesResults(Type):
+class StringResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~MachineAddressesResult]
- '''
- self.results = [MachineAddressesResult.from_json(o) for o in results or []]
-
-
-class SetMachinesAddresses(Type):
- _toSchema = {'machineaddresses': 'MachineAddresses'}
- _toPy = {'MachineAddresses': 'machineaddresses'}
- def __init__(self, machineaddresses=None):
- '''
- machineaddresses : typing.Sequence[~MachineAddresses]
+ results : typing.Sequence[~StringResult]
'''
- self.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []]
+ self.results = [StringResult.from_json(o) for o in results or []]
-class SetStatus(Type):
- _toSchema = {'entities': 'Entities'}
- _toPy = {'Entities': 'entities'}
- def __init__(self, entities=None):
+class StringsResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- entities : typing.Sequence[~EntityStatusArgs]
+ results : typing.Sequence[~StringsResult]
'''
- self.entities = [EntityStatusArgs.from_json(o) for o in entities or []]
+ self.results = [StringsResult.from_json(o) for o in results or []]
-class StatusResult(Type):
- _toSchema = {'info': 'Info', 'status': 'Status', 'data': 'Data', 'error': 'Error', 'since': 'Since', 'id_': 'Id', 'life': 'Life'}
- _toPy = {'Status': 'status', 'Since': 'since', 'Life': 'life', 'Info': 'info', 'Error': 'error', 'Data': 'data', 'Id': 'id_'}
- def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None):
+class ControllersChangeResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
+ def __init__(self, error=None, result=None):
'''
- data : typing.Mapping[str, typing.Any]
error : Error
- id_ : str
- info : str
- life : str
- since : str
- status : str
+ result : ControllersChanges
'''
- self.data = data
self.error = Error.from_json(error) if error else None
- self.id_ = id_
- self.info = info
- self.life = life
- self.since = since
- self.status = status
+ self.result = ControllersChanges.from_json(result) if result else None
-class StatusResults(Type):
+class ControllersChangeResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~StatusResult]
+ results : typing.Sequence[~ControllersChangeResult]
'''
- self.results = [StatusResult.from_json(o) for o in results or []]
+ self.results = [ControllersChangeResult.from_json(o) for o in results or []]
-class ListSSHKeys(Type):
- _toSchema = {'mode': 'Mode', 'entities': 'Entities'}
- _toPy = {'Mode': 'mode', 'Entities': 'entities'}
- def __init__(self, entities=None, mode=None):
+class ControllersChanges(Type):
+ _toSchema = {'maintained': 'maintained', 'added': 'added', 'removed': 'removed', 'promoted': 'promoted', 'converted': 'converted', 'demoted': 'demoted'}
+ _toPy = {'maintained': 'maintained', 'added': 'added', 'removed': 'removed', 'promoted': 'promoted', 'converted': 'converted', 'demoted': 'demoted'}
+ def __init__(self, added=None, converted=None, demoted=None, maintained=None, promoted=None, removed=None):
'''
- entities : Entities
- mode : bool
+ added : typing.Sequence[str]
+ converted : typing.Sequence[str]
+ demoted : typing.Sequence[str]
+ maintained : typing.Sequence[str]
+ promoted : typing.Sequence[str]
+ removed : typing.Sequence[str]
'''
- self.entities = Entities.from_json(entities) if entities else None
- self.mode = mode
+ self.added = added
+ self.converted = converted
+ self.demoted = demoted
+ self.maintained = maintained
+ self.promoted = promoted
+ self.removed = removed
-class ModifyUserSSHKeys(Type):
- _toSchema = {'keys': 'Keys', 'user': 'User'}
- _toPy = {'Keys': 'keys', 'User': 'user'}
- def __init__(self, keys=None, user=None):
+class ControllersSpec(Type):
+ _toSchema = {'constraints': 'constraints', 'modeltag': 'ModelTag', 'num_controllers': 'num-controllers', 'placement': 'placement', 'series': 'series'}
+ _toPy = {'ModelTag': 'modeltag', 'series': 'series', 'num-controllers': 'num_controllers', 'placement': 'placement', 'constraints': 'constraints'}
+ def __init__(self, modeltag=None, constraints=None, num_controllers=None, placement=None, series=None):
'''
- keys : typing.Sequence[str]
- user : str
+ modeltag : str
+ constraints : Value
+ num_controllers : int
+ placement : typing.Sequence[str]
+ series : str
'''
- self.keys = keys
- self.user = user
+ self.modeltag = modeltag
+ self.constraints = Value.from_json(constraints) if constraints else None
+ self.num_controllers = num_controllers
+ self.placement = placement
+ self.series = series
-class ClaimLeadershipBulkParams(Type):
- _toSchema = {'params': 'Params'}
- _toPy = {'Params': 'params'}
- def __init__(self, params=None):
+class ControllersSpecs(Type):
+ _toSchema = {'specs': 'Specs'}
+ _toPy = {'Specs': 'specs'}
+ def __init__(self, specs=None):
'''
- params : typing.Sequence[~ClaimLeadershipParams]
+ specs : typing.Sequence[~ControllersSpec]
'''
- self.params = [ClaimLeadershipParams.from_json(o) for o in params or []]
+ self.specs = [ControllersSpec.from_json(o) for o in specs or []]
-class ClaimLeadershipBulkResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class HAMember(Type):
+ _toSchema = {'publicaddress': 'PublicAddress', 'series': 'Series', 'tag': 'Tag'}
+ _toPy = {'Tag': 'tag', 'PublicAddress': 'publicaddress', 'Series': 'series'}
+ def __init__(self, publicaddress=None, series=None, tag=None):
'''
- results : typing.Sequence[~ErrorResult]
+ publicaddress : Address
+ series : str
+ tag : str
'''
- self.results = [ErrorResult.from_json(o) for o in results or []]
+ self.publicaddress = Address.from_json(publicaddress) if publicaddress else None
+ self.series = series
+ self.tag = tag
-class ClaimLeadershipParams(Type):
- _toSchema = {'unittag': 'UnitTag', 'durationseconds': 'DurationSeconds', 'servicetag': 'ServiceTag'}
- _toPy = {'UnitTag': 'unittag', 'DurationSeconds': 'durationseconds', 'ServiceTag': 'servicetag'}
- def __init__(self, durationseconds=None, servicetag=None, unittag=None):
+class Member(Type):
+ _toSchema = {'priority': 'Priority', 'slavedelay': 'SlaveDelay', 'id_': 'Id', 'hidden': 'Hidden', 'votes': 'Votes', 'buildindexes': 'BuildIndexes', 'address': 'Address', 'tags': 'Tags', 'arbiter': 'Arbiter'}
+ _toPy = {'Hidden': 'hidden', 'Priority': 'priority', 'SlaveDelay': 'slavedelay', 'Id': 'id_', 'Arbiter': 'arbiter', 'Votes': 'votes', 'Tags': 'tags', 'Address': 'address', 'BuildIndexes': 'buildindexes'}
+ def __init__(self, address=None, arbiter=None, buildindexes=None, hidden=None, id_=None, priority=None, slavedelay=None, tags=None, votes=None):
'''
- durationseconds : float
- servicetag : str
- unittag : str
+ address : str
+ arbiter : bool
+ buildindexes : bool
+ hidden : bool
+ id_ : int
+ priority : float
+ slavedelay : int
+ tags : typing.Mapping[str, str]
+ votes : int
'''
- self.durationseconds = durationseconds
- self.servicetag = servicetag
- self.unittag = unittag
+ self.address = address
+ self.arbiter = arbiter
+ self.buildindexes = buildindexes
+ self.hidden = hidden
+ self.id_ = id_
+ self.priority = priority
+ self.slavedelay = slavedelay
+ self.tags = tags
+ self.votes = votes
-class ServiceTag(Type):
- _toSchema = {'name': 'Name'}
- _toPy = {'Name': 'name'}
- def __init__(self, name=None):
+class MongoUpgradeResults(Type):
+ _toSchema = {'members': 'Members', 'master': 'Master', 'rsmembers': 'RsMembers'}
+ _toPy = {'Master': 'master', 'Members': 'members', 'RsMembers': 'rsmembers'}
+ def __init__(self, master=None, members=None, rsmembers=None):
'''
- name : str
+ master : HAMember
+ members : typing.Sequence[~HAMember]
+ rsmembers : typing.Sequence[~Member]
'''
- self.name = name
-
-
-class ActionExecutionResult(Type):
- _toSchema = {'message': 'message', 'results': 'results', 'status': 'status', 'actiontag': 'actiontag'}
- _toPy = {'message': 'message', 'results': 'results', 'status': 'status', 'actiontag': 'actiontag'}
- def __init__(self, actiontag=None, message=None, results=None, status=None):
- '''
- actiontag : str
- message : str
- results : typing.Mapping[str, typing.Any]
- status : str
- '''
- self.actiontag = actiontag
- self.message = message
- self.results = results
- self.status = status
+ self.master = HAMember.from_json(master) if master else None
+ self.members = [HAMember.from_json(o) for o in members or []]
+ self.rsmembers = [Member.from_json(o) for o in rsmembers or []]
-class ActionExecutionResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class ResumeReplicationParams(Type):
+ _toSchema = {'members': 'Members'}
+ _toPy = {'Members': 'members'}
+ def __init__(self, members=None):
'''
- results : typing.Sequence[~ActionExecutionResult]
+ members : typing.Sequence[~Member]
'''
- self.results = [ActionExecutionResult.from_json(o) for o in results or []]
+ self.members = [Member.from_json(o) for o in members or []]
-class JobsResult(Type):
- _toSchema = {'jobs': 'Jobs', 'error': 'Error'}
- _toPy = {'Error': 'error', 'Jobs': 'jobs'}
- def __init__(self, error=None, jobs=None):
+class UpgradeMongoParams(Type):
+ _toSchema = {'minor': 'Minor', 'storageengine': 'StorageEngine', 'patch': 'Patch', 'major': 'Major'}
+ _toPy = {'Patch': 'patch', 'Major': 'major', 'StorageEngine': 'storageengine', 'Minor': 'minor'}
+ def __init__(self, major=None, minor=None, patch=None, storageengine=None):
'''
- error : Error
- jobs : typing.Sequence[str]
+ major : int
+ minor : int
+ patch : str
+ storageengine : str
'''
- self.error = Error.from_json(error) if error else None
- self.jobs = jobs
+ self.major = major
+ self.minor = minor
+ self.patch = patch
+ self.storageengine = storageengine
-class JobsResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class Version(Type):
+ _toSchema = {'minor': 'Minor', 'storageengine': 'StorageEngine', 'patch': 'Patch', 'major': 'Major'}
+ _toPy = {'Patch': 'patch', 'Major': 'major', 'StorageEngine': 'storageengine', 'Minor': 'minor'}
+ def __init__(self, major=None, minor=None, patch=None, storageengine=None):
'''
- results : typing.Sequence[~JobsResult]
+ major : int
+ minor : int
+ patch : str
+ storageengine : str
'''
- self.results = [JobsResult.from_json(o) for o in results or []]
+ self.major = major
+ self.minor = minor
+ self.patch = patch
+ self.storageengine = storageengine
-class NetworkConfig(Type):
- _toSchema = {'dnssearchdomains': 'DNSSearchDomains', 'gatewayaddress': 'GatewayAddress', 'providerspaceid': 'ProviderSpaceId', 'providersubnetid': 'ProviderSubnetId', 'noautostart': 'NoAutoStart', 'mtu': 'MTU', 'providervlanid': 'ProviderVLANId', 'provideraddressid': 'ProviderAddressId', 'dnsservers': 'DNSServers', 'interfacename': 'InterfaceName', 'providerid': 'ProviderId', 'vlantag': 'VLANTag', 'cidr': 'CIDR', 'address': 'Address', 'parentinterfacename': 'ParentInterfaceName', 'interfacetype': 'InterfaceType', 'disabled': 'Disabled', 'deviceindex': 'DeviceIndex', 'configtype': 'ConfigType', 'macaddress': 'MACAddress'}
- _toPy = {'DeviceIndex': 'deviceindex', 'MTU': 'mtu', 'Disabled': 'disabled', 'ProviderId': 'providerid', 'CIDR': 'cidr', 'MACAddress': 'macaddress', 'InterfaceType': 'interfacetype', 'GatewayAddress': 'gatewayaddress', 'InterfaceName': 'interfacename', 'NoAutoStart': 'noautostart', 'DNSServers': 'dnsservers', 'ParentInterfaceName': 'parentinterfacename', 'VLANTag': 'vlantag', 'ProviderVLANId': 'providervlanid', 'ProviderSubnetId': 'providersubnetid', 'ProviderSpaceId': 'providerspaceid', 'Address': 'address', 'ConfigType': 'configtype', 'ProviderAddressId': 'provideraddressid', 'DNSSearchDomains': 'dnssearchdomains'}
- def __init__(self, address=None, cidr=None, configtype=None, dnssearchdomains=None, dnsservers=None, deviceindex=None, disabled=None, gatewayaddress=None, interfacename=None, interfacetype=None, macaddress=None, mtu=None, noautostart=None, parentinterfacename=None, provideraddressid=None, providerid=None, providerspaceid=None, providersubnetid=None, providervlanid=None, vlantag=None):
+class SSHHostKeySet(Type):
+ _toSchema = {'entity_keys': 'entity-keys'}
+ _toPy = {'entity-keys': 'entity_keys'}
+ def __init__(self, entity_keys=None):
'''
- address : str
- cidr : str
- configtype : str
- dnssearchdomains : typing.Sequence[str]
- dnsservers : typing.Sequence[str]
- deviceindex : int
- disabled : bool
- gatewayaddress : str
- interfacename : str
- interfacetype : str
- macaddress : str
- mtu : int
- noautostart : bool
- parentinterfacename : str
- provideraddressid : str
- providerid : str
- providerspaceid : str
- providersubnetid : str
- providervlanid : str
- vlantag : int
+ entity_keys : typing.Sequence[~SSHHostKeys]
'''
- self.address = address
- self.cidr = cidr
- self.configtype = configtype
- self.dnssearchdomains = dnssearchdomains
- self.dnsservers = dnsservers
- self.deviceindex = deviceindex
- self.disabled = disabled
- self.gatewayaddress = gatewayaddress
- self.interfacename = interfacename
- self.interfacetype = interfacetype
- self.macaddress = macaddress
- self.mtu = mtu
- self.noautostart = noautostart
- self.parentinterfacename = parentinterfacename
- self.provideraddressid = provideraddressid
- self.providerid = providerid
- self.providerspaceid = providerspaceid
- self.providersubnetid = providersubnetid
- self.providervlanid = providervlanid
- self.vlantag = vlantag
+ self.entity_keys = [SSHHostKeys.from_json(o) for o in entity_keys or []]
-class SetMachineNetworkConfig(Type):
- _toSchema = {'config': 'Config', 'tag': 'Tag'}
- _toPy = {'Tag': 'tag', 'Config': 'config'}
- def __init__(self, config=None, tag=None):
+class SSHHostKeys(Type):
+ _toSchema = {'public_keys': 'public-keys', 'tag': 'tag'}
+ _toPy = {'public-keys': 'public_keys', 'tag': 'tag'}
+ def __init__(self, public_keys=None, tag=None):
'''
- config : typing.Sequence[~NetworkConfig]
+ public_keys : typing.Sequence[str]
tag : str
'''
- self.config = [NetworkConfig.from_json(o) for o in config or []]
+ self.public_keys = public_keys
self.tag = tag
-class MeterStatusResult(Type):
- _toSchema = {'info': 'Info', 'error': 'Error', 'code': 'Code'}
- _toPy = {'Info': 'info', 'Error': 'error', 'Code': 'code'}
- def __init__(self, code=None, error=None, info=None):
+class ImageFilterParams(Type):
+ _toSchema = {'images': 'images'}
+ _toPy = {'images': 'images'}
+ def __init__(self, images=None):
'''
- code : str
- error : Error
- info : str
+ images : typing.Sequence[~ImageSpec]
'''
- self.code = code
- self.error = Error.from_json(error) if error else None
- self.info = info
+ self.images = [ImageSpec.from_json(o) for o in images or []]
-class MeterStatusResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class ImageMetadata(Type):
+ _toSchema = {'created': 'created', 'arch': 'arch', 'kind': 'kind', 'series': 'series', 'url': 'url'}
+ _toPy = {'created': 'created', 'arch': 'arch', 'kind': 'kind', 'series': 'series', 'url': 'url'}
+ def __init__(self, arch=None, created=None, kind=None, series=None, url=None):
'''
- results : typing.Sequence[~MeterStatusResult]
+ arch : str
+ created : str
+ kind : str
+ series : str
+ url : str
'''
- self.results = [MeterStatusResult.from_json(o) for o in results or []]
+ self.arch = arch
+ self.created = created
+ self.kind = kind
+ self.series = series
+ self.url = url
-class Metric(Type):
- _toSchema = {'key': 'Key', 'time': 'Time', 'value': 'Value'}
- _toPy = {'Time': 'time', 'Value': 'value', 'Key': 'key'}
- def __init__(self, key=None, time=None, value=None):
+class ImageSpec(Type):
+ _toSchema = {'series': 'series', 'arch': 'arch', 'kind': 'kind'}
+ _toPy = {'series': 'series', 'arch': 'arch', 'kind': 'kind'}
+ def __init__(self, arch=None, kind=None, series=None):
'''
- key : str
- time : str
- value : str
+ arch : str
+ kind : str
+ series : str
'''
- self.key = key
- self.time = time
- self.value = value
+ self.arch = arch
+ self.kind = kind
+ self.series = series
-class MetricBatch(Type):
- _toSchema = {'charmurl': 'CharmURL', 'metrics': 'Metrics', 'created': 'Created', 'uuid': 'UUID'}
- _toPy = {'Metrics': 'metrics', 'CharmURL': 'charmurl', 'Created': 'created', 'UUID': 'uuid'}
- def __init__(self, charmurl=None, created=None, metrics=None, uuid=None):
+class ListImageResult(Type):
+ _toSchema = {'result': 'result'}
+ _toPy = {'result': 'result'}
+ def __init__(self, result=None):
'''
- charmurl : str
- created : str
- metrics : typing.Sequence[~Metric]
- uuid : str
+ result : typing.Sequence[~ImageMetadata]
'''
- self.charmurl = charmurl
- self.created = created
- self.metrics = [Metric.from_json(o) for o in metrics or []]
- self.uuid = uuid
+ self.result = [ImageMetadata.from_json(o) for o in result or []]
-class MetricBatchParam(Type):
- _toSchema = {'batch': 'Batch', 'tag': 'Tag'}
- _toPy = {'Tag': 'tag', 'Batch': 'batch'}
- def __init__(self, batch=None, tag=None):
+class CloudImageMetadata(Type):
+ _toSchema = {'image_id': 'image_id', 'priority': 'priority', 'series': 'series', 'region': 'region', 'virt_type': 'virt_type', 'version': 'version', 'root_storage_size': 'root_storage_size', 'stream': 'stream', 'arch': 'arch', 'source': 'source', 'root_storage_type': 'root_storage_type'}
+ _toPy = {'image_id': 'image_id', 'priority': 'priority', 'series': 'series', 'region': 'region', 'virt_type': 'virt_type', 'version': 'version', 'root_storage_size': 'root_storage_size', 'stream': 'stream', 'arch': 'arch', 'source': 'source', 'root_storage_type': 'root_storage_type'}
+ def __init__(self, arch=None, image_id=None, priority=None, region=None, root_storage_size=None, root_storage_type=None, series=None, source=None, stream=None, version=None, virt_type=None):
'''
- batch : MetricBatch
- tag : str
+ arch : str
+ image_id : str
+ priority : int
+ region : str
+ root_storage_size : int
+ root_storage_type : str
+ series : str
+ source : str
+ stream : str
+ version : str
+ virt_type : str
'''
- self.batch = MetricBatch.from_json(batch) if batch else None
- self.tag = tag
+ self.arch = arch
+ self.image_id = image_id
+ self.priority = priority
+ self.region = region
+ self.root_storage_size = root_storage_size
+ self.root_storage_type = root_storage_type
+ self.series = series
+ self.source = source
+ self.stream = stream
+ self.version = version
+ self.virt_type = virt_type
-class MetricBatchParams(Type):
- _toSchema = {'batches': 'Batches'}
- _toPy = {'Batches': 'batches'}
- def __init__(self, batches=None):
+class CloudImageMetadataList(Type):
+ _toSchema = {'metadata': 'metadata'}
+ _toPy = {'metadata': 'metadata'}
+ def __init__(self, metadata=None):
'''
- batches : typing.Sequence[~MetricBatchParam]
+ metadata : typing.Sequence[~CloudImageMetadata]
'''
- self.batches = [MetricBatchParam.from_json(o) for o in batches or []]
+ self.metadata = [CloudImageMetadata.from_json(o) for o in metadata or []]
-class EntityMetrics(Type):
- _toSchema = {'error': 'error', 'metrics': 'metrics'}
- _toPy = {'error': 'error', 'metrics': 'metrics'}
- def __init__(self, error=None, metrics=None):
+class ImageMetadataFilter(Type):
+ _toSchema = {'virt_type': 'virt_type', 'series': 'series', 'region': 'region', 'arches': 'arches', 'stream': 'stream', 'root_storage_type': 'root-storage-type'}
+ _toPy = {'virt_type': 'virt_type', 'series': 'series', 'region': 'region', 'arches': 'arches', 'stream': 'stream', 'root-storage-type': 'root_storage_type'}
+ def __init__(self, arches=None, region=None, root_storage_type=None, series=None, stream=None, virt_type=None):
'''
- error : Error
- metrics : typing.Sequence[~MetricResult]
+ arches : typing.Sequence[str]
+ region : str
+ root_storage_type : str
+ series : typing.Sequence[str]
+ stream : str
+ virt_type : str
'''
- self.error = Error.from_json(error) if error else None
- self.metrics = [MetricResult.from_json(o) for o in metrics or []]
+ self.arches = arches
+ self.region = region
+ self.root_storage_type = root_storage_type
+ self.series = series
+ self.stream = stream
+ self.virt_type = virt_type
-class MeterStatusParam(Type):
- _toSchema = {'info': 'info', 'tag': 'tag', 'code': 'code'}
- _toPy = {'info': 'info', 'tag': 'tag', 'code': 'code'}
- def __init__(self, code=None, info=None, tag=None):
- '''
- code : str
- info : str
- tag : str
+class ListCloudImageMetadataResult(Type):
+ _toSchema = {'result': 'result'}
+ _toPy = {'result': 'result'}
+ def __init__(self, result=None):
'''
- self.code = code
- self.info = info
- self.tag = tag
+ result : typing.Sequence[~CloudImageMetadata]
+ '''
+ self.result = [CloudImageMetadata.from_json(o) for o in result or []]
-class MeterStatusParams(Type):
- _toSchema = {'statues': 'statues'}
- _toPy = {'statues': 'statues'}
- def __init__(self, statues=None):
+class MetadataImageIds(Type):
+ _toSchema = {'image_ids': 'image_ids'}
+ _toPy = {'image_ids': 'image_ids'}
+ def __init__(self, image_ids=None):
'''
- statues : typing.Sequence[~MeterStatusParam]
+ image_ids : typing.Sequence[str]
'''
- self.statues = [MeterStatusParam.from_json(o) for o in statues or []]
+ self.image_ids = image_ids
-class MetricResult(Type):
- _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'}
- _toPy = {'key': 'key', 'time': 'time', 'value': 'value'}
- def __init__(self, key=None, time=None, value=None):
+class MetadataSaveParams(Type):
+ _toSchema = {'metadata': 'metadata'}
+ _toPy = {'metadata': 'metadata'}
+ def __init__(self, metadata=None):
'''
- key : str
- time : str
- value : str
+ metadata : typing.Sequence[~CloudImageMetadataList]
'''
- self.key = key
- self.time = time
- self.value = value
+ self.metadata = [CloudImageMetadataList.from_json(o) for o in metadata or []]
-class MetricResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class EntityStatusArgs(Type):
+ _toSchema = {'data': 'Data', 'tag': 'Tag', 'info': 'Info', 'status': 'Status'}
+ _toPy = {'Tag': 'tag', 'Status': 'status', 'Data': 'data', 'Info': 'info'}
+ def __init__(self, data=None, info=None, status=None, tag=None):
'''
- results : typing.Sequence[~EntityMetrics]
+ data : typing.Mapping[str, typing.Any]
+ info : str
+ status : str
+ tag : str
'''
- self.results = [EntityMetrics.from_json(o) for o in results or []]
+ self.data = data
+ self.info = info
+ self.status = status
+ self.tag = tag
-class PhaseResult(Type):
- _toSchema = {'error': 'Error', 'phase': 'phase'}
- _toPy = {'Error': 'error', 'phase': 'phase'}
- def __init__(self, error=None, phase=None):
+class MachineAddresses(Type):
+ _toSchema = {'addresses': 'Addresses', 'tag': 'Tag'}
+ _toPy = {'Addresses': 'addresses', 'Tag': 'tag'}
+ def __init__(self, addresses=None, tag=None):
'''
+ addresses : typing.Sequence[~Address]
+ tag : str
+ '''
+ self.addresses = [Address.from_json(o) for o in addresses or []]
+ self.tag = tag
+
+
+class MachineAddressesResult(Type):
+ _toSchema = {'addresses': 'Addresses', 'error': 'Error'}
+ _toPy = {'Addresses': 'addresses', 'Error': 'error'}
+ def __init__(self, addresses=None, error=None):
+ '''
+ addresses : typing.Sequence[~Address]
error : Error
- phase : str
'''
+ self.addresses = [Address.from_json(o) for o in addresses or []]
self.error = Error.from_json(error) if error else None
- self.phase = phase
-class PhaseResults(Type):
+class MachineAddressesResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~PhaseResult]
+ results : typing.Sequence[~MachineAddressesResult]
'''
- self.results = [PhaseResult.from_json(o) for o in results or []]
+ self.results = [MachineAddressesResult.from_json(o) for o in results or []]
-class FullMigrationStatus(Type):
- _toSchema = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'}
- _toPy = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'}
- def __init__(self, attempt=None, phase=None, spec=None):
+class SetMachinesAddresses(Type):
+ _toSchema = {'machineaddresses': 'MachineAddresses'}
+ _toPy = {'MachineAddresses': 'machineaddresses'}
+ def __init__(self, machineaddresses=None):
'''
- attempt : int
- phase : str
- spec : ModelMigrationSpec
+ machineaddresses : typing.Sequence[~MachineAddresses]
'''
- self.attempt = attempt
- self.phase = phase
- self.spec = ModelMigrationSpec.from_json(spec) if spec else None
+ self.machineaddresses = [MachineAddresses.from_json(o) for o in machineaddresses or []]
-class SerializedModel(Type):
- _toSchema = {'bytes_': 'bytes'}
- _toPy = {'bytes': 'bytes_'}
- def __init__(self, bytes_=None):
+class SetStatus(Type):
+ _toSchema = {'entities': 'Entities'}
+ _toPy = {'Entities': 'entities'}
+ def __init__(self, entities=None):
'''
- bytes_ : typing.Sequence[int]
+ entities : typing.Sequence[~EntityStatusArgs]
'''
- self.bytes_ = bytes_
+ self.entities = [EntityStatusArgs.from_json(o) for o in entities or []]
-class SetMigrationPhaseArgs(Type):
- _toSchema = {'phase': 'phase'}
- _toPy = {'phase': 'phase'}
- def __init__(self, phase=None):
+class StatusResult(Type):
+ _toSchema = {'since': 'Since', 'data': 'Data', 'info': 'Info', 'life': 'Life', 'error': 'Error', 'id_': 'Id', 'status': 'Status'}
+ _toPy = {'Id': 'id_', 'Data': 'data', 'Since': 'since', 'Error': 'error', 'Life': 'life', 'Status': 'status', 'Info': 'info'}
+ def __init__(self, data=None, error=None, id_=None, info=None, life=None, since=None, status=None):
'''
- phase : str
+ data : typing.Mapping[str, typing.Any]
+ error : Error
+ id_ : str
+ info : str
+ life : str
+ since : str
+ status : str
'''
- self.phase = phase
+ self.data = data
+ self.error = Error.from_json(error) if error else None
+ self.id_ = id_
+ self.info = info
+ self.life = life
+ self.since = since
+ self.status = status
-class MigrationStatus(Type):
- _toSchema = {'source_api_addrs': 'source-api-addrs', 'attempt': 'attempt', 'target_api_addrs': 'target-api-addrs', 'source_ca_cert': 'source-ca-cert', 'phase': 'phase', 'target_ca_cert': 'target-ca-cert'}
- _toPy = {'attempt': 'attempt', 'target-api-addrs': 'target_api_addrs', 'target-ca-cert': 'target_ca_cert', 'phase': 'phase', 'source-ca-cert': 'source_ca_cert', 'source-api-addrs': 'source_api_addrs'}
- def __init__(self, attempt=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None):
+class StatusResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- attempt : int
- phase : str
- source_api_addrs : typing.Sequence[str]
- source_ca_cert : str
- target_api_addrs : typing.Sequence[str]
- target_ca_cert : str
+ results : typing.Sequence[~StatusResult]
'''
- self.attempt = attempt
- self.phase = phase
- self.source_api_addrs = source_api_addrs
- self.source_ca_cert = source_ca_cert
- self.target_api_addrs = target_api_addrs
- self.target_ca_cert = target_ca_cert
+ self.results = [StatusResult.from_json(o) for o in results or []]
-class ModelArgs(Type):
- _toSchema = {'model_tag': 'model-tag'}
- _toPy = {'model-tag': 'model_tag'}
- def __init__(self, model_tag=None):
+class ListSSHKeys(Type):
+ _toSchema = {'mode': 'Mode', 'entities': 'Entities'}
+ _toPy = {'Entities': 'entities', 'Mode': 'mode'}
+ def __init__(self, entities=None, mode=None):
'''
- model_tag : str
+ entities : Entities
+ mode : bool
'''
- self.model_tag = model_tag
+ self.entities = Entities.from_json(entities) if entities else None
+ self.mode = mode
-class ModelCreateArgs(Type):
- _toSchema = {'config': 'Config', 'account': 'Account', 'ownertag': 'OwnerTag'}
- _toPy = {'Account': 'account', 'Config': 'config', 'OwnerTag': 'ownertag'}
- def __init__(self, account=None, config=None, ownertag=None):
+class ModifyUserSSHKeys(Type):
+ _toSchema = {'keys': 'Keys', 'user': 'User'}
+ _toPy = {'User': 'user', 'Keys': 'keys'}
+ def __init__(self, keys=None, user=None):
'''
- account : typing.Mapping[str, typing.Any]
- config : typing.Mapping[str, typing.Any]
- ownertag : str
+ keys : typing.Sequence[str]
+ user : str
'''
- self.account = account
- self.config = config
- self.ownertag = ownertag
+ self.keys = keys
+ self.user = user
-class ModelInfoResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
- def __init__(self, error=None, result=None):
+class ApplicationTag(Type):
+ _toSchema = {'name': 'Name'}
+ _toPy = {'Name': 'name'}
+ def __init__(self, name=None):
'''
- error : Error
- result : ModelInfo
+ name : str
'''
- self.error = Error.from_json(error) if error else None
- self.result = ModelInfo.from_json(result) if result else None
+ self.name = name
-class ModelInfoResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class ClaimLeadershipBulkParams(Type):
+ _toSchema = {'params': 'Params'}
+ _toPy = {'Params': 'params'}
+ def __init__(self, params=None):
'''
- results : typing.Sequence[~ModelInfoResult]
+ params : typing.Sequence[~ClaimLeadershipParams]
'''
- self.results = [ModelInfoResult.from_json(o) for o in results or []]
+ self.params = [ClaimLeadershipParams.from_json(o) for o in params or []]
-class ModelSkeletonConfigArgs(Type):
- _toSchema = {'provider': 'Provider', 'region': 'Region'}
- _toPy = {'Region': 'region', 'Provider': 'provider'}
- def __init__(self, provider=None, region=None):
+class ClaimLeadershipBulkResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- provider : str
- region : str
+ results : typing.Sequence[~ErrorResult]
'''
- self.provider = provider
- self.region = region
+ self.results = [ErrorResult.from_json(o) for o in results or []]
-class ModifyModelAccess(Type):
- _toSchema = {'user_tag': 'user-tag', 'access': 'access', 'action': 'action', 'model_tag': 'model-tag'}
- _toPy = {'model-tag': 'model_tag', 'access': 'access', 'action': 'action', 'user-tag': 'user_tag'}
- def __init__(self, access=None, action=None, model_tag=None, user_tag=None):
+class ClaimLeadershipParams(Type):
+ _toSchema = {'unittag': 'UnitTag', 'applicationtag': 'ApplicationTag', 'durationseconds': 'DurationSeconds'}
+ _toPy = {'UnitTag': 'unittag', 'DurationSeconds': 'durationseconds', 'ApplicationTag': 'applicationtag'}
+ def __init__(self, applicationtag=None, durationseconds=None, unittag=None):
'''
- access : str
- action : str
- model_tag : str
- user_tag : str
+ applicationtag : str
+ durationseconds : float
+ unittag : str
'''
- self.access = access
- self.action = action
- self.model_tag = model_tag
- self.user_tag = user_tag
+ self.applicationtag = applicationtag
+ self.durationseconds = durationseconds
+ self.unittag = unittag
-class ModifyModelAccessRequest(Type):
- _toSchema = {'changes': 'changes'}
- _toPy = {'changes': 'changes'}
- def __init__(self, changes=None):
+class ActionExecutionResult(Type):
+ _toSchema = {'message': 'message', 'results': 'results', 'actiontag': 'actiontag', 'status': 'status'}
+ _toPy = {'message': 'message', 'results': 'results', 'actiontag': 'actiontag', 'status': 'status'}
+ def __init__(self, actiontag=None, message=None, results=None, status=None):
'''
- changes : typing.Sequence[~ModifyModelAccess]
+ actiontag : str
+ message : str
+ results : typing.Mapping[str, typing.Any]
+ status : str
'''
- self.changes = [ModifyModelAccess.from_json(o) for o in changes or []]
+ self.actiontag = actiontag
+ self.message = message
+ self.results = results
+ self.status = status
-class ConstraintsResult(Type):
- _toSchema = {'error': 'Error', 'constraints': 'Constraints'}
- _toPy = {'Constraints': 'constraints', 'Error': 'error'}
- def __init__(self, constraints=None, error=None):
+class ActionExecutionResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
+ '''
+ results : typing.Sequence[~ActionExecutionResult]
+ '''
+ self.results = [ActionExecutionResult.from_json(o) for o in results or []]
+
+
+class JobsResult(Type):
+ _toSchema = {'jobs': 'Jobs', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'Jobs': 'jobs'}
+ def __init__(self, error=None, jobs=None):
'''
- constraints : Value
error : Error
+ jobs : typing.Sequence[str]
'''
- self.constraints = Value.from_json(constraints) if constraints else None
self.error = Error.from_json(error) if error else None
+ self.jobs = jobs
-class ConstraintsResults(Type):
+class JobsResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~ConstraintsResult]
- '''
- self.results = [ConstraintsResult.from_json(o) for o in results or []]
-
-
-class ContainerConfig(Type):
- _toSchema = {'sslhostnameverification': 'SSLHostnameVerification', 'authorizedkeys': 'AuthorizedKeys', 'aptproxy': 'AptProxy', 'updatebehavior': 'UpdateBehavior', 'providertype': 'ProviderType', 'allowlxcloopmounts': 'AllowLXCLoopMounts', 'proxy': 'Proxy', 'aptmirror': 'AptMirror', 'preferipv6': 'PreferIPv6'}
- _toPy = {'AuthorizedKeys': 'authorizedkeys', 'AptMirror': 'aptmirror', 'AptProxy': 'aptproxy', 'SSLHostnameVerification': 'sslhostnameverification', 'PreferIPv6': 'preferipv6', 'AllowLXCLoopMounts': 'allowlxcloopmounts', 'UpdateBehavior': 'updatebehavior', 'Proxy': 'proxy', 'ProviderType': 'providertype'}
- def __init__(self, allowlxcloopmounts=None, aptmirror=None, aptproxy=None, authorizedkeys=None, preferipv6=None, providertype=None, proxy=None, sslhostnameverification=None, updatebehavior=None):
- '''
- allowlxcloopmounts : bool
- aptmirror : str
- aptproxy : Settings
- authorizedkeys : str
- preferipv6 : bool
- providertype : str
- proxy : Settings
- sslhostnameverification : bool
- updatebehavior : UpdateBehavior
+ results : typing.Sequence[~JobsResult]
'''
- self.allowlxcloopmounts = allowlxcloopmounts
- self.aptmirror = aptmirror
- self.aptproxy = Settings.from_json(aptproxy) if aptproxy else None
- self.authorizedkeys = authorizedkeys
- self.preferipv6 = preferipv6
- self.providertype = providertype
- self.proxy = Settings.from_json(proxy) if proxy else None
- self.sslhostnameverification = sslhostnameverification
- self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None
+ self.results = [JobsResult.from_json(o) for o in results or []]
-class ContainerManagerConfig(Type):
- _toSchema = {'managerconfig': 'ManagerConfig'}
- _toPy = {'ManagerConfig': 'managerconfig'}
- def __init__(self, managerconfig=None):
+class NetworkConfig(Type):
+ _toSchema = {'mtu': 'MTU', 'disabled': 'Disabled', 'interfacename': 'InterfaceName', 'dnsservers': 'DNSServers', 'providerid': 'ProviderId', 'providersubnetid': 'ProviderSubnetId', 'deviceindex': 'DeviceIndex', 'vlantag': 'VLANTag', 'provideraddressid': 'ProviderAddressId', 'dnssearchdomains': 'DNSSearchDomains', 'noautostart': 'NoAutoStart', 'macaddress': 'MACAddress', 'address': 'Address', 'cidr': 'CIDR', 'interfacetype': 'InterfaceType', 'parentinterfacename': 'ParentInterfaceName', 'gatewayaddress': 'GatewayAddress', 'providervlanid': 'ProviderVLANId', 'configtype': 'ConfigType', 'providerspaceid': 'ProviderSpaceId'}
+ _toPy = {'InterfaceType': 'interfacetype', 'ConfigType': 'configtype', 'ProviderVLANId': 'providervlanid', 'ProviderAddressId': 'provideraddressid', 'Disabled': 'disabled', 'ProviderSpaceId': 'providerspaceid', 'GatewayAddress': 'gatewayaddress', 'InterfaceName': 'interfacename', 'ProviderSubnetId': 'providersubnetid', 'MTU': 'mtu', 'VLANTag': 'vlantag', 'NoAutoStart': 'noautostart', 'DNSServers': 'dnsservers', 'DNSSearchDomains': 'dnssearchdomains', 'DeviceIndex': 'deviceindex', 'Address': 'address', 'ProviderId': 'providerid', 'MACAddress': 'macaddress', 'CIDR': 'cidr', 'ParentInterfaceName': 'parentinterfacename'}
+ def __init__(self, address=None, cidr=None, configtype=None, dnssearchdomains=None, dnsservers=None, deviceindex=None, disabled=None, gatewayaddress=None, interfacename=None, interfacetype=None, macaddress=None, mtu=None, noautostart=None, parentinterfacename=None, provideraddressid=None, providerid=None, providerspaceid=None, providersubnetid=None, providervlanid=None, vlantag=None):
'''
- managerconfig : typing.Mapping[str, str]
+ address : str
+ cidr : str
+ configtype : str
+ dnssearchdomains : typing.Sequence[str]
+ dnsservers : typing.Sequence[str]
+ deviceindex : int
+ disabled : bool
+ gatewayaddress : str
+ interfacename : str
+ interfacetype : str
+ macaddress : str
+ mtu : int
+ noautostart : bool
+ parentinterfacename : str
+ provideraddressid : str
+ providerid : str
+ providerspaceid : str
+ providersubnetid : str
+ providervlanid : str
+ vlantag : int
'''
- self.managerconfig = managerconfig
+ self.address = address
+ self.cidr = cidr
+ self.configtype = configtype
+ self.dnssearchdomains = dnssearchdomains
+ self.dnsservers = dnsservers
+ self.deviceindex = deviceindex
+ self.disabled = disabled
+ self.gatewayaddress = gatewayaddress
+ self.interfacename = interfacename
+ self.interfacetype = interfacetype
+ self.macaddress = macaddress
+ self.mtu = mtu
+ self.noautostart = noautostart
+ self.parentinterfacename = parentinterfacename
+ self.provideraddressid = provideraddressid
+ self.providerid = providerid
+ self.providerspaceid = providerspaceid
+ self.providersubnetid = providersubnetid
+ self.providervlanid = providervlanid
+ self.vlantag = vlantag
-class ContainerManagerConfigParams(Type):
- _toSchema = {'type_': 'Type'}
- _toPy = {'Type': 'type_'}
- def __init__(self, type_=None):
+class SetMachineNetworkConfig(Type):
+ _toSchema = {'config': 'Config', 'tag': 'Tag'}
+ _toPy = {'Tag': 'tag', 'Config': 'config'}
+ def __init__(self, config=None, tag=None):
'''
- type_ : str
+ config : typing.Sequence[~NetworkConfig]
+ tag : str
'''
- self.type_ = type_
+ self.config = [NetworkConfig.from_json(o) for o in config or []]
+ self.tag = tag
-class DistributionGroupResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
- def __init__(self, error=None, result=None):
+class MeterStatusResult(Type):
+ _toSchema = {'code': 'Code', 'error': 'Error', 'info': 'Info'}
+ _toPy = {'Code': 'code', 'Error': 'error', 'Info': 'info'}
+ def __init__(self, code=None, error=None, info=None):
'''
+ code : str
error : Error
- result : typing.Sequence[str]
+ info : str
'''
+ self.code = code
self.error = Error.from_json(error) if error else None
- self.result = result
+ self.info = info
-class DistributionGroupResults(Type):
+class MeterStatusResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~DistributionGroupResult]
+ results : typing.Sequence[~MeterStatusResult]
'''
- self.results = [DistributionGroupResult.from_json(o) for o in results or []]
+ self.results = [MeterStatusResult.from_json(o) for o in results or []]
-class InstanceInfo(Type):
- _toSchema = {'nonce': 'Nonce', 'networkconfig': 'NetworkConfig', 'tag': 'Tag', 'characteristics': 'Characteristics', 'volumeattachments': 'VolumeAttachments', 'volumes': 'Volumes', 'instanceid': 'InstanceId'}
- _toPy = {'Tag': 'tag', 'InstanceId': 'instanceid', 'Volumes': 'volumes', 'Characteristics': 'characteristics', 'Nonce': 'nonce', 'NetworkConfig': 'networkconfig', 'VolumeAttachments': 'volumeattachments'}
- def __init__(self, characteristics=None, instanceid=None, networkconfig=None, nonce=None, tag=None, volumeattachments=None, volumes=None):
+class Metric(Type):
+ _toSchema = {'key': 'Key', 'time': 'Time', 'value': 'Value'}
+ _toPy = {'Value': 'value', 'Key': 'key', 'Time': 'time'}
+ def __init__(self, key=None, time=None, value=None):
'''
- characteristics : HardwareCharacteristics
- instanceid : str
- networkconfig : typing.Sequence[~NetworkConfig]
- nonce : str
- tag : str
- volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo]
- volumes : typing.Sequence[~Volume]
+ key : str
+ time : str
+ value : str
'''
- self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None
- self.instanceid = instanceid
- self.networkconfig = [NetworkConfig.from_json(o) for o in networkconfig or []]
- self.nonce = nonce
- self.tag = tag
- self.volumeattachments = {k: VolumeAttachmentInfo.from_json(v) for k, v in (volumeattachments or dict()).items()}
- self.volumes = [Volume.from_json(o) for o in volumes or []]
+ self.key = key
+ self.time = time
+ self.value = value
-class InstancesInfo(Type):
- _toSchema = {'machines': 'Machines'}
- _toPy = {'Machines': 'machines'}
- def __init__(self, machines=None):
+class MetricBatch(Type):
+ _toSchema = {'charmurl': 'CharmURL', 'uuid': 'UUID', 'created': 'Created', 'metrics': 'Metrics'}
+ _toPy = {'CharmURL': 'charmurl', 'Metrics': 'metrics', 'Created': 'created', 'UUID': 'uuid'}
+ def __init__(self, charmurl=None, created=None, metrics=None, uuid=None):
'''
- machines : typing.Sequence[~InstanceInfo]
+ charmurl : str
+ created : str
+ metrics : typing.Sequence[~Metric]
+ uuid : str
'''
- self.machines = [InstanceInfo.from_json(o) for o in machines or []]
+ self.charmurl = charmurl
+ self.created = created
+ self.metrics = [Metric.from_json(o) for o in metrics or []]
+ self.uuid = uuid
-class MachineContainers(Type):
- _toSchema = {'machinetag': 'MachineTag', 'containertypes': 'ContainerTypes'}
- _toPy = {'ContainerTypes': 'containertypes', 'MachineTag': 'machinetag'}
- def __init__(self, containertypes=None, machinetag=None):
+class MetricBatchParam(Type):
+ _toSchema = {'batch': 'Batch', 'tag': 'Tag'}
+ _toPy = {'Tag': 'tag', 'Batch': 'batch'}
+ def __init__(self, batch=None, tag=None):
'''
- containertypes : typing.Sequence[str]
- machinetag : str
+ batch : MetricBatch
+ tag : str
'''
- self.containertypes = containertypes
- self.machinetag = machinetag
+ self.batch = MetricBatch.from_json(batch) if batch else None
+ self.tag = tag
-class MachineContainersParams(Type):
- _toSchema = {'params': 'Params'}
- _toPy = {'Params': 'params'}
- def __init__(self, params=None):
+class MetricBatchParams(Type):
+ _toSchema = {'batches': 'Batches'}
+ _toPy = {'Batches': 'batches'}
+ def __init__(self, batches=None):
'''
- params : typing.Sequence[~MachineContainers]
+ batches : typing.Sequence[~MetricBatchParam]
'''
- self.params = [MachineContainers.from_json(o) for o in params or []]
+ self.batches = [MetricBatchParam.from_json(o) for o in batches or []]
-class MachineNetworkConfigResult(Type):
- _toSchema = {'info': 'Info', 'error': 'Error'}
- _toPy = {'Info': 'info', 'Error': 'error'}
- def __init__(self, error=None, info=None):
+class EntityMetrics(Type):
+ _toSchema = {'error': 'error', 'metrics': 'metrics'}
+ _toPy = {'error': 'error', 'metrics': 'metrics'}
+ def __init__(self, error=None, metrics=None):
'''
error : Error
- info : typing.Sequence[~NetworkConfig]
+ metrics : typing.Sequence[~MetricResult]
'''
self.error = Error.from_json(error) if error else None
- self.info = [NetworkConfig.from_json(o) for o in info or []]
+ self.metrics = [MetricResult.from_json(o) for o in metrics or []]
-class MachineNetworkConfigResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class MeterStatusParam(Type):
+ _toSchema = {'code': 'code', 'tag': 'tag', 'info': 'info'}
+ _toPy = {'code': 'code', 'tag': 'tag', 'info': 'info'}
+ def __init__(self, code=None, info=None, tag=None):
'''
- results : typing.Sequence[~MachineNetworkConfigResult]
+ code : str
+ info : str
+ tag : str
'''
- self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []]
+ self.code = code
+ self.info = info
+ self.tag = tag
-class ProvisioningInfo(Type):
- _toSchema = {'jobs': 'Jobs', 'volumes': 'Volumes', 'tags': 'Tags', 'endpointbindings': 'EndpointBindings', 'placement': 'Placement', 'series': 'Series', 'constraints': 'Constraints', 'subnetstozones': 'SubnetsToZones', 'imagemetadata': 'ImageMetadata'}
- _toPy = {'Constraints': 'constraints', 'EndpointBindings': 'endpointbindings', 'Volumes': 'volumes', 'Placement': 'placement', 'SubnetsToZones': 'subnetstozones', 'Tags': 'tags', 'Jobs': 'jobs', 'ImageMetadata': 'imagemetadata', 'Series': 'series'}
- def __init__(self, constraints=None, endpointbindings=None, imagemetadata=None, jobs=None, placement=None, series=None, subnetstozones=None, tags=None, volumes=None):
+class MeterStatusParams(Type):
+ _toSchema = {'statues': 'statues'}
+ _toPy = {'statues': 'statues'}
+ def __init__(self, statues=None):
'''
- constraints : Value
- endpointbindings : typing.Mapping[str, str]
- imagemetadata : typing.Sequence[~CloudImageMetadata]
- jobs : typing.Sequence[str]
- placement : str
- series : str
- subnetstozones : typing.Sequence[str]
- tags : typing.Mapping[str, str]
- volumes : typing.Sequence[~VolumeParams]
+ statues : typing.Sequence[~MeterStatusParam]
'''
- self.constraints = Value.from_json(constraints) if constraints else None
- self.endpointbindings = endpointbindings
- self.imagemetadata = [CloudImageMetadata.from_json(o) for o in imagemetadata or []]
- self.jobs = jobs
- self.placement = placement
- self.series = series
- self.subnetstozones = subnetstozones
- self.tags = tags
- self.volumes = [VolumeParams.from_json(o) for o in volumes or []]
+ self.statues = [MeterStatusParam.from_json(o) for o in statues or []]
-class ProvisioningInfoResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
- def __init__(self, error=None, result=None):
+class MetricResult(Type):
+ _toSchema = {'key': 'key', 'time': 'time', 'value': 'value'}
+ _toPy = {'key': 'key', 'time': 'time', 'value': 'value'}
+ def __init__(self, key=None, time=None, value=None):
'''
- error : Error
- result : ProvisioningInfo
+ key : str
+ time : str
+ value : str
'''
- self.error = Error.from_json(error) if error else None
- self.result = ProvisioningInfo.from_json(result) if result else None
+ self.key = key
+ self.time = time
+ self.value = value
-class ProvisioningInfoResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
+class MetricResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~ProvisioningInfoResult]
- '''
- self.results = [ProvisioningInfoResult.from_json(o) for o in results or []]
-
-
-class Settings(Type):
- _toSchema = {'https': 'Https', 'noproxy': 'NoProxy', 'ftp': 'Ftp', 'http': 'Http'}
- _toPy = {'Http': 'http', 'Ftp': 'ftp', 'Https': 'https', 'NoProxy': 'noproxy'}
- def __init__(self, ftp=None, http=None, https=None, noproxy=None):
- '''
- ftp : str
- http : str
- https : str
- noproxy : str
+ results : typing.Sequence[~EntityMetrics]
'''
- self.ftp = ftp
- self.http = http
- self.https = https
- self.noproxy = noproxy
+ self.results = [EntityMetrics.from_json(o) for o in results or []]
-class ToolsResult(Type):
- _toSchema = {'error': 'Error', 'disablesslhostnameverification': 'DisableSSLHostnameVerification', 'toolslist': 'ToolsList'}
- _toPy = {'Error': 'error', 'ToolsList': 'toolslist', 'DisableSSLHostnameVerification': 'disablesslhostnameverification'}
- def __init__(self, disablesslhostnameverification=None, error=None, toolslist=None):
+class PhaseResult(Type):
+ _toSchema = {'error': 'Error', 'phase': 'phase'}
+ _toPy = {'Error': 'error', 'phase': 'phase'}
+ def __init__(self, error=None, phase=None):
'''
- disablesslhostnameverification : bool
error : Error
- toolslist : typing.Sequence[~Tools]
+ phase : str
'''
- self.disablesslhostnameverification = disablesslhostnameverification
self.error = Error.from_json(error) if error else None
- self.toolslist = [Tools.from_json(o) for o in toolslist or []]
+ self.phase = phase
-class ToolsResults(Type):
+class PhaseResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~ToolsResult]
+ results : typing.Sequence[~PhaseResult]
'''
- self.results = [ToolsResult.from_json(o) for o in results or []]
+ self.results = [PhaseResult.from_json(o) for o in results or []]
-class UpdateBehavior(Type):
- _toSchema = {'enableosupgrade': 'EnableOSUpgrade', 'enableosrefreshupdate': 'EnableOSRefreshUpdate'}
- _toPy = {'EnableOSUpgrade': 'enableosupgrade', 'EnableOSRefreshUpdate': 'enableosrefreshupdate'}
- def __init__(self, enableosrefreshupdate=None, enableosupgrade=None):
+class FullMigrationStatus(Type):
+ _toSchema = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'}
+ _toPy = {'attempt': 'attempt', 'phase': 'phase', 'spec': 'spec'}
+ def __init__(self, attempt=None, phase=None, spec=None):
'''
- enableosrefreshupdate : bool
- enableosupgrade : bool
+ attempt : int
+ phase : str
+ spec : ModelMigrationSpec
'''
- self.enableosrefreshupdate = enableosrefreshupdate
- self.enableosupgrade = enableosupgrade
+ self.attempt = attempt
+ self.phase = phase
+ self.spec = ModelMigrationSpec.from_json(spec) if spec else None
-class Volume(Type):
- _toSchema = {'info': 'info', 'volumetag': 'volumetag'}
- _toPy = {'info': 'info', 'volumetag': 'volumetag'}
- def __init__(self, info=None, volumetag=None):
+class SerializedModel(Type):
+ _toSchema = {'bytes_': 'bytes'}
+ _toPy = {'bytes': 'bytes_'}
+ def __init__(self, bytes_=None):
'''
- info : VolumeInfo
- volumetag : str
+ bytes_ : typing.Sequence[int]
'''
- self.info = VolumeInfo.from_json(info) if info else None
- self.volumetag = volumetag
+ self.bytes_ = bytes_
-class VolumeAttachmentInfo(Type):
- _toSchema = {'devicename': 'devicename', 'devicelink': 'devicelink', 'read_only': 'read-only', 'busaddress': 'busaddress'}
- _toPy = {'read-only': 'read_only', 'devicename': 'devicename', 'devicelink': 'devicelink', 'busaddress': 'busaddress'}
- def __init__(self, busaddress=None, devicelink=None, devicename=None, read_only=None):
+class SetMigrationPhaseArgs(Type):
+ _toSchema = {'phase': 'phase'}
+ _toPy = {'phase': 'phase'}
+ def __init__(self, phase=None):
'''
- busaddress : str
- devicelink : str
- devicename : str
- read_only : bool
+ phase : str
'''
- self.busaddress = busaddress
- self.devicelink = devicelink
- self.devicename = devicename
- self.read_only = read_only
+ self.phase = phase
-class VolumeAttachmentParams(Type):
- _toSchema = {'volumeid': 'volumeid', 'instanceid': 'instanceid', 'volumetag': 'volumetag', 'machinetag': 'machinetag', 'provider': 'provider', 'read_only': 'read-only'}
- _toPy = {'volumeid': 'volumeid', 'instanceid': 'instanceid', 'read-only': 'read_only', 'volumetag': 'volumetag', 'machinetag': 'machinetag', 'provider': 'provider'}
- def __init__(self, instanceid=None, machinetag=None, provider=None, read_only=None, volumeid=None, volumetag=None):
+class MigrationStatus(Type):
+ _toSchema = {'attempt': 'attempt', 'source_api_addrs': 'source-api-addrs', 'target_api_addrs': 'target-api-addrs', 'source_ca_cert': 'source-ca-cert', 'phase': 'phase', 'target_ca_cert': 'target-ca-cert'}
+ _toPy = {'target-ca-cert': 'target_ca_cert', 'source-ca-cert': 'source_ca_cert', 'attempt': 'attempt', 'source-api-addrs': 'source_api_addrs', 'phase': 'phase', 'target-api-addrs': 'target_api_addrs'}
+ def __init__(self, attempt=None, phase=None, source_api_addrs=None, source_ca_cert=None, target_api_addrs=None, target_ca_cert=None):
'''
- instanceid : str
- machinetag : str
- provider : str
- read_only : bool
- volumeid : str
- volumetag : str
+ attempt : int
+ phase : str
+ source_api_addrs : typing.Sequence[str]
+ source_ca_cert : str
+ target_api_addrs : typing.Sequence[str]
+ target_ca_cert : str
'''
- self.instanceid = instanceid
- self.machinetag = machinetag
- self.provider = provider
- self.read_only = read_only
- self.volumeid = volumeid
- self.volumetag = volumetag
+ self.attempt = attempt
+ self.phase = phase
+ self.source_api_addrs = source_api_addrs
+ self.source_ca_cert = source_ca_cert
+ self.target_api_addrs = target_api_addrs
+ self.target_ca_cert = target_ca_cert
-class VolumeInfo(Type):
- _toSchema = {'volumeid': 'volumeid', 'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size'}
- _toPy = {'volumeid': 'volumeid', 'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size'}
- def __init__(self, hardwareid=None, persistent=None, size=None, volumeid=None):
+class ModelArgs(Type):
+ _toSchema = {'model_tag': 'model-tag'}
+ _toPy = {'model-tag': 'model_tag'}
+ def __init__(self, model_tag=None):
'''
- hardwareid : str
- persistent : bool
- size : int
- volumeid : str
+ model_tag : str
'''
- self.hardwareid = hardwareid
- self.persistent = persistent
- self.size = size
- self.volumeid = volumeid
+ self.model_tag = model_tag
-class VolumeParams(Type):
- _toSchema = {'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'}
- _toPy = {'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'}
- def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volumetag=None):
+class ModelCreateArgs(Type):
+ _toSchema = {'account': 'Account', 'ownertag': 'OwnerTag', 'config': 'Config'}
+ _toPy = {'Account': 'account', 'OwnerTag': 'ownertag', 'Config': 'config'}
+ def __init__(self, account=None, config=None, ownertag=None):
'''
- attachment : VolumeAttachmentParams
- attributes : typing.Mapping[str, typing.Any]
- provider : str
- size : int
- tags : typing.Mapping[str, str]
- volumetag : str
+ account : typing.Mapping[str, typing.Any]
+ config : typing.Mapping[str, typing.Any]
+ ownertag : str
'''
- self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None
- self.attributes = attributes
- self.provider = provider
- self.size = size
- self.tags = tags
- self.volumetag = volumetag
+ self.account = account
+ self.config = config
+ self.ownertag = ownertag
-class WatchContainer(Type):
- _toSchema = {'containertype': 'ContainerType', 'machinetag': 'MachineTag'}
- _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'}
- def __init__(self, containertype=None, machinetag=None):
+class ModelInfoResult(Type):
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
+ def __init__(self, error=None, result=None):
'''
- containertype : str
- machinetag : str
+ error : Error
+ result : ModelInfo
'''
- self.containertype = containertype
- self.machinetag = machinetag
+ self.error = Error.from_json(error) if error else None
+ self.result = ModelInfo.from_json(result) if result else None
-class WatchContainers(Type):
- _toSchema = {'params': 'Params'}
- _toPy = {'Params': 'params'}
- def __init__(self, params=None):
+class ModelInfoResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
'''
- params : typing.Sequence[~WatchContainer]
+ results : typing.Sequence[~ModelInfoResult]
'''
- self.params = [WatchContainer.from_json(o) for o in params or []]
+ self.results = [ModelInfoResult.from_json(o) for o in results or []]
-class ProxyConfig(Type):
- _toSchema = {'https': 'HTTPS', 'noproxy': 'NoProxy', 'ftp': 'FTP', 'http': 'HTTP'}
- _toPy = {'HTTP': 'http', 'HTTPS': 'https', 'NoProxy': 'noproxy', 'FTP': 'ftp'}
- def __init__(self, ftp=None, http=None, https=None, noproxy=None):
+class ModelSkeletonConfigArgs(Type):
+ _toSchema = {'region': 'Region', 'provider': 'Provider'}
+ _toPy = {'Provider': 'provider', 'Region': 'region'}
+ def __init__(self, provider=None, region=None):
'''
- ftp : str
- http : str
- https : str
- noproxy : str
+ provider : str
+ region : str
'''
- self.ftp = ftp
- self.http = http
- self.https = https
- self.noproxy = noproxy
+ self.provider = provider
+ self.region = region
-class ProxyConfigResult(Type):
- _toSchema = {'proxysettings': 'ProxySettings', 'error': 'Error', 'aptproxysettings': 'APTProxySettings'}
- _toPy = {'Error': 'error', 'APTProxySettings': 'aptproxysettings', 'ProxySettings': 'proxysettings'}
- def __init__(self, aptproxysettings=None, error=None, proxysettings=None):
+class ModifyModelAccess(Type):
+ _toSchema = {'action': 'action', 'model_tag': 'model-tag', 'user_tag': 'user-tag', 'access': 'access'}
+ _toPy = {'user-tag': 'user_tag', 'action': 'action', 'model-tag': 'model_tag', 'access': 'access'}
+ def __init__(self, access=None, action=None, model_tag=None, user_tag=None):
'''
- aptproxysettings : ProxyConfig
- error : Error
- proxysettings : ProxyConfig
+ access : str
+ action : str
+ model_tag : str
+ user_tag : str
'''
- self.aptproxysettings = ProxyConfig.from_json(aptproxysettings) if aptproxysettings else None
- self.error = Error.from_json(error) if error else None
- self.proxysettings = ProxyConfig.from_json(proxysettings) if proxysettings else None
+ self.access = access
+ self.action = action
+ self.model_tag = model_tag
+ self.user_tag = user_tag
-class ProxyConfigResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
+class ModifyModelAccessRequest(Type):
+ _toSchema = {'changes': 'changes'}
+ _toPy = {'changes': 'changes'}
+ def __init__(self, changes=None):
'''
- results : typing.Sequence[~ProxyConfigResult]
+ changes : typing.Sequence[~ModifyModelAccess]
'''
- self.results = [ProxyConfigResult.from_json(o) for o in results or []]
+ self.changes = [ModifyModelAccess.from_json(o) for o in changes or []]
-class RebootActionResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
- def __init__(self, error=None, result=None):
+class ConstraintsResult(Type):
+ _toSchema = {'constraints': 'Constraints', 'error': 'Error'}
+ _toPy = {'Constraints': 'constraints', 'Error': 'error'}
+ def __init__(self, constraints=None, error=None):
'''
+ constraints : Value
error : Error
- result : str
'''
+ self.constraints = Value.from_json(constraints) if constraints else None
self.error = Error.from_json(error) if error else None
- self.result = result
-class RebootActionResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
+class ConstraintsResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~RebootActionResult]
+ results : typing.Sequence[~ConstraintsResult]
'''
- self.results = [RebootActionResult.from_json(o) for o in results or []]
+ self.results = [ConstraintsResult.from_json(o) for o in results or []]
-class RelationUnitsChange(Type):
- _toSchema = {'departed': 'Departed', 'changed': 'Changed'}
- _toPy = {'Departed': 'departed', 'Changed': 'changed'}
- def __init__(self, changed=None, departed=None):
+class ContainerConfig(Type):
+ _toSchema = {'allowlxcloopmounts': 'AllowLXCLoopMounts', 'updatebehavior': 'UpdateBehavior', 'aptmirror': 'AptMirror', 'authorizedkeys': 'AuthorizedKeys', 'sslhostnameverification': 'SSLHostnameVerification', 'aptproxy': 'AptProxy', 'providertype': 'ProviderType', 'proxy': 'Proxy'}
+ _toPy = {'UpdateBehavior': 'updatebehavior', 'SSLHostnameVerification': 'sslhostnameverification', 'AptMirror': 'aptmirror', 'Proxy': 'proxy', 'AptProxy': 'aptproxy', 'AuthorizedKeys': 'authorizedkeys', 'AllowLXCLoopMounts': 'allowlxcloopmounts', 'ProviderType': 'providertype'}
+ def __init__(self, allowlxcloopmounts=None, aptmirror=None, aptproxy=None, authorizedkeys=None, providertype=None, proxy=None, sslhostnameverification=None, updatebehavior=None):
'''
- changed : typing.Mapping[str, ~UnitSettings]
- departed : typing.Sequence[str]
+ allowlxcloopmounts : bool
+ aptmirror : str
+ aptproxy : Settings
+ authorizedkeys : str
+ providertype : str
+ proxy : Settings
+ sslhostnameverification : bool
+ updatebehavior : UpdateBehavior
'''
- self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()}
- self.departed = departed
-
-
-class RelationUnitsWatchResult(Type):
- _toSchema = {'changes': 'Changes', 'error': 'Error', 'relationunitswatcherid': 'RelationUnitsWatcherId'}
- _toPy = {'Changes': 'changes', 'Error': 'error', 'RelationUnitsWatcherId': 'relationunitswatcherid'}
- def __init__(self, changes=None, error=None, relationunitswatcherid=None):
- '''
- changes : RelationUnitsChange
- error : Error
- relationunitswatcherid : str
- '''
- self.changes = RelationUnitsChange.from_json(changes) if changes else None
- self.error = Error.from_json(error) if error else None
- self.relationunitswatcherid = relationunitswatcherid
+ self.allowlxcloopmounts = allowlxcloopmounts
+ self.aptmirror = aptmirror
+ self.aptproxy = Settings.from_json(aptproxy) if aptproxy else None
+ self.authorizedkeys = authorizedkeys
+ self.providertype = providertype
+ self.proxy = Settings.from_json(proxy) if proxy else None
+ self.sslhostnameverification = sslhostnameverification
+ self.updatebehavior = UpdateBehavior.from_json(updatebehavior) if updatebehavior else None
-class UnitSettings(Type):
- _toSchema = {'version': 'Version'}
- _toPy = {'Version': 'version'}
- def __init__(self, version=None):
+class ContainerManagerConfig(Type):
+ _toSchema = {'managerconfig': 'ManagerConfig'}
+ _toPy = {'ManagerConfig': 'managerconfig'}
+ def __init__(self, managerconfig=None):
'''
- version : int
+ managerconfig : typing.Mapping[str, str]
'''
- self.version = version
+ self.managerconfig = managerconfig
-class RetryStrategy(Type):
- _toSchema = {'maxretrytime': 'MaxRetryTime', 'minretrytime': 'MinRetryTime', 'jitterretrytime': 'JitterRetryTime', 'shouldretry': 'ShouldRetry', 'retrytimefactor': 'RetryTimeFactor'}
- _toPy = {'MinRetryTime': 'minretrytime', 'ShouldRetry': 'shouldretry', 'MaxRetryTime': 'maxretrytime', 'RetryTimeFactor': 'retrytimefactor', 'JitterRetryTime': 'jitterretrytime'}
- def __init__(self, jitterretrytime=None, maxretrytime=None, minretrytime=None, retrytimefactor=None, shouldretry=None):
+class ContainerManagerConfigParams(Type):
+ _toSchema = {'type_': 'Type'}
+ _toPy = {'Type': 'type_'}
+ def __init__(self, type_=None):
'''
- jitterretrytime : bool
- maxretrytime : int
- minretrytime : int
- retrytimefactor : int
- shouldretry : bool
+ type_ : str
'''
- self.jitterretrytime = jitterretrytime
- self.maxretrytime = maxretrytime
- self.minretrytime = minretrytime
- self.retrytimefactor = retrytimefactor
- self.shouldretry = shouldretry
+ self.type_ = type_
-class RetryStrategyResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
+class DistributionGroupResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
- result : RetryStrategy
+ result : typing.Sequence[str]
'''
self.error = Error.from_json(error) if error else None
- self.result = RetryStrategy.from_json(result) if result else None
+ self.result = result
-class RetryStrategyResults(Type):
+class DistributionGroupResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~RetryStrategyResult]
+ results : typing.Sequence[~DistributionGroupResult]
'''
- self.results = [RetryStrategyResult.from_json(o) for o in results or []]
+ self.results = [DistributionGroupResult.from_json(o) for o in results or []]
-class SSHAddressResult(Type):
- _toSchema = {'error': 'error', 'address': 'address'}
- _toPy = {'error': 'error', 'address': 'address'}
- def __init__(self, address=None, error=None):
+class InstanceInfo(Type):
+ _toSchema = {'networkconfig': 'NetworkConfig', 'nonce': 'Nonce', 'characteristics': 'Characteristics', 'volumeattachments': 'VolumeAttachments', 'instanceid': 'InstanceId', 'tag': 'Tag', 'volumes': 'Volumes'}
+ _toPy = {'Characteristics': 'characteristics', 'InstanceId': 'instanceid', 'Volumes': 'volumes', 'Nonce': 'nonce', 'VolumeAttachments': 'volumeattachments', 'Tag': 'tag', 'NetworkConfig': 'networkconfig'}
+ def __init__(self, characteristics=None, instanceid=None, networkconfig=None, nonce=None, tag=None, volumeattachments=None, volumes=None):
'''
- address : str
- error : Error
+ characteristics : HardwareCharacteristics
+ instanceid : str
+ networkconfig : typing.Sequence[~NetworkConfig]
+ nonce : str
+ tag : str
+ volumeattachments : typing.Mapping[str, ~VolumeAttachmentInfo]
+ volumes : typing.Sequence[~Volume]
'''
- self.address = address
- self.error = Error.from_json(error) if error else None
+ self.characteristics = HardwareCharacteristics.from_json(characteristics) if characteristics else None
+ self.instanceid = instanceid
+ self.networkconfig = [NetworkConfig.from_json(o) for o in networkconfig or []]
+ self.nonce = nonce
+ self.tag = tag
+ self.volumeattachments = {k: VolumeAttachmentInfo.from_json(v) for k, v in (volumeattachments or dict()).items()}
+ self.volumes = [Volume.from_json(o) for o in volumes or []]
-class SSHAddressResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class InstancesInfo(Type):
+ _toSchema = {'machines': 'Machines'}
+ _toPy = {'Machines': 'machines'}
+ def __init__(self, machines=None):
'''
- results : typing.Sequence[~SSHAddressResult]
+ machines : typing.Sequence[~InstanceInfo]
'''
- self.results = [SSHAddressResult.from_json(o) for o in results or []]
+ self.machines = [InstanceInfo.from_json(o) for o in machines or []]
-class SSHProxyResult(Type):
- _toSchema = {'use_proxy': 'use-proxy'}
- _toPy = {'use-proxy': 'use_proxy'}
- def __init__(self, use_proxy=None):
+class MachineContainers(Type):
+ _toSchema = {'containertypes': 'ContainerTypes', 'machinetag': 'MachineTag'}
+ _toPy = {'MachineTag': 'machinetag', 'ContainerTypes': 'containertypes'}
+ def __init__(self, containertypes=None, machinetag=None):
'''
- use_proxy : bool
+ containertypes : typing.Sequence[str]
+ machinetag : str
'''
- self.use_proxy = use_proxy
+ self.containertypes = containertypes
+ self.machinetag = machinetag
-class SSHPublicKeysResult(Type):
- _toSchema = {'error': 'error', 'public_keys': 'public-keys'}
- _toPy = {'error': 'error', 'public-keys': 'public_keys'}
- def __init__(self, error=None, public_keys=None):
+class MachineContainersParams(Type):
+ _toSchema = {'params': 'Params'}
+ _toPy = {'Params': 'params'}
+ def __init__(self, params=None):
'''
- error : Error
- public_keys : typing.Sequence[str]
+ params : typing.Sequence[~MachineContainers]
'''
- self.error = Error.from_json(error) if error else None
- self.public_keys = public_keys
+ self.params = [MachineContainers.from_json(o) for o in params or []]
-class SSHPublicKeysResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class MachineNetworkConfigResult(Type):
+ _toSchema = {'info': 'Info', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'Info': 'info'}
+ def __init__(self, error=None, info=None):
'''
- results : typing.Sequence[~SSHPublicKeysResult]
+ error : Error
+ info : typing.Sequence[~NetworkConfig]
'''
- self.results = [SSHPublicKeysResult.from_json(o) for o in results or []]
+ self.error = Error.from_json(error) if error else None
+ self.info = [NetworkConfig.from_json(o) for o in info or []]
-class AddRelation(Type):
- _toSchema = {'endpoints': 'Endpoints'}
- _toPy = {'Endpoints': 'endpoints'}
- def __init__(self, endpoints=None):
+class MachineNetworkConfigResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- endpoints : typing.Sequence[str]
+ results : typing.Sequence[~MachineNetworkConfigResult]
'''
- self.endpoints = endpoints
+ self.results = [MachineNetworkConfigResult.from_json(o) for o in results or []]
-class AddRelationResults(Type):
- _toSchema = {'endpoints': 'Endpoints'}
- _toPy = {'Endpoints': 'endpoints'}
- def __init__(self, endpoints=None):
+class ProvisioningInfo(Type):
+ _toSchema = {'jobs': 'Jobs', 'series': 'Series', 'imagemetadata': 'ImageMetadata', 'placement': 'Placement', 'subnetstozones': 'SubnetsToZones', 'constraints': 'Constraints', 'tags': 'Tags', 'endpointbindings': 'EndpointBindings', 'volumes': 'Volumes'}
+ _toPy = {'Constraints': 'constraints', 'ImageMetadata': 'imagemetadata', 'SubnetsToZones': 'subnetstozones', 'Series': 'series', 'Volumes': 'volumes', 'Tags': 'tags', 'EndpointBindings': 'endpointbindings', 'Placement': 'placement', 'Jobs': 'jobs'}
+ def __init__(self, constraints=None, endpointbindings=None, imagemetadata=None, jobs=None, placement=None, series=None, subnetstozones=None, tags=None, volumes=None):
'''
- endpoints : typing.Mapping[str, ~Relation]
+ constraints : Value
+ endpointbindings : typing.Mapping[str, str]
+ imagemetadata : typing.Sequence[~CloudImageMetadata]
+ jobs : typing.Sequence[str]
+ placement : str
+ series : str
+ subnetstozones : typing.Sequence[str]
+ tags : typing.Mapping[str, str]
+ volumes : typing.Sequence[~VolumeParams]
'''
- self.endpoints = {k: Relation.from_json(v) for k, v in (endpoints or dict()).items()}
+ self.constraints = Value.from_json(constraints) if constraints else None
+ self.endpointbindings = endpointbindings
+ self.imagemetadata = [CloudImageMetadata.from_json(o) for o in imagemetadata or []]
+ self.jobs = jobs
+ self.placement = placement
+ self.series = series
+ self.subnetstozones = subnetstozones
+ self.tags = tags
+ self.volumes = [VolumeParams.from_json(o) for o in volumes or []]
-class AddServiceUnits(Type):
- _toSchema = {'servicename': 'ServiceName', 'placement': 'Placement', 'numunits': 'NumUnits'}
- _toPy = {'ServiceName': 'servicename', 'Placement': 'placement', 'NumUnits': 'numunits'}
- def __init__(self, numunits=None, placement=None, servicename=None):
+class ProvisioningInfoResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
+ def __init__(self, error=None, result=None):
'''
- numunits : int
- placement : typing.Sequence[~Placement]
- servicename : str
+ error : Error
+ result : ProvisioningInfo
'''
- self.numunits = numunits
- self.placement = [Placement.from_json(o) for o in placement or []]
- self.servicename = servicename
+ self.error = Error.from_json(error) if error else None
+ self.result = ProvisioningInfo.from_json(result) if result else None
-class AddServiceUnitsResults(Type):
- _toSchema = {'units': 'Units'}
- _toPy = {'Units': 'units'}
- def __init__(self, units=None):
+class ProvisioningInfoResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- units : typing.Sequence[str]
+ results : typing.Sequence[~ProvisioningInfoResult]
'''
- self.units = units
+ self.results = [ProvisioningInfoResult.from_json(o) for o in results or []]
-class DestroyRelation(Type):
- _toSchema = {'endpoints': 'Endpoints'}
- _toPy = {'Endpoints': 'endpoints'}
- def __init__(self, endpoints=None):
+class Settings(Type):
+ _toSchema = {'ftp': 'Ftp', 'noproxy': 'NoProxy', 'http': 'Http', 'https': 'Https'}
+ _toPy = {'Http': 'http', 'Https': 'https', 'NoProxy': 'noproxy', 'Ftp': 'ftp'}
+ def __init__(self, ftp=None, http=None, https=None, noproxy=None):
'''
- endpoints : typing.Sequence[str]
+ ftp : str
+ http : str
+ https : str
+ noproxy : str
'''
- self.endpoints = endpoints
+ self.ftp = ftp
+ self.http = http
+ self.https = https
+ self.noproxy = noproxy
-class DestroyServiceUnits(Type):
- _toSchema = {'unitnames': 'UnitNames'}
- _toPy = {'UnitNames': 'unitnames'}
- def __init__(self, unitnames=None):
+class ToolsResult(Type):
+ _toSchema = {'toolslist': 'ToolsList', 'disablesslhostnameverification': 'DisableSSLHostnameVerification', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'DisableSSLHostnameVerification': 'disablesslhostnameverification', 'ToolsList': 'toolslist'}
+ def __init__(self, disablesslhostnameverification=None, error=None, toolslist=None):
'''
- unitnames : typing.Sequence[str]
+ disablesslhostnameverification : bool
+ error : Error
+ toolslist : typing.Sequence[~Tools]
'''
- self.unitnames = unitnames
+ self.disablesslhostnameverification = disablesslhostnameverification
+ self.error = Error.from_json(error) if error else None
+ self.toolslist = [Tools.from_json(o) for o in toolslist or []]
-class GetServiceConstraints(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class ToolsResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- servicename : str
+ results : typing.Sequence[~ToolsResult]
'''
- self.servicename = servicename
+ self.results = [ToolsResult.from_json(o) for o in results or []]
-class Relation(Type):
- _toSchema = {'name': 'Name', 'limit': 'Limit', 'role': 'Role', 'optional': 'Optional', 'scope': 'Scope', 'interface': 'Interface'}
- _toPy = {'Optional': 'optional', 'Limit': 'limit', 'Scope': 'scope', 'Name': 'name', 'Role': 'role', 'Interface': 'interface'}
- def __init__(self, interface=None, limit=None, name=None, optional=None, role=None, scope=None):
+class UpdateBehavior(Type):
+ _toSchema = {'enableosupgrade': 'EnableOSUpgrade', 'enableosrefreshupdate': 'EnableOSRefreshUpdate'}
+ _toPy = {'EnableOSRefreshUpdate': 'enableosrefreshupdate', 'EnableOSUpgrade': 'enableosupgrade'}
+ def __init__(self, enableosrefreshupdate=None, enableosupgrade=None):
'''
- interface : str
- limit : int
- name : str
- optional : bool
- role : str
- scope : str
+ enableosrefreshupdate : bool
+ enableosupgrade : bool
'''
- self.interface = interface
- self.limit = limit
- self.name = name
- self.optional = optional
- self.role = role
- self.scope = scope
+ self.enableosrefreshupdate = enableosrefreshupdate
+ self.enableosupgrade = enableosupgrade
-class ServiceCharmRelations(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class Volume(Type):
+ _toSchema = {'volumetag': 'volumetag', 'info': 'info'}
+ _toPy = {'volumetag': 'volumetag', 'info': 'info'}
+ def __init__(self, info=None, volumetag=None):
'''
- servicename : str
+ info : VolumeInfo
+ volumetag : str
'''
- self.servicename = servicename
+ self.info = VolumeInfo.from_json(info) if info else None
+ self.volumetag = volumetag
-class ServiceCharmRelationsResults(Type):
- _toSchema = {'charmrelations': 'CharmRelations'}
- _toPy = {'CharmRelations': 'charmrelations'}
- def __init__(self, charmrelations=None):
+class VolumeAttachmentInfo(Type):
+ _toSchema = {'read_only': 'read-only', 'devicelink': 'devicelink', 'busaddress': 'busaddress', 'devicename': 'devicename'}
+ _toPy = {'devicelink': 'devicelink', 'busaddress': 'busaddress', 'devicename': 'devicename', 'read-only': 'read_only'}
+ def __init__(self, busaddress=None, devicelink=None, devicename=None, read_only=None):
'''
- charmrelations : typing.Sequence[str]
+ busaddress : str
+ devicelink : str
+ devicename : str
+ read_only : bool
'''
- self.charmrelations = charmrelations
+ self.busaddress = busaddress
+ self.devicelink = devicelink
+ self.devicename = devicename
+ self.read_only = read_only
-class ServiceDeploy(Type):
- _toSchema = {'configyaml': 'ConfigYAML', 'storage': 'Storage', 'endpointbindings': 'EndpointBindings', 'resources': 'Resources', 'servicename': 'ServiceName', 'series': 'Series', 'charmurl': 'CharmUrl', 'config': 'Config', 'channel': 'Channel', 'placement': 'Placement', 'numunits': 'NumUnits', 'constraints': 'Constraints'}
- _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints', 'ConfigYAML': 'configyaml', 'Resources': 'resources', 'Channel': 'channel', 'Storage': 'storage', 'Config': 'config', 'Placement': 'placement', 'EndpointBindings': 'endpointbindings', 'NumUnits': 'numunits', 'CharmUrl': 'charmurl', 'Series': 'series'}
- def __init__(self, channel=None, charmurl=None, config=None, configyaml=None, constraints=None, endpointbindings=None, numunits=None, placement=None, resources=None, series=None, servicename=None, storage=None):
+class VolumeAttachmentParams(Type):
+ _toSchema = {'volumetag': 'volumetag', 'read_only': 'read-only', 'provider': 'provider', 'volumeid': 'volumeid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'}
+ _toPy = {'volumetag': 'volumetag', 'provider': 'provider', 'read-only': 'read_only', 'volumeid': 'volumeid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'}
+ def __init__(self, instanceid=None, machinetag=None, provider=None, read_only=None, volumeid=None, volumetag=None):
'''
- channel : str
- charmurl : str
- config : typing.Mapping[str, str]
- configyaml : str
- constraints : Value
- endpointbindings : typing.Mapping[str, str]
- numunits : int
- placement : typing.Sequence[~Placement]
- resources : typing.Mapping[str, str]
- series : str
- servicename : str
- storage : typing.Mapping[str, ~Constraints]
+ instanceid : str
+ machinetag : str
+ provider : str
+ read_only : bool
+ volumeid : str
+ volumetag : str
'''
- self.channel = channel
- self.charmurl = charmurl
- self.config = config
- self.configyaml = configyaml
- self.constraints = Value.from_json(constraints) if constraints else None
- self.endpointbindings = endpointbindings
- self.numunits = numunits
- self.placement = [Placement.from_json(o) for o in placement or []]
- self.resources = resources
- self.series = series
- self.servicename = servicename
- self.storage = {k: Constraints.from_json(v) for k, v in (storage or dict()).items()}
+ self.instanceid = instanceid
+ self.machinetag = machinetag
+ self.provider = provider
+ self.read_only = read_only
+ self.volumeid = volumeid
+ self.volumetag = volumetag
-class ServiceDestroy(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class VolumeInfo(Type):
+ _toSchema = {'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size', 'volumeid': 'volumeid'}
+ _toPy = {'hardwareid': 'hardwareid', 'persistent': 'persistent', 'size': 'size', 'volumeid': 'volumeid'}
+ def __init__(self, hardwareid=None, persistent=None, size=None, volumeid=None):
'''
- servicename : str
+ hardwareid : str
+ persistent : bool
+ size : int
+ volumeid : str
'''
- self.servicename = servicename
+ self.hardwareid = hardwareid
+ self.persistent = persistent
+ self.size = size
+ self.volumeid = volumeid
-class ServiceExpose(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class VolumeParams(Type):
+ _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'tags': 'tags', 'provider': 'provider'}
+ _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'tags': 'tags', 'provider': 'provider'}
+ def __init__(self, attachment=None, attributes=None, provider=None, size=None, tags=None, volumetag=None):
'''
- servicename : str
+ attachment : VolumeAttachmentParams
+ attributes : typing.Mapping[str, typing.Any]
+ provider : str
+ size : int
+ tags : typing.Mapping[str, str]
+ volumetag : str
'''
- self.servicename = servicename
+ self.attachment = VolumeAttachmentParams.from_json(attachment) if attachment else None
+ self.attributes = attributes
+ self.provider = provider
+ self.size = size
+ self.tags = tags
+ self.volumetag = volumetag
-class ServiceGet(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class WatchContainer(Type):
+ _toSchema = {'machinetag': 'MachineTag', 'containertype': 'ContainerType'}
+ _toPy = {'MachineTag': 'machinetag', 'ContainerType': 'containertype'}
+ def __init__(self, containertype=None, machinetag=None):
'''
- servicename : str
+ containertype : str
+ machinetag : str
'''
- self.servicename = servicename
+ self.containertype = containertype
+ self.machinetag = machinetag
-class ServiceGetResults(Type):
- _toSchema = {'config': 'Config', 'charm': 'Charm', 'constraints': 'Constraints', 'service': 'Service'}
- _toPy = {'Charm': 'charm', 'Constraints': 'constraints', 'Config': 'config', 'Service': 'service'}
- def __init__(self, charm=None, config=None, constraints=None, service=None):
+class WatchContainers(Type):
+ _toSchema = {'params': 'Params'}
+ _toPy = {'Params': 'params'}
+ def __init__(self, params=None):
'''
- charm : str
- config : typing.Mapping[str, typing.Any]
- constraints : Value
- service : str
+ params : typing.Sequence[~WatchContainer]
'''
- self.charm = charm
- self.config = config
- self.constraints = Value.from_json(constraints) if constraints else None
- self.service = service
+ self.params = [WatchContainer.from_json(o) for o in params or []]
-class ServiceMetricCredential(Type):
- _toSchema = {'metriccredentials': 'MetricCredentials', 'servicename': 'ServiceName'}
- _toPy = {'MetricCredentials': 'metriccredentials', 'ServiceName': 'servicename'}
- def __init__(self, metriccredentials=None, servicename=None):
+class ProxyConfig(Type):
+ _toSchema = {'ftp': 'FTP', 'noproxy': 'NoProxy', 'http': 'HTTP', 'https': 'HTTPS'}
+ _toPy = {'NoProxy': 'noproxy', 'FTP': 'ftp', 'HTTPS': 'https', 'HTTP': 'http'}
+ def __init__(self, ftp=None, http=None, https=None, noproxy=None):
'''
- metriccredentials : typing.Sequence[int]
- servicename : str
+ ftp : str
+ http : str
+ https : str
+ noproxy : str
'''
- self.metriccredentials = metriccredentials
- self.servicename = servicename
+ self.ftp = ftp
+ self.http = http
+ self.https = https
+ self.noproxy = noproxy
-class ServiceMetricCredentials(Type):
- _toSchema = {'creds': 'Creds'}
- _toPy = {'Creds': 'creds'}
- def __init__(self, creds=None):
+class ProxyConfigResult(Type):
+ _toSchema = {'proxysettings': 'ProxySettings', 'aptproxysettings': 'APTProxySettings', 'error': 'Error'}
+ _toPy = {'ProxySettings': 'proxysettings', 'APTProxySettings': 'aptproxysettings', 'Error': 'error'}
+ def __init__(self, aptproxysettings=None, error=None, proxysettings=None):
'''
- creds : typing.Sequence[~ServiceMetricCredential]
+ aptproxysettings : ProxyConfig
+ error : Error
+ proxysettings : ProxyConfig
'''
- self.creds = [ServiceMetricCredential.from_json(o) for o in creds or []]
+ self.aptproxysettings = ProxyConfig.from_json(aptproxysettings) if aptproxysettings else None
+ self.error = Error.from_json(error) if error else None
+ self.proxysettings = ProxyConfig.from_json(proxysettings) if proxysettings else None
-class ServiceSet(Type):
- _toSchema = {'options': 'Options', 'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename', 'Options': 'options'}
- def __init__(self, options=None, servicename=None):
+class ProxyConfigResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
'''
- options : typing.Mapping[str, str]
- servicename : str
+ results : typing.Sequence[~ProxyConfigResult]
'''
- self.options = options
- self.servicename = servicename
+ self.results = [ProxyConfigResult.from_json(o) for o in results or []]
-class ServiceSetCharm(Type):
- _toSchema = {'charmurl': 'charmurl', 'forceseries': 'forceseries', 'forceunits': 'forceunits', 'resourceids': 'resourceids', 'cs_channel': 'cs-channel', 'servicename': 'servicename'}
- _toPy = {'charmurl': 'charmurl', 'forceseries': 'forceseries', 'forceunits': 'forceunits', 'cs-channel': 'cs_channel', 'resourceids': 'resourceids', 'servicename': 'servicename'}
- def __init__(self, charmurl=None, cs_channel=None, forceseries=None, forceunits=None, resourceids=None, servicename=None):
+class RebootActionResult(Type):
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
+ def __init__(self, error=None, result=None):
'''
- charmurl : str
- cs_channel : str
- forceseries : bool
- forceunits : bool
- resourceids : typing.Mapping[str, str]
- servicename : str
+ error : Error
+ result : str
'''
- self.charmurl = charmurl
- self.cs_channel = cs_channel
- self.forceseries = forceseries
- self.forceunits = forceunits
- self.resourceids = resourceids
- self.servicename = servicename
+ self.error = Error.from_json(error) if error else None
+ self.result = result
-class ServiceUnexpose(Type):
- _toSchema = {'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename'}
- def __init__(self, servicename=None):
+class RebootActionResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
'''
- servicename : str
+ results : typing.Sequence[~RebootActionResult]
'''
- self.servicename = servicename
+ self.results = [RebootActionResult.from_json(o) for o in results or []]
-class ServiceUnset(Type):
- _toSchema = {'options': 'Options', 'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename', 'Options': 'options'}
- def __init__(self, options=None, servicename=None):
+class RelationUnitsChange(Type):
+ _toSchema = {'departed': 'Departed', 'changed': 'Changed'}
+ _toPy = {'Changed': 'changed', 'Departed': 'departed'}
+ def __init__(self, changed=None, departed=None):
'''
- options : typing.Sequence[str]
- servicename : str
+ changed : typing.Mapping[str, ~UnitSettings]
+ departed : typing.Sequence[str]
'''
- self.options = options
- self.servicename = servicename
+ self.changed = {k: UnitSettings.from_json(v) for k, v in (changed or dict()).items()}
+ self.departed = departed
-class ServiceUpdate(Type):
- _toSchema = {'charmurl': 'CharmUrl', 'forceseries': 'ForceSeries', 'minunits': 'MinUnits', 'forcecharmurl': 'ForceCharmUrl', 'settingsyaml': 'SettingsYAML', 'settingsstrings': 'SettingsStrings', 'constraints': 'Constraints', 'servicename': 'ServiceName'}
- _toPy = {'ServiceName': 'servicename', 'Constraints': 'constraints', 'SettingsStrings': 'settingsstrings', 'ForceSeries': 'forceseries', 'CharmUrl': 'charmurl', 'SettingsYAML': 'settingsyaml', 'MinUnits': 'minunits', 'ForceCharmUrl': 'forcecharmurl'}
- def __init__(self, charmurl=None, constraints=None, forcecharmurl=None, forceseries=None, minunits=None, servicename=None, settingsstrings=None, settingsyaml=None):
+class RelationUnitsWatchResult(Type):
+ _toSchema = {'changes': 'Changes', 'relationunitswatcherid': 'RelationUnitsWatcherId', 'error': 'Error'}
+ _toPy = {'Changes': 'changes', 'RelationUnitsWatcherId': 'relationunitswatcherid', 'Error': 'error'}
+ def __init__(self, changes=None, error=None, relationunitswatcherid=None):
'''
- charmurl : str
- constraints : Value
- forcecharmurl : bool
- forceseries : bool
- minunits : int
- servicename : str
- settingsstrings : typing.Mapping[str, str]
- settingsyaml : str
+ changes : RelationUnitsChange
+ error : Error
+ relationunitswatcherid : str
'''
- self.charmurl = charmurl
- self.constraints = Value.from_json(constraints) if constraints else None
- self.forcecharmurl = forcecharmurl
- self.forceseries = forceseries
- self.minunits = minunits
- self.servicename = servicename
- self.settingsstrings = settingsstrings
- self.settingsyaml = settingsyaml
+ self.changes = RelationUnitsChange.from_json(changes) if changes else None
+ self.error = Error.from_json(error) if error else None
+ self.relationunitswatcherid = relationunitswatcherid
-class ServicesDeploy(Type):
- _toSchema = {'services': 'Services'}
- _toPy = {'Services': 'services'}
- def __init__(self, services=None):
+class UnitSettings(Type):
+ _toSchema = {'version': 'Version'}
+ _toPy = {'Version': 'version'}
+ def __init__(self, version=None):
'''
- services : typing.Sequence[~ServiceDeploy]
+ version : int
'''
- self.services = [ServiceDeploy.from_json(o) for o in services or []]
+ self.version = version
-class SingularClaim(Type):
- _toSchema = {'modeltag': 'ModelTag', 'controllertag': 'ControllerTag', 'duration': 'Duration'}
- _toPy = {'ControllerTag': 'controllertag', 'Duration': 'duration', 'ModelTag': 'modeltag'}
- def __init__(self, controllertag=None, duration=None, modeltag=None):
+class RetryStrategy(Type):
+ _toSchema = {'jitterretrytime': 'JitterRetryTime', 'shouldretry': 'ShouldRetry', 'minretrytime': 'MinRetryTime', 'retrytimefactor': 'RetryTimeFactor', 'maxretrytime': 'MaxRetryTime'}
+ _toPy = {'MinRetryTime': 'minretrytime', 'JitterRetryTime': 'jitterretrytime', 'RetryTimeFactor': 'retrytimefactor', 'MaxRetryTime': 'maxretrytime', 'ShouldRetry': 'shouldretry'}
+ def __init__(self, jitterretrytime=None, maxretrytime=None, minretrytime=None, retrytimefactor=None, shouldretry=None):
'''
- controllertag : str
- duration : int
- modeltag : str
+ jitterretrytime : bool
+ maxretrytime : int
+ minretrytime : int
+ retrytimefactor : int
+ shouldretry : bool
'''
- self.controllertag = controllertag
- self.duration = duration
- self.modeltag = modeltag
+ self.jitterretrytime = jitterretrytime
+ self.maxretrytime = maxretrytime
+ self.minretrytime = minretrytime
+ self.retrytimefactor = retrytimefactor
+ self.shouldretry = shouldretry
-class SingularClaims(Type):
- _toSchema = {'claims': 'Claims'}
- _toPy = {'Claims': 'claims'}
- def __init__(self, claims=None):
+class RetryStrategyResult(Type):
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
+ def __init__(self, error=None, result=None):
'''
- claims : typing.Sequence[~SingularClaim]
+ error : Error
+ result : RetryStrategy
'''
- self.claims = [SingularClaim.from_json(o) for o in claims or []]
+ self.error = Error.from_json(error) if error else None
+ self.result = RetryStrategy.from_json(result) if result else None
-class ListSpacesResults(Type):
+class RetryStrategyResults(Type):
_toSchema = {'results': 'Results'}
_toPy = {'Results': 'results'}
def __init__(self, results=None):
'''
- results : typing.Sequence[~Space]
+ results : typing.Sequence[~RetryStrategyResult]
'''
- self.results = [Space.from_json(o) for o in results or []]
+ self.results = [RetryStrategyResult.from_json(o) for o in results or []]
-class Space(Type):
- _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'}
- _toPy = {'Error': 'error', 'Subnets': 'subnets', 'Name': 'name'}
- def __init__(self, error=None, name=None, subnets=None):
+class SSHAddressResult(Type):
+ _toSchema = {'address': 'address', 'error': 'error'}
+ _toPy = {'address': 'address', 'error': 'error'}
+ def __init__(self, address=None, error=None):
'''
+ address : str
error : Error
- name : str
- subnets : typing.Sequence[~Subnet]
'''
+ self.address = address
self.error = Error.from_json(error) if error else None
- self.name = name
- self.subnets = [Subnet.from_json(o) for o in subnets or []]
-class StatusHistoryPruneArgs(Type):
- _toSchema = {'maxlogsperentity': 'MaxLogsPerEntity'}
- _toPy = {'MaxLogsPerEntity': 'maxlogsperentity'}
- def __init__(self, maxlogsperentity=None):
+class SSHAddressResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
'''
- maxlogsperentity : int
+ results : typing.Sequence[~SSHAddressResult]
'''
- self.maxlogsperentity = maxlogsperentity
+ self.results = [SSHAddressResult.from_json(o) for o in results or []]
-class FilesystemAttachmentInfo(Type):
- _toSchema = {'mountpoint': 'mountpoint', 'read_only': 'read-only'}
- _toPy = {'mountpoint': 'mountpoint', 'read-only': 'read_only'}
- def __init__(self, mountpoint=None, read_only=None):
+class SSHProxyResult(Type):
+ _toSchema = {'use_proxy': 'use-proxy'}
+ _toPy = {'use-proxy': 'use_proxy'}
+ def __init__(self, use_proxy=None):
'''
- mountpoint : str
- read_only : bool
+ use_proxy : bool
'''
- self.mountpoint = mountpoint
- self.read_only = read_only
+ self.use_proxy = use_proxy
-class FilesystemDetails(Type):
- _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage', 'machineattachments': 'machineattachments'}
- _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage', 'machineattachments': 'machineattachments'}
- def __init__(self, filesystemtag=None, info=None, machineattachments=None, status=None, storage=None, volumetag=None):
+class SSHPublicKeysResult(Type):
+ _toSchema = {'public_keys': 'public-keys', 'error': 'error'}
+ _toPy = {'public-keys': 'public_keys', 'error': 'error'}
+ def __init__(self, error=None, public_keys=None):
+ '''
+ error : Error
+ public_keys : typing.Sequence[str]
+ '''
+ self.error = Error.from_json(error) if error else None
+ self.public_keys = public_keys
+
+
+class SSHPublicKeysResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
+ '''
+ results : typing.Sequence[~SSHPublicKeysResult]
+ '''
+ self.results = [SSHPublicKeysResult.from_json(o) for o in results or []]
+
+
+class SingularClaim(Type):
+ _toSchema = {'controllertag': 'ControllerTag', 'duration': 'Duration', 'modeltag': 'ModelTag'}
+ _toPy = {'ModelTag': 'modeltag', 'ControllerTag': 'controllertag', 'Duration': 'duration'}
+ def __init__(self, controllertag=None, duration=None, modeltag=None):
+ '''
+ controllertag : str
+ duration : int
+ modeltag : str
+ '''
+ self.controllertag = controllertag
+ self.duration = duration
+ self.modeltag = modeltag
+
+
+class SingularClaims(Type):
+ _toSchema = {'claims': 'Claims'}
+ _toPy = {'Claims': 'claims'}
+ def __init__(self, claims=None):
+ '''
+ claims : typing.Sequence[~SingularClaim]
+ '''
+ self.claims = [SingularClaim.from_json(o) for o in claims or []]
+
+
+class ListSpacesResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
+ '''
+ results : typing.Sequence[~Space]
+ '''
+ self.results = [Space.from_json(o) for o in results or []]
+
+
+class Space(Type):
+ _toSchema = {'subnets': 'Subnets', 'error': 'Error', 'name': 'Name'}
+ _toPy = {'Subnets': 'subnets', 'Error': 'error', 'Name': 'name'}
+ def __init__(self, error=None, name=None, subnets=None):
+ '''
+ error : Error
+ name : str
+ subnets : typing.Sequence[~Subnet]
+ '''
+ self.error = Error.from_json(error) if error else None
+ self.name = name
+ self.subnets = [Subnet.from_json(o) for o in subnets or []]
+
+
+class StatusHistoryPruneArgs(Type):
+ _toSchema = {'maxhistorytime': 'MaxHistoryTime', 'maxhistorymb': 'MaxHistoryMB'}
+ _toPy = {'MaxHistoryTime': 'maxhistorytime', 'MaxHistoryMB': 'maxhistorymb'}
+ def __init__(self, maxhistorymb=None, maxhistorytime=None):
+ '''
+ maxhistorymb : int
+ maxhistorytime : int
+ '''
+ self.maxhistorymb = maxhistorymb
+ self.maxhistorytime = maxhistorytime
+
+
+class FilesystemAttachmentInfo(Type):
+ _toSchema = {'mountpoint': 'mountpoint', 'read_only': 'read-only'}
+ _toPy = {'mountpoint': 'mountpoint', 'read-only': 'read_only'}
+ def __init__(self, mountpoint=None, read_only=None):
+ '''
+ mountpoint : str
+ read_only : bool
+ '''
+ self.mountpoint = mountpoint
+ self.read_only = read_only
+
+
+class FilesystemDetails(Type):
+ _toSchema = {'machineattachments': 'machineattachments', 'info': 'info', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'storage': 'storage', 'status': 'status'}
+ _toPy = {'machineattachments': 'machineattachments', 'info': 'info', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'storage': 'storage', 'status': 'status'}
+ def __init__(self, filesystemtag=None, info=None, machineattachments=None, status=None, storage=None, volumetag=None):
'''
filesystemtag : str
info : FilesystemInfo
class FilesystemDetailsListResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class StorageAddParams(Type):
- _toSchema = {'unit': 'unit', 'storagename': 'StorageName', 'storage': 'storage'}
- _toPy = {'unit': 'unit', 'StorageName': 'storagename', 'storage': 'storage'}
+ _toSchema = {'storage': 'storage', 'storagename': 'StorageName', 'unit': 'unit'}
+ _toPy = {'StorageName': 'storagename', 'storage': 'storage', 'unit': 'unit'}
def __init__(self, storagename=None, storage=None, unit=None):
'''
storagename : str
class StorageAttachmentDetails(Type):
- _toSchema = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'}
- _toPy = {'unittag': 'unittag', 'location': 'location', 'machinetag': 'machinetag', 'storagetag': 'storagetag'}
+ _toSchema = {'unittag': 'unittag', 'storagetag': 'storagetag', 'location': 'location', 'machinetag': 'machinetag'}
+ _toPy = {'unittag': 'unittag', 'storagetag': 'storagetag', 'location': 'location', 'machinetag': 'machinetag'}
def __init__(self, location=None, machinetag=None, storagetag=None, unittag=None):
'''
location : str
class StorageConstraints(Type):
- _toSchema = {'pool': 'Pool', 'count': 'Count', 'size': 'Size'}
- _toPy = {'Pool': 'pool', 'Count': 'count', 'Size': 'size'}
+ _toSchema = {'pool': 'Pool', 'size': 'Size', 'count': 'Count'}
+ _toPy = {'Count': 'count', 'Pool': 'pool', 'Size': 'size'}
def __init__(self, count=None, pool=None, size=None):
'''
count : int
class StorageDetails(Type):
- _toSchema = {'attachments': 'attachments', 'status': 'status', 'persistent': 'Persistent', 'kind': 'kind', 'ownertag': 'ownertag', 'storagetag': 'storagetag'}
- _toPy = {'Persistent': 'persistent', 'status': 'status', 'attachments': 'attachments', 'kind': 'kind', 'ownertag': 'ownertag', 'storagetag': 'storagetag'}
+ _toSchema = {'persistent': 'Persistent', 'storagetag': 'storagetag', 'kind': 'kind', 'ownertag': 'ownertag', 'attachments': 'attachments', 'status': 'status'}
+ _toPy = {'storagetag': 'storagetag', 'kind': 'kind', 'Persistent': 'persistent', 'ownertag': 'ownertag', 'attachments': 'attachments', 'status': 'status'}
def __init__(self, persistent=None, attachments=None, kind=None, ownertag=None, status=None, storagetag=None):
'''
persistent : bool
class StorageDetailsListResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class StorageDetailsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class StoragePool(Type):
- _toSchema = {'name': 'name', 'provider': 'provider', 'attrs': 'attrs'}
- _toPy = {'name': 'name', 'provider': 'provider', 'attrs': 'attrs'}
+ _toSchema = {'provider': 'provider', 'attrs': 'attrs', 'name': 'name'}
+ _toPy = {'provider': 'provider', 'attrs': 'attrs', 'name': 'name'}
def __init__(self, attrs=None, name=None, provider=None):
'''
attrs : typing.Mapping[str, typing.Any]
class StoragePoolsResult(Type):
- _toSchema = {'storagepools': 'storagepools', 'error': 'error'}
- _toPy = {'storagepools': 'storagepools', 'error': 'error'}
+ _toSchema = {'error': 'error', 'storagepools': 'storagepools'}
+ _toPy = {'error': 'error', 'storagepools': 'storagepools'}
def __init__(self, error=None, storagepools=None):
'''
error : Error
class VolumeDetails(Type):
- _toSchema = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'}
- _toPy = {'info': 'info', 'machineattachments': 'machineattachments', 'status': 'status', 'volumetag': 'volumetag', 'storage': 'storage'}
+ _toSchema = {'machineattachments': 'machineattachments', 'volumetag': 'volumetag', 'info': 'info', 'storage': 'storage', 'status': 'status'}
+ _toPy = {'machineattachments': 'machineattachments', 'volumetag': 'volumetag', 'info': 'info', 'storage': 'storage', 'status': 'status'}
def __init__(self, info=None, machineattachments=None, status=None, storage=None, volumetag=None):
'''
info : VolumeInfo
class VolumeDetailsListResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class BlockDeviceResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class Filesystem(Type):
- _toSchema = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'}
- _toPy = {'filesystemtag': 'filesystemtag', 'info': 'info', 'volumetag': 'volumetag'}
+ _toSchema = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'info': 'info'}
+ _toPy = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'info': 'info'}
def __init__(self, filesystemtag=None, info=None, volumetag=None):
'''
filesystemtag : str
class FilesystemAttachmentParams(Type):
- _toSchema = {'filesystemtag': 'filesystemtag', 'instanceid': 'instanceid', 'mountpoint': 'mountpoint', 'machinetag': 'machinetag', 'filesystemid': 'filesystemid', 'provider': 'provider', 'read_only': 'read-only'}
- _toPy = {'filesystemtag': 'filesystemtag', 'instanceid': 'instanceid', 'read-only': 'read_only', 'mountpoint': 'mountpoint', 'machinetag': 'machinetag', 'filesystemid': 'filesystemid', 'provider': 'provider'}
+ _toSchema = {'filesystemtag': 'filesystemtag', 'mountpoint': 'mountpoint', 'read_only': 'read-only', 'provider': 'provider', 'filesystemid': 'filesystemid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'}
+ _toPy = {'filesystemtag': 'filesystemtag', 'mountpoint': 'mountpoint', 'provider': 'provider', 'read-only': 'read_only', 'filesystemid': 'filesystemid', 'instanceid': 'instanceid', 'machinetag': 'machinetag'}
def __init__(self, filesystemid=None, filesystemtag=None, instanceid=None, machinetag=None, mountpoint=None, provider=None, read_only=None):
'''
filesystemid : str
class FilesystemAttachmentParamsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class FilesystemAttachmentResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class FilesystemParams(Type):
- _toSchema = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'}
- _toPy = {'filesystemtag': 'filesystemtag', 'volumetag': 'volumetag', 'tags': 'tags', 'attachment': 'attachment', 'provider': 'provider', 'size': 'size', 'attributes': 'attributes'}
+ _toSchema = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'tags': 'tags', 'provider': 'provider'}
+ _toPy = {'attachment': 'attachment', 'attributes': 'attributes', 'size': 'size', 'volumetag': 'volumetag', 'filesystemtag': 'filesystemtag', 'tags': 'tags', 'provider': 'provider'}
def __init__(self, attachment=None, attributes=None, filesystemtag=None, provider=None, size=None, tags=None, volumetag=None):
'''
attachment : FilesystemAttachmentParams
class FilesystemParamsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class FilesystemResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class VolumeAttachment(Type):
- _toSchema = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'}
- _toPy = {'info': 'info', 'machinetag': 'machinetag', 'volumetag': 'volumetag'}
+ _toSchema = {'volumetag': 'volumetag', 'info': 'info', 'machinetag': 'machinetag'}
+ _toPy = {'volumetag': 'volumetag', 'info': 'info', 'machinetag': 'machinetag'}
def __init__(self, info=None, machinetag=None, volumetag=None):
'''
info : VolumeAttachmentInfo
class VolumeAttachmentParamsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class VolumeAttachmentResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class VolumeParamsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class VolumeResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class ZoneResult(Type):
- _toSchema = {'available': 'Available', 'error': 'Error', 'name': 'Name'}
+ _toSchema = {'error': 'Error', 'available': 'Available', 'name': 'Name'}
_toPy = {'Error': 'error', 'Available': 'available', 'Name': 'name'}
def __init__(self, available=None, error=None, name=None):
'''
class UndertakerModelInfo(Type):
- _toSchema = {'globalname': 'GlobalName', 'name': 'Name', 'life': 'Life', 'uuid': 'UUID', 'issystem': 'IsSystem'}
- _toPy = {'UUID': 'uuid', 'Name': 'name', 'Life': 'life', 'GlobalName': 'globalname', 'IsSystem': 'issystem'}
+ _toSchema = {'globalname': 'GlobalName', 'uuid': 'UUID', 'life': 'Life', 'issystem': 'IsSystem', 'name': 'Name'}
+ _toPy = {'GlobalName': 'globalname', 'IsSystem': 'issystem', 'Life': 'life', 'Name': 'name', 'UUID': 'uuid'}
def __init__(self, globalname=None, issystem=None, life=None, name=None, uuid=None):
'''
globalname : str
class UndertakerModelInfoResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
self.result = UndertakerModelInfo.from_json(result) if result else None
+class ApplicationStatusResult(Type):
+ _toSchema = {'units': 'Units', 'application': 'Application', 'error': 'Error'}
+ _toPy = {'Error': 'error', 'Application': 'application', 'Units': 'units'}
+ def __init__(self, application=None, error=None, units=None):
+ '''
+ application : StatusResult
+ error : Error
+ units : typing.Mapping[str, ~StatusResult]
+ '''
+ self.application = StatusResult.from_json(application) if application else None
+ self.error = Error.from_json(error) if error else None
+ self.units = {k: StatusResult.from_json(v) for k, v in (units or dict()).items()}
+
+
+class ApplicationStatusResults(Type):
+ _toSchema = {'results': 'Results'}
+ _toPy = {'Results': 'results'}
+ def __init__(self, results=None):
+ '''
+ results : typing.Sequence[~ApplicationStatusResult]
+ '''
+ self.results = [ApplicationStatusResult.from_json(o) for o in results or []]
+
+
class CharmURL(Type):
_toSchema = {'url': 'URL'}
_toPy = {'URL': 'url'}
class ConfigSettingsResult(Type):
- _toSchema = {'error': 'Error', 'settings': 'Settings'}
- _toPy = {'Error': 'error', 'Settings': 'settings'}
+ _toSchema = {'settings': 'Settings', 'error': 'Error'}
+ _toPy = {'Settings': 'settings', 'Error': 'error'}
def __init__(self, error=None, settings=None):
'''
error : Error
class Endpoint(Type):
- _toSchema = {'relation': 'Relation', 'servicename': 'ServiceName'}
- _toPy = {'Relation': 'relation', 'ServiceName': 'servicename'}
- def __init__(self, relation=None, servicename=None):
+ _toSchema = {'relation': 'Relation', 'applicationname': 'ApplicationName'}
+ _toPy = {'Relation': 'relation', 'ApplicationName': 'applicationname'}
+ def __init__(self, applicationname=None, relation=None):
'''
+ applicationname : str
relation : Relation
- servicename : str
'''
+ self.applicationname = applicationname
self.relation = Relation.from_json(relation) if relation else None
- self.servicename = servicename
class EntitiesCharmURL(Type):
class EntityCharmURL(Type):
_toSchema = {'charmurl': 'CharmURL', 'tag': 'Tag'}
- _toPy = {'Tag': 'tag', 'CharmURL': 'charmurl'}
+ _toPy = {'CharmURL': 'charmurl', 'Tag': 'tag'}
def __init__(self, charmurl=None, tag=None):
'''
charmurl : str
class EntityPortRange(Type):
- _toSchema = {'protocol': 'Protocol', 'fromport': 'FromPort', 'tag': 'Tag', 'toport': 'ToPort'}
- _toPy = {'Tag': 'tag', 'ToPort': 'toport', 'Protocol': 'protocol', 'FromPort': 'fromport'}
+ _toSchema = {'toport': 'ToPort', 'fromport': 'FromPort', 'protocol': 'Protocol', 'tag': 'Tag'}
+ _toPy = {'FromPort': 'fromport', 'Tag': 'tag', 'Protocol': 'protocol', 'ToPort': 'toport'}
def __init__(self, fromport=None, protocol=None, tag=None, toport=None):
'''
fromport : int
class GetLeadershipSettingsResult(Type):
- _toSchema = {'error': 'Error', 'settings': 'Settings'}
- _toPy = {'Error': 'error', 'Settings': 'settings'}
+ _toSchema = {'settings': 'Settings', 'error': 'Error'}
+ _toPy = {'Settings': 'settings', 'Error': 'error'}
def __init__(self, error=None, settings=None):
'''
error : Error
class IntResult(Type):
- _toSchema = {'error': 'Error', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result'}
+ _toSchema = {'result': 'Result', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class MergeLeadershipSettingsParam(Type):
- _toSchema = {'settings': 'Settings', 'servicetag': 'ServiceTag'}
- _toPy = {'Settings': 'settings', 'ServiceTag': 'servicetag'}
- def __init__(self, servicetag=None, settings=None):
+ _toSchema = {'applicationtag': 'ApplicationTag', 'settings': 'Settings'}
+ _toPy = {'Settings': 'settings', 'ApplicationTag': 'applicationtag'}
+ def __init__(self, applicationtag=None, settings=None):
'''
- servicetag : str
+ applicationtag : str
settings : typing.Mapping[str, str]
'''
- self.servicetag = servicetag
+ self.applicationtag = applicationtag
self.settings = settings
class ModelResult(Type):
- _toSchema = {'error': 'Error', 'uuid': 'UUID', 'name': 'Name'}
- _toPy = {'Error': 'error', 'UUID': 'uuid', 'Name': 'name'}
+ _toSchema = {'uuid': 'UUID', 'error': 'Error', 'name': 'Name'}
+ _toPy = {'Error': 'error', 'Name': 'name', 'UUID': 'uuid'}
def __init__(self, error=None, name=None, uuid=None):
'''
error : Error
class RelationResult(Type):
- _toSchema = {'endpoint': 'Endpoint', 'key': 'Key', 'error': 'Error', 'id_': 'Id', 'life': 'Life'}
- _toPy = {'Error': 'error', 'Endpoint': 'endpoint', 'Key': 'key', 'Life': 'life', 'Id': 'id_'}
+ _toSchema = {'key': 'Key', 'life': 'Life', 'id_': 'Id', 'endpoint': 'Endpoint', 'error': 'Error'}
+ _toPy = {'Endpoint': 'endpoint', 'Id': 'id_', 'Error': 'error', 'Key': 'key', 'Life': 'life'}
def __init__(self, endpoint=None, error=None, id_=None, key=None, life=None):
'''
endpoint : Endpoint
class RelationUnit(Type):
- _toSchema = {'unit': 'Unit', 'relation': 'Relation'}
+ _toSchema = {'relation': 'Relation', 'unit': 'Unit'}
_toPy = {'Relation': 'relation', 'Unit': 'unit'}
def __init__(self, relation=None, unit=None):
'''
class RelationUnitPair(Type):
- _toSchema = {'relation': 'Relation', 'localunit': 'LocalUnit', 'remoteunit': 'RemoteUnit'}
- _toPy = {'Relation': 'relation', 'RemoteUnit': 'remoteunit', 'LocalUnit': 'localunit'}
+ _toSchema = {'localunit': 'LocalUnit', 'relation': 'Relation', 'remoteunit': 'RemoteUnit'}
+ _toPy = {'RemoteUnit': 'remoteunit', 'Relation': 'relation', 'LocalUnit': 'localunit'}
def __init__(self, localunit=None, relation=None, remoteunit=None):
'''
localunit : str
class RelationUnitSettings(Type):
- _toSchema = {'unit': 'Unit', 'relation': 'Relation', 'settings': 'Settings'}
- _toPy = {'Relation': 'relation', 'Unit': 'unit', 'Settings': 'settings'}
+ _toSchema = {'settings': 'Settings', 'relation': 'Relation', 'unit': 'Unit'}
+ _toPy = {'Settings': 'settings', 'Relation': 'relation', 'Unit': 'unit'}
def __init__(self, relation=None, settings=None, unit=None):
'''
relation : str
class ResolvedModeResult(Type):
- _toSchema = {'error': 'Error', 'mode': 'Mode'}
+ _toSchema = {'mode': 'Mode', 'error': 'Error'}
_toPy = {'Error': 'error', 'Mode': 'mode'}
def __init__(self, error=None, mode=None):
'''
self.results = [ResolvedModeResult.from_json(o) for o in results or []]
-class ServiceStatusResult(Type):
- _toSchema = {'units': 'Units', 'error': 'Error', 'service': 'Service'}
- _toPy = {'Error': 'error', 'Service': 'service', 'Units': 'units'}
- def __init__(self, error=None, service=None, units=None):
- '''
- error : Error
- service : StatusResult
- units : typing.Mapping[str, ~StatusResult]
- '''
- self.error = Error.from_json(error) if error else None
- self.service = StatusResult.from_json(service) if service else None
- self.units = {k: StatusResult.from_json(v) for k, v in (units or dict()).items()}
-
-
-class ServiceStatusResults(Type):
- _toSchema = {'results': 'Results'}
- _toPy = {'Results': 'results'}
- def __init__(self, results=None):
- '''
- results : typing.Sequence[~ServiceStatusResult]
- '''
- self.results = [ServiceStatusResult.from_json(o) for o in results or []]
-
-
class SettingsResult(Type):
- _toSchema = {'error': 'Error', 'settings': 'Settings'}
- _toPy = {'Error': 'error', 'Settings': 'settings'}
+ _toSchema = {'settings': 'Settings', 'error': 'Error'}
+ _toPy = {'Settings': 'settings', 'Error': 'error'}
def __init__(self, error=None, settings=None):
'''
error : Error
class StorageAttachment(Type):
- _toSchema = {'ownertag': 'OwnerTag', 'unittag': 'UnitTag', 'location': 'Location', 'kind': 'Kind', 'life': 'Life', 'storagetag': 'StorageTag'}
- _toPy = {'UnitTag': 'unittag', 'OwnerTag': 'ownertag', 'Location': 'location', 'Life': 'life', 'StorageTag': 'storagetag', 'Kind': 'kind'}
+ _toSchema = {'storagetag': 'StorageTag', 'location': 'Location', 'life': 'Life', 'unittag': 'UnitTag', 'ownertag': 'OwnerTag', 'kind': 'Kind'}
+ _toPy = {'OwnerTag': 'ownertag', 'StorageTag': 'storagetag', 'UnitTag': 'unittag', 'Life': 'life', 'Location': 'location', 'Kind': 'kind'}
def __init__(self, kind=None, life=None, location=None, ownertag=None, storagetag=None, unittag=None):
'''
kind : int
class StorageAttachmentIdsResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class StorageAttachmentResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class StringBoolResult(Type):
- _toSchema = {'error': 'Error', 'ok': 'Ok', 'result': 'Result'}
- _toPy = {'Error': 'error', 'Result': 'result', 'Ok': 'ok'}
+ _toSchema = {'result': 'Result', 'ok': 'Ok', 'error': 'Error'}
+ _toPy = {'Result': 'result', 'Error': 'error', 'Ok': 'ok'}
def __init__(self, error=None, ok=None, result=None):
'''
error : Error
class UnitNetworkConfig(Type):
_toSchema = {'unittag': 'UnitTag', 'bindingname': 'BindingName'}
- _toPy = {'UnitTag': 'unittag', 'BindingName': 'bindingname'}
+ _toPy = {'BindingName': 'bindingname', 'UnitTag': 'unittag'}
def __init__(self, bindingname=None, unittag=None):
'''
bindingname : str
class UnitNetworkConfigResult(Type):
_toSchema = {'info': 'Info', 'error': 'Error'}
- _toPy = {'Info': 'info', 'Error': 'error'}
+ _toPy = {'Error': 'error', 'Info': 'info'}
def __init__(self, error=None, info=None):
'''
error : Error
class AddUser(Type):
- _toSchema = {'model_access_permission': 'model-access-permission', 'display_name': 'display-name', 'username': 'username', 'shared_model_tags': 'shared-model-tags', 'password': 'password'}
- _toPy = {'password': 'password', 'model-access-permission': 'model_access_permission', 'display-name': 'display_name', 'username': 'username', 'shared-model-tags': 'shared_model_tags'}
+ _toSchema = {'model_access_permission': 'model-access-permission', 'shared_model_tags': 'shared-model-tags', 'password': 'password', 'username': 'username', 'display_name': 'display-name'}
+ _toPy = {'model-access-permission': 'model_access_permission', 'password': 'password', 'username': 'username', 'shared-model-tags': 'shared_model_tags', 'display-name': 'display_name'}
def __init__(self, display_name=None, model_access_permission=None, password=None, shared_model_tags=None, username=None):
'''
display_name : str
class AddUserResult(Type):
- _toSchema = {'error': 'error', 'tag': 'tag', 'secret_key': 'secret-key'}
- _toPy = {'error': 'error', 'secret-key': 'secret_key', 'tag': 'tag'}
+ _toSchema = {'tag': 'tag', 'error': 'error', 'secret_key': 'secret-key'}
+ _toPy = {'error': 'error', 'tag': 'tag', 'secret-key': 'secret_key'}
def __init__(self, error=None, secret_key=None, tag=None):
'''
error : Error
class MacaroonResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
class UserInfo(Type):
- _toSchema = {'created_by': 'created-by', 'username': 'username', 'display_name': 'display-name', 'last_connection': 'last-connection', 'disabled': 'disabled', 'date_created': 'date-created'}
- _toPy = {'username': 'username', 'created-by': 'created_by', 'display-name': 'display_name', 'disabled': 'disabled', 'last-connection': 'last_connection', 'date-created': 'date_created'}
+ _toSchema = {'date_created': 'date-created', 'last_connection': 'last-connection', 'disabled': 'disabled', 'display_name': 'display-name', 'created_by': 'created-by', 'username': 'username'}
+ _toPy = {'last-connection': 'last_connection', 'date-created': 'date_created', 'disabled': 'disabled', 'created-by': 'created_by', 'username': 'username', 'display-name': 'display_name'}
def __init__(self, created_by=None, date_created=None, disabled=None, display_name=None, last_connection=None, username=None):
'''
created_by : str
class UserInfoResult(Type):
- _toSchema = {'error': 'error', 'result': 'result'}
- _toPy = {'error': 'error', 'result': 'result'}
+ _toSchema = {'result': 'result', 'error': 'error'}
+ _toPy = {'result': 'result', 'error': 'error'}
def __init__(self, error=None, result=None):
'''
error : Error
self.result = UserInfo.from_json(result) if result else None
-class UserInfoResults(Type):
- _toSchema = {'results': 'results'}
- _toPy = {'results': 'results'}
- def __init__(self, results=None):
+class UserInfoResults(Type):
+ _toSchema = {'results': 'results'}
+ _toPy = {'results': 'results'}
+ def __init__(self, results=None):
+ '''
+ results : typing.Sequence[~UserInfoResult]
+ '''
+ self.results = [UserInfoResult.from_json(o) for o in results or []]
+
+
+class ActionFacade(Type):
+ name = 'Action'
+ version = 2
+ schema = {'definitions': {'Action': {'additionalProperties': False,
+ 'properties': {'name': {'type': 'string'},
+ 'parameters': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'receiver': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'receiver', 'name'],
+ 'type': 'object'},
+ 'ActionResult': {'additionalProperties': False,
+ 'properties': {'action': {'$ref': '#/definitions/Action'},
+ 'completed': {'format': 'date-time',
+ 'type': 'string'},
+ 'enqueued': {'format': 'date-time',
+ 'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'message': {'type': 'string'},
+ 'output': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'started': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'type': 'object'},
+ 'ActionResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'ActionSpec': {'additionalProperties': False,
+ 'properties': {'Description': {'type': 'string'},
+ 'Params': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['Description', 'Params'],
+ 'type': 'object'},
+ 'Actions': {'additionalProperties': False,
+ 'properties': {'ActionSpecs': {'patternProperties': {'.*': {'$ref': '#/definitions/ActionSpec'}},
+ 'type': 'object'}},
+ 'required': ['ActionSpecs'],
+ 'type': 'object'},
+ 'ActionsByName': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'name': {'type': 'string'}},
+ 'type': 'object'},
+ 'ActionsByNames': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'ActionsByReceiver': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'receiver': {'type': 'string'}},
+ 'type': 'object'},
+ 'ActionsByReceivers': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'ApplicationCharmActionsResult': {'additionalProperties': False,
+ 'properties': {'ApplicationTag': {'type': 'string'},
+ 'actions': {'$ref': '#/definitions/Actions'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ApplicationsCharmActionsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmActionsResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['Entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'Tag': {'type': 'string'}},
+ 'required': ['Tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'Code': {'type': 'string'},
+ 'Info': {'$ref': '#/definitions/ErrorInfo'},
+ 'Message': {'type': 'string'}},
+ 'required': ['Message', 'Code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'MacaroonPath': {'type': 'string'}},
+ 'type': 'object'},
+ 'FindActionsByNames': {'additionalProperties': False,
+ 'properties': {'names': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'FindTags': {'additionalProperties': False,
+ 'properties': {'prefixes': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['prefixes'],
+ 'type': 'object'},
+ 'FindTagsResults': {'additionalProperties': False,
+ 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'required': ['matches'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False,
+ 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
+ 'type': 'array'},
+ 'data': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'id': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'sig': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['data',
+ 'location',
+ 'id',
+ 'caveats',
+ 'sig'],
+ 'type': 'object'},
+ 'RunParams': {'additionalProperties': False,
+ 'properties': {'Applications': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'Commands': {'type': 'string'},
+ 'Machines': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'Timeout': {'type': 'integer'},
+ 'Units': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['Commands',
+ 'Timeout',
+ 'Machines',
+ 'Applications',
+ 'Units'],
+ 'type': 'object'},
+ 'caveat': {'additionalProperties': False,
+ 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'verificationId': {'$ref': '#/definitions/packet'}},
+ 'required': ['location',
+ 'caveatId',
+ 'verificationId'],
+ 'type': 'object'},
+ 'packet': {'additionalProperties': False,
+ 'properties': {'headerLen': {'type': 'integer'},
+ 'start': {'type': 'integer'},
+ 'totalLen': {'type': 'integer'}},
+ 'required': ['start', 'totalLen', 'headerLen'],
+ 'type': 'object'}},
+ 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'type': 'object'},
+ 'ApplicationsCharmsActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ApplicationsCharmActionsResults'}},
+ 'type': 'object'},
+ 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'type': 'object'},
+ 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'type': 'object'},
+ 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'},
+ 'Result': {'$ref': '#/definitions/FindTagsResults'}},
+ 'type': 'object'},
+ 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'},
+ 'Result': {'$ref': '#/definitions/ActionsByNames'}},
+ 'type': 'object'},
+ 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'type': 'object'},
+ 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'type': 'object'},
+ 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'type': 'object'},
+ 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'type': 'object'},
+ 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'type': 'object'},
+ 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ActionResults)
+ async def Actions(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='Actions', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ApplicationsCharmActionsResults)
+ async def ApplicationsCharmsActions(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ApplicationCharmActionsResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='ApplicationsCharmsActions', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionResults)
+ async def Cancel(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='Cancel', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionResults)
+ async def Enqueue(self, actionspecs):
+ '''
+ actionspecs : typing.Mapping[str, ~ActionSpec]
+ Returns -> typing.Sequence[~ActionResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='Enqueue', Version=2, Params=params)
+ params['ActionSpecs'] = actionspecs
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(FindTagsResults)
+ async def FindActionTagsByPrefix(self, prefixes):
+ '''
+ prefixes : typing.Sequence[str]
+ Returns -> typing.Sequence[~Entity]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='FindActionTagsByPrefix', Version=2, Params=params)
+ params['prefixes'] = prefixes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionsByNames)
+ async def FindActionsByNames(self, names):
+ '''
+ names : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionsByName]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='FindActionsByNames', Version=2, Params=params)
+ params['names'] = names
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionsByReceivers)
+ async def ListAll(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='ListAll', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionsByReceivers)
+ async def ListCompleted(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='ListCompleted', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionsByReceivers)
+ async def ListPending(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='ListPending', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionsByReceivers)
+ async def ListRunning(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='ListRunning', Version=2, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionResults)
+ async def Run(self, applications, commands, machines, timeout, units):
+ '''
+ applications : typing.Sequence[str]
+ commands : str
+ machines : typing.Sequence[str]
+ timeout : int
+ units : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='Run', Version=2, Params=params)
+ params['Applications'] = applications
+ params['Commands'] = commands
+ params['Machines'] = machines
+ params['Timeout'] = timeout
+ params['Units'] = units
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ActionResults)
+ async def RunOnAllMachines(self, applications, commands, machines, timeout, units):
+ '''
+ applications : typing.Sequence[str]
+ commands : str
+ machines : typing.Sequence[str]
+ timeout : int
+ units : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Action', Request='RunOnAllMachines', Version=2, Params=params)
+ params['Applications'] = applications
+ params['Commands'] = commands
+ params['Machines'] = machines
+ params['Timeout'] = timeout
+ params['Units'] = units
+ reply = await self.rpc(msg)
+ return reply
+
+
+class AddresserFacade(Type):
+ name = 'Addresser'
+ version = 2
+ schema = {'definitions': {'BoolResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'Result': {'type': 'boolean'}},
+ 'required': ['Error', 'Result'],
+ 'type': 'object'},
+ 'EntitiesWatchResult': {'additionalProperties': False,
+ 'properties': {'Changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'EntityWatcherId': {'type': 'string'},
+ 'Error': {'$ref': '#/definitions/Error'}},
+ 'required': ['EntityWatcherId',
+ 'Changes',
+ 'Error'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'Code': {'type': 'string'},
+ 'Info': {'$ref': '#/definitions/ErrorInfo'},
+ 'Message': {'type': 'string'}},
+ 'required': ['Message', 'Code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'MacaroonPath': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'}},
+ 'required': ['Error'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False,
+ 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
+ 'type': 'array'},
+ 'data': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'id': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'sig': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['data',
+ 'location',
+ 'id',
+ 'caveats',
+ 'sig'],
+ 'type': 'object'},
+ 'caveat': {'additionalProperties': False,
+ 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'verificationId': {'$ref': '#/definitions/packet'}},
+ 'required': ['location',
+ 'caveatId',
+ 'verificationId'],
+ 'type': 'object'},
+ 'packet': {'additionalProperties': False,
+ 'properties': {'headerLen': {'type': 'integer'},
+ 'start': {'type': 'integer'},
+ 'totalLen': {'type': 'integer'}},
+ 'required': ['start', 'totalLen', 'headerLen'],
+ 'type': 'object'}},
+ 'properties': {'CanDeallocateAddresses': {'properties': {'Result': {'$ref': '#/definitions/BoolResult'}},
+ 'type': 'object'},
+ 'CleanupIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}},
+ 'type': 'object'},
+ 'WatchIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(BoolResult)
+ async def CanDeallocateAddresses(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), bool]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Addresser', Request='CanDeallocateAddresses', Version=2, Params=params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResult)
+ async def CleanupIPAddresses(self):
+ '''
+
+ Returns -> Error
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Addresser', Request='CleanupIPAddresses', Version=2, Params=params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(EntitiesWatchResult)
+ async def WatchIPAddresses(self):
'''
- results : typing.Sequence[~UserInfoResult]
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
'''
- self.results = [UserInfoResult.from_json(o) for o in results or []]
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Addresser', Request='WatchIPAddresses', Version=2, Params=params)
+ reply = await self.rpc(msg)
+ return reply
-class Action(Type):
- name = 'Action'
- version = 1
- schema = {'definitions': {'Action': {'additionalProperties': False,
- 'properties': {'name': {'type': 'string'},
- 'parameters': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'receiver': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'receiver', 'name'],
- 'type': 'object'},
- 'ActionResult': {'additionalProperties': False,
- 'properties': {'action': {'$ref': '#/definitions/Action'},
- 'completed': {'format': 'date-time',
- 'type': 'string'},
- 'enqueued': {'format': 'date-time',
- 'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'},
- 'message': {'type': 'string'},
- 'output': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'started': {'format': 'date-time',
- 'type': 'string'},
- 'status': {'type': 'string'}},
- 'type': 'object'},
- 'ActionResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'Actions': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/Action'},
- 'type': 'array'}},
- 'type': 'object'},
- 'ActionsByName': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'name': {'type': 'string'}},
- 'type': 'object'},
- 'ActionsByNames': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByName'},
- 'type': 'array'}},
- 'type': 'object'},
- 'ActionsByReceiver': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'receiver': {'type': 'string'}},
- 'type': 'object'},
- 'ActionsByReceivers': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'},
- 'type': 'array'}},
- 'type': 'object'},
+
+class AgentFacade(Type):
+ name = 'Agent'
+ version = 2
+ schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False,
+ 'properties': {'ContainerType': {'type': 'string'},
+ 'Error': {'$ref': '#/definitions/Error'},
+ 'Jobs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'Life': {'type': 'string'}},
+ 'required': ['Life',
+ 'Jobs',
+ 'ContainerType',
+ 'Error'],
+ 'type': 'object'},
+ 'AgentGetEntitiesResults': {'additionalProperties': False,
+ 'properties': {'Entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'},
+ 'type': 'array'}},
+ 'required': ['Entities'],
+ 'type': 'object'},
'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'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'},
'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
'MacaroonPath': {'type': 'string'}},
'type': 'object'},
- 'FindActionsByNames': {'additionalProperties': False,
- 'properties': {'names': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'FindTags': {'additionalProperties': False,
- 'properties': {'prefixes': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['prefixes'],
- 'type': 'object'},
- 'FindTagsResults': {'additionalProperties': False,
- 'properties': {'matches': {'patternProperties': {'.*': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'type': 'object'}},
- 'required': ['matches'],
- 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'}},
+ 'required': ['Error'],
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'IsMasterResult': {'additionalProperties': False,
+ 'properties': {'Master': {'type': 'boolean'}},
+ 'required': ['Master'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False,
'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
'type': 'array'},
'caveats',
'sig'],
'type': 'object'},
- 'RunParams': {'additionalProperties': False,
- 'properties': {'Commands': {'type': 'string'},
- 'Machines': {'items': {'type': 'string'},
- 'type': 'array'},
- 'Services': {'items': {'type': 'string'},
- 'type': 'array'},
- 'Timeout': {'type': 'integer'},
- 'Units': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['Commands',
- 'Timeout',
- 'Machines',
- 'Services',
- 'Units'],
- 'type': 'object'},
- 'ServiceCharmActionsResult': {'additionalProperties': False,
- 'properties': {'actions': {'$ref': '#/definitions/Actions'},
- 'error': {'$ref': '#/definitions/Error'},
- 'servicetag': {'type': 'string'}},
- 'type': 'object'},
- 'ServicesCharmActionsResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ServiceCharmActionsResult'},
- 'type': 'array'}},
- 'type': 'object'},
+ 'ModelConfigResult': {'additionalProperties': False,
+ 'properties': {'Config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['Config'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'NotifyWatcherId': {'type': 'string'}},
+ 'required': ['NotifyWatcherId', 'Error'],
+ 'type': 'object'},
+ 'StateServingInfo': {'additionalProperties': False,
+ 'properties': {'APIPort': {'type': 'integer'},
+ 'CAPrivateKey': {'type': 'string'},
+ 'Cert': {'type': 'string'},
+ 'PrivateKey': {'type': 'string'},
+ 'SharedSecret': {'type': 'string'},
+ 'StatePort': {'type': 'integer'},
+ 'SystemIdentity': {'type': 'string'}},
+ 'required': ['APIPort',
+ 'StatePort',
+ 'Cert',
+ 'PrivateKey',
+ 'CAPrivateKey',
+ 'SharedSecret',
+ 'SystemIdentity'],
+ 'type': 'object'},
'caveat': {'additionalProperties': False,
'properties': {'caveatId': {'$ref': '#/definitions/packet'},
'location': {'$ref': '#/definitions/packet'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
- 'type': 'object'},
- 'Cancel': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
- 'type': 'object'},
- 'Enqueue': {'properties': {'Params': {'$ref': '#/definitions/Actions'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
- 'type': 'object'},
- 'FindActionTagsByPrefix': {'properties': {'Params': {'$ref': '#/definitions/FindTags'},
- 'Result': {'$ref': '#/definitions/FindTagsResults'}},
- 'type': 'object'},
- 'FindActionsByNames': {'properties': {'Params': {'$ref': '#/definitions/FindActionsByNames'},
- 'Result': {'$ref': '#/definitions/ActionsByNames'}},
- 'type': 'object'},
- 'ListAll': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
- 'type': 'object'},
- 'ListCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
- 'type': 'object'},
- 'ListPending': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
'type': 'object'},
- 'ListRunning': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}},
'type': 'object'},
- 'Run': {'properties': {'Params': {'$ref': '#/definitions/RunParams'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
- 'type': 'object'},
- 'RunOnAllMachines': {'properties': {'Params': {'$ref': '#/definitions/RunParams'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
+ 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}},
+ 'type': 'object'},
+ 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
+ 'type': 'object'},
+ 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}},
'type': 'object'},
- 'ServicesCharmActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ServicesCharmActionsResults'}},
- 'type': 'object'}},
+ 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
- @ReturnMapping(ActionResults)
- async def Actions(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def ClearReboot(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionResult]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='Actions', Version=1, Params=params)
+ msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionResults)
- async def Cancel(self, entities):
+ @ReturnMapping(AgentGetEntitiesResults)
+ async def GetEntities(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionResult]
+ Returns -> typing.Sequence[~AgentGetEntitiesResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='Cancel', Version=1, Params=params)
+ msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionResults)
- async def Enqueue(self, actions):
+ @ReturnMapping(IsMasterResult)
+ async def IsMaster(self):
'''
- actions : typing.Sequence[~Action]
- Returns -> typing.Sequence[~ActionResult]
+
+ Returns -> bool
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='Enqueue', Version=1, Params=params)
- params['actions'] = actions
+ msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(FindTagsResults)
- async def FindActionTagsByPrefix(self, prefixes):
+ @ReturnMapping(ModelConfigResult)
+ async def ModelConfig(self):
'''
- prefixes : typing.Sequence[str]
- Returns -> typing.Sequence[~Entity]
+
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='FindActionTagsByPrefix', Version=1, Params=params)
- params['prefixes'] = prefixes
+ msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
-
- @ReturnMapping(ActionsByNames)
- async def FindActionsByNames(self, names):
+
+ @ReturnMapping(ErrorResults)
+ async def SetPasswords(self, changes):
'''
- names : typing.Sequence[str]
- Returns -> typing.Sequence[~ActionsByName]
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='FindActionsByNames', Version=1, Params=params)
- params['names'] = names
+ msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params)
+ params['Changes'] = changes
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionsByReceivers)
- async def ListAll(self, entities):
+ @ReturnMapping(StateServingInfo)
+ async def StateServingInfo(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionsByReceiver]
+
+ Returns -> typing.Union[int, str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='ListAll', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionsByReceivers)
- async def ListCompleted(self, entities):
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForModelConfigChanges(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionsByReceiver]
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='ListCompleted', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
+class AgentToolsFacade(Type):
+ name = 'AgentTools'
+ version = 1
+ schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'}
+
- @ReturnMapping(ActionsByReceivers)
- async def ListPending(self, entities):
+ @ReturnMapping(None)
+ async def UpdateToolsAvailable(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionsByReceiver]
+
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='ListPending', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params)
+
reply = await self.rpc(msg)
return reply
+class AllModelWatcherFacade(Type):
+ name = 'AllModelWatcher'
+ version = 2
+ schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False,
+ 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'},
+ 'type': 'array'}},
+ 'required': ['Deltas'],
+ 'type': 'object'},
+ 'Delta': {'additionalProperties': False,
+ 'properties': {'Entity': {'additionalProperties': True,
+ 'type': 'object'},
+ 'Removed': {'type': 'boolean'}},
+ 'required': ['Removed', 'Entity'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(ActionsByReceivers)
- async def ListRunning(self, entities):
+ @ReturnMapping(AllWatcherNextResults)
+ async def Next(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ActionsByReceiver]
+
+ Returns -> typing.Sequence[~Delta]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='ListRunning', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionResults)
- async def Run(self, commands, machines, services, timeout, units):
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- commands : str
- machines : typing.Sequence[str]
- services : typing.Sequence[str]
- timeout : int
- units : typing.Sequence[str]
- Returns -> typing.Sequence[~ActionResult]
+
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='Run', Version=1, Params=params)
- params['Commands'] = commands
- params['Machines'] = machines
- params['Services'] = services
- params['Timeout'] = timeout
- params['Units'] = units
+ msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
+class AllWatcherFacade(Type):
+ name = 'AllWatcher'
+ version = 1
+ schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False,
+ 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'},
+ 'type': 'array'}},
+ 'required': ['Deltas'],
+ 'type': 'object'},
+ 'Delta': {'additionalProperties': False,
+ 'properties': {'Entity': {'additionalProperties': True,
+ 'type': 'object'},
+ 'Removed': {'type': 'boolean'}},
+ 'required': ['Removed', 'Entity'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(ActionResults)
- async def RunOnAllMachines(self, commands, machines, services, timeout, units):
+ @ReturnMapping(AllWatcherNextResults)
+ async def Next(self):
'''
- commands : str
- machines : typing.Sequence[str]
- services : typing.Sequence[str]
- timeout : int
- units : typing.Sequence[str]
- Returns -> typing.Sequence[~ActionResult]
+
+ Returns -> typing.Sequence[~Delta]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='RunOnAllMachines', Version=1, Params=params)
- params['Commands'] = commands
- params['Machines'] = machines
- params['Services'] = services
- params['Timeout'] = timeout
- params['Units'] = units
+ msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ServicesCharmActionsResults)
- async def ServicesCharmActions(self, entities):
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ServiceCharmActionsResult]
+
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Action', Request='ServicesCharmActions', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params)
+
reply = await self.rpc(msg)
return reply
-class Addresser(Type):
- name = 'Addresser'
+class AnnotationsFacade(Type):
+ name = 'Annotations'
version = 2
- schema = {'definitions': {'BoolResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'Result': {'type': 'boolean'}},
- 'required': ['Error', 'Result'],
- 'type': 'object'},
- 'EntitiesWatchResult': {'additionalProperties': False,
- 'properties': {'Changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'EntityWatcherId': {'type': 'string'},
- 'Error': {'$ref': '#/definitions/Error'}},
- 'required': ['EntityWatcherId',
- 'Changes',
- 'Error'],
- 'type': 'object'},
+ schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False,
+ 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'EntityTag': {'type': 'string'},
+ 'Error': {'$ref': '#/definitions/ErrorResult'}},
+ 'required': ['EntityTag',
+ 'Annotations',
+ 'Error'],
+ 'type': 'object'},
+ 'AnnotationsGetResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'AnnotationsSet': {'additionalProperties': False,
+ 'properties': {'Annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'},
+ 'type': 'array'}},
+ 'required': ['Annotations'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['Entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'Tag': {'type': 'string'}},
+ 'required': ['Tag'],
+ 'type': 'object'},
+ 'EntityAnnotations': {'additionalProperties': False,
+ 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'EntityTag': {'type': 'string'}},
+ 'required': ['EntityTag', 'Annotations'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'Code': {'type': 'string'},
'Info': {'$ref': '#/definitions/ErrorInfo'},
'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'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'CanDeallocateAddresses': {'properties': {'Result': {'$ref': '#/definitions/BoolResult'}},
- 'type': 'object'},
- 'CleanupIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/ErrorResult'}},
- 'type': 'object'},
- 'WatchIPAddresses': {'properties': {'Result': {'$ref': '#/definitions/EntitiesWatchResult'}},
- 'type': 'object'}},
+ 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}},
+ 'type': 'object'},
+ 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
'type': 'object'}
- @ReturnMapping(BoolResult)
- async def CanDeallocateAddresses(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('Error'), bool]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Addresser', Request='CanDeallocateAddresses', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ErrorResult)
- async def CleanupIPAddresses(self):
+ @ReturnMapping(AnnotationsGetResults)
+ async def Get(self, entities):
'''
-
- Returns -> Error
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~AnnotationsGetResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Addresser', Request='CleanupIPAddresses', Version=2, Params=params)
-
+ msg = dict(Type='Annotations', Request='Get', Version=2, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(EntitiesWatchResult)
- async def WatchIPAddresses(self):
+ @ReturnMapping(ErrorResults)
+ async def Set(self, annotations):
'''
-
- Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
+ annotations : typing.Sequence[~EntityAnnotations]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Addresser', Request='WatchIPAddresses', Version=2, Params=params)
-
+ msg = dict(Type='Annotations', Request='Set', Version=2, Params=params)
+ params['Annotations'] = annotations
reply = await self.rpc(msg)
return reply
-class Agent(Type):
- name = 'Agent'
- version = 2
- schema = {'definitions': {'AgentGetEntitiesResult': {'additionalProperties': False,
- 'properties': {'ContainerType': {'type': 'string'},
- 'Error': {'$ref': '#/definitions/Error'},
- 'Jobs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'Life': {'type': 'string'}},
- 'required': ['Life',
- 'Jobs',
- 'ContainerType',
- 'Error'],
- 'type': 'object'},
- 'AgentGetEntitiesResults': {'additionalProperties': False,
- 'properties': {'Entities': {'items': {'$ref': '#/definitions/AgentGetEntitiesResult'},
+class ApplicationFacade(Type):
+ name = 'Application'
+ version = 1
+ schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'NumUnits': {'type': 'integer'},
+ 'Placement': {'items': {'$ref': '#/definitions/Placement'},
+ 'type': 'array'}},
+ 'required': ['ApplicationName',
+ 'NumUnits',
+ 'Placement'],
+ 'type': 'object'},
+ 'AddApplicationUnitsResults': {'additionalProperties': False,
+ 'properties': {'Units': {'items': {'type': 'string'},
'type': 'array'}},
- 'required': ['Entities'],
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
- 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['Entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'Tag': {'type': 'string'}},
- 'required': ['Tag'],
- 'type': 'object'},
- 'EntityPassword': {'additionalProperties': False,
- 'properties': {'Password': {'type': 'string'},
- 'Tag': {'type': 'string'}},
- 'required': ['Tag', 'Password'],
+ 'required': ['Units'],
+ 'type': 'object'},
+ 'AddRelation': {'additionalProperties': False,
+ 'properties': {'Endpoints': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['Endpoints'],
+ 'type': 'object'},
+ 'AddRelationResults': {'additionalProperties': False,
+ 'properties': {'Endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/Relation'}},
+ 'type': 'object'}},
+ 'required': ['Endpoints'],
+ 'type': 'object'},
+ 'ApplicationCharmRelations': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
+ 'type': 'object'},
+ 'ApplicationCharmRelationsResults': {'additionalProperties': False,
+ 'properties': {'CharmRelations': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['CharmRelations'],
+ 'type': 'object'},
+ 'ApplicationDeploy': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Channel': {'type': 'string'},
+ 'CharmUrl': {'type': 'string'},
+ 'Config': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'ConfigYAML': {'type': 'string'},
+ 'Constraints': {'$ref': '#/definitions/Value'},
+ 'EndpointBindings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'NumUnits': {'type': 'integer'},
+ 'Placement': {'items': {'$ref': '#/definitions/Placement'},
+ 'type': 'array'},
+ 'Resources': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'Series': {'type': 'string'},
+ 'Storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}},
+ 'type': 'object'}},
+ 'required': ['ApplicationName',
+ 'Series',
+ 'CharmUrl',
+ 'Channel',
+ 'NumUnits',
+ 'Config',
+ 'ConfigYAML',
+ 'Constraints',
+ 'Placement',
+ 'Storage',
+ 'EndpointBindings',
+ 'Resources'],
+ 'type': 'object'},
+ 'ApplicationDestroy': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
+ 'type': 'object'},
+ 'ApplicationExpose': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
+ 'type': 'object'},
+ 'ApplicationGet': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
'type': 'object'},
- 'EntityPasswords': {'additionalProperties': False,
- 'properties': {'Changes': {'items': {'$ref': '#/definitions/EntityPassword'},
- 'type': 'array'}},
- 'required': ['Changes'],
+ 'ApplicationGetResults': {'additionalProperties': False,
+ 'properties': {'Application': {'type': 'string'},
+ 'Charm': {'type': 'string'},
+ 'Config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'Constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['Application',
+ 'Charm',
+ 'Config',
+ 'Constraints'],
+ 'type': 'object'},
+ 'ApplicationMetricCredential': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'MetricCredentials': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['ApplicationName',
+ 'MetricCredentials'],
+ 'type': 'object'},
+ 'ApplicationMetricCredentials': {'additionalProperties': False,
+ 'properties': {'Creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'},
+ 'type': 'array'}},
+ 'required': ['Creds'],
+ 'type': 'object'},
+ 'ApplicationSet': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Options': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['ApplicationName', 'Options'],
+ 'type': 'object'},
+ 'ApplicationSetCharm': {'additionalProperties': False,
+ 'properties': {'applicationname': {'type': 'string'},
+ 'charmurl': {'type': 'string'},
+ 'cs-channel': {'type': 'string'},
+ 'forceseries': {'type': 'boolean'},
+ 'forceunits': {'type': 'boolean'},
+ 'resourceids': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['applicationname',
+ 'charmurl',
+ 'cs-channel',
+ 'forceunits',
+ 'forceseries',
+ 'resourceids'],
+ 'type': 'object'},
+ 'ApplicationUnexpose': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
+ 'type': 'object'},
+ 'ApplicationUnset': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Options': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['ApplicationName',
+ 'Options'],
+ 'type': 'object'},
+ 'ApplicationUpdate': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'CharmUrl': {'type': 'string'},
+ 'Constraints': {'$ref': '#/definitions/Value'},
+ 'ForceCharmUrl': {'type': 'boolean'},
+ 'ForceSeries': {'type': 'boolean'},
+ 'MinUnits': {'type': 'integer'},
+ 'SettingsStrings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'SettingsYAML': {'type': 'string'}},
+ 'required': ['ApplicationName',
+ 'CharmUrl',
+ 'ForceCharmUrl',
+ 'ForceSeries',
+ 'MinUnits',
+ 'SettingsStrings',
+ 'SettingsYAML',
+ 'Constraints'],
+ 'type': 'object'},
+ 'ApplicationsDeploy': {'additionalProperties': False,
+ 'properties': {'Applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'},
+ 'type': 'array'}},
+ 'required': ['Applications'],
+ 'type': 'object'},
+ 'Constraints': {'additionalProperties': False,
+ 'properties': {'Count': {'type': 'integer'},
+ 'Pool': {'type': 'string'},
+ 'Size': {'type': 'integer'}},
+ 'required': ['Pool', 'Size', 'Count'],
+ 'type': 'object'},
+ 'DestroyApplicationUnits': {'additionalProperties': False,
+ 'properties': {'UnitNames': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['UnitNames'],
+ 'type': 'object'},
+ 'DestroyRelation': {'additionalProperties': False,
+ 'properties': {'Endpoints': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['Endpoints'],
'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'Code': {'type': 'string'},
'type': 'array'}},
'required': ['Results'],
'type': 'object'},
- 'IsMasterResult': {'additionalProperties': False,
- 'properties': {'Master': {'type': 'boolean'}},
- 'required': ['Master'],
- 'type': 'object'},
+ 'GetApplicationConstraints': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'}},
+ 'required': ['ApplicationName'],
+ 'type': 'object'},
+ 'GetConstraintsResults': {'additionalProperties': False,
+ 'properties': {'Constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['Constraints'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False,
'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
'type': 'array'},
'caveats',
'sig'],
'type': 'object'},
- 'ModelConfigResult': {'additionalProperties': False,
- 'properties': {'Config': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'}},
- 'required': ['Config'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'NotifyWatcherId': {'type': 'string'}},
- 'required': ['NotifyWatcherId', 'Error'],
- 'type': 'object'},
- 'StateServingInfo': {'additionalProperties': False,
- 'properties': {'APIPort': {'type': 'integer'},
- 'CAPrivateKey': {'type': 'string'},
- 'Cert': {'type': 'string'},
- 'PrivateKey': {'type': 'string'},
- 'SharedSecret': {'type': 'string'},
- 'StatePort': {'type': 'integer'},
- 'SystemIdentity': {'type': 'string'}},
- 'required': ['APIPort',
- 'StatePort',
- 'Cert',
- 'PrivateKey',
- 'CAPrivateKey',
- 'SharedSecret',
- 'SystemIdentity'],
- 'type': 'object'},
+ 'Placement': {'additionalProperties': False,
+ 'properties': {'Directive': {'type': 'string'},
+ 'Scope': {'type': 'string'}},
+ 'required': ['Scope', 'Directive'],
+ 'type': 'object'},
+ 'Relation': {'additionalProperties': False,
+ 'properties': {'Interface': {'type': 'string'},
+ 'Limit': {'type': 'integer'},
+ 'Name': {'type': 'string'},
+ 'Optional': {'type': 'boolean'},
+ 'Role': {'type': 'string'},
+ 'Scope': {'type': 'string'}},
+ 'required': ['Name',
+ 'Role',
+ 'Interface',
+ 'Optional',
+ 'Limit',
+ 'Scope'],
+ 'type': 'object'},
+ 'SetConstraints': {'additionalProperties': False,
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['ApplicationName',
+ 'Constraints'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'Result': {'type': 'string'}},
+ 'required': ['Error', 'Result'],
+ 'type': 'object'},
+ 'Value': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'container': {'type': 'string'},
+ 'cpu-cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'instance-type': {'type': 'string'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'spaces': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'virt-type': {'type': 'string'}},
+ 'type': 'object'},
'caveat': {'additionalProperties': False,
'properties': {'caveatId': {'$ref': '#/definitions/packet'},
'location': {'$ref': '#/definitions/packet'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'GetEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/AgentGetEntitiesResults'}},
+ 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'},
+ 'Result': {'$ref': '#/definitions/AddRelationResults'}},
'type': 'object'},
- 'IsMaster': {'properties': {'Result': {'$ref': '#/definitions/IsMasterResult'}},
+ 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'},
+ 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}},
'type': 'object'},
- 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
- 'type': 'object'},
- 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'},
+ 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}},
+ 'type': 'object'},
+ 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}},
+ 'type': 'object'},
+ 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}},
+ 'type': 'object'},
+ 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}},
'type': 'object'},
- 'StateServingInfo': {'properties': {'Result': {'$ref': '#/definitions/StateServingInfo'}},
- 'type': 'object'},
- 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'}},
+ 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}},
+ 'type': 'object'},
+ 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'},
+ 'Result': {'$ref': '#/definitions/ApplicationGetResults'}},
+ 'type': 'object'},
+ 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'},
+ 'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'},
+ 'Result': {'$ref': '#/definitions/GetConstraintsResults'}},
+ 'type': 'object'},
+ 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}},
+ 'type': 'object'},
+ 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}},
+ 'type': 'object'},
+ 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
+ 'type': 'object'},
+ 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}},
+ 'type': 'object'},
+ 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}},
+ 'type': 'object'},
+ 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}},
+ 'type': 'object'}},
'type': 'object'}
- @ReturnMapping(ErrorResults)
- async def ClearReboot(self, entities):
+ @ReturnMapping(AddRelationResults)
+ async def AddRelation(self, endpoints):
+ '''
+ endpoints : typing.Sequence[str]
+ Returns -> typing.Mapping[str, ~Relation]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='AddRelation', Version=1, Params=params)
+ params['Endpoints'] = endpoints
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddApplicationUnitsResults)
+ async def AddUnits(self, applicationname, numunits, placement):
+ '''
+ applicationname : str
+ numunits : int
+ placement : typing.Sequence[~Placement]
+ Returns -> typing.Sequence[str]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='AddUnits', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ params['NumUnits'] = numunits
+ params['Placement'] = placement
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ApplicationCharmRelationsResults)
+ async def CharmRelations(self, applicationname):
+ '''
+ applicationname : str
+ Returns -> typing.Sequence[str]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='CharmRelations', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def Deploy(self, applications):
+ '''
+ applications : typing.Sequence[~ApplicationDeploy]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='Deploy', Version=1, Params=params)
+ params['Applications'] = applications
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Destroy(self, applicationname):
+ '''
+ applicationname : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='Destroy', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def DestroyRelation(self, endpoints):
+ '''
+ endpoints : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Application', Request='DestroyRelation', Version=1, Params=params)
+ params['Endpoints'] = endpoints
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def DestroyUnits(self, unitnames):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ErrorResult]
+ unitnames : typing.Sequence[str]
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='ClearReboot', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Application', Request='DestroyUnits', Version=1, Params=params)
+ params['UnitNames'] = unitnames
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AgentGetEntitiesResults)
- async def GetEntities(self, entities):
+ @ReturnMapping(None)
+ async def Expose(self, applicationname):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~AgentGetEntitiesResult]
+ applicationname : str
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='GetEntities', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Application', Request='Expose', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
reply = await self.rpc(msg)
return reply
- @ReturnMapping(IsMasterResult)
- async def IsMaster(self):
+ @ReturnMapping(ApplicationGetResults)
+ async def Get(self, applicationname):
'''
-
- Returns -> bool
+ applicationname : str
+ Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='IsMaster', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='Get', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ModelConfigResult)
- async def ModelConfig(self):
+ @ReturnMapping(StringResult)
+ async def GetCharmURL(self, applicationname):
'''
-
- Returns -> typing.Mapping[str, typing.Any]
+ applicationname : str
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='ModelConfig', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='GetCharmURL', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetPasswords(self, changes):
+ @ReturnMapping(GetConstraintsResults)
+ async def GetConstraints(self, applicationname):
'''
- changes : typing.Sequence[~EntityPassword]
- Returns -> typing.Sequence[~ErrorResult]
+ applicationname : str
+ Returns -> Value
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='SetPasswords', Version=2, Params=params)
- params['Changes'] = changes
+ msg = dict(Type='Application', Request='GetConstraints', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StateServingInfo)
- async def StateServingInfo(self):
+ @ReturnMapping(None)
+ async def Set(self, applicationname, options):
'''
-
- Returns -> typing.Union[int, str]
+ applicationname : str
+ options : typing.Mapping[str, str]
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='StateServingInfo', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='Set', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ params['Options'] = options
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchForModelConfigChanges(self):
+ @ReturnMapping(None)
+ async def SetCharm(self, applicationname, charmurl, cs_channel, forceseries, forceunits, resourceids):
'''
-
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ applicationname : str
+ charmurl : str
+ cs_channel : str
+ forceseries : bool
+ forceunits : bool
+ resourceids : typing.Mapping[str, str]
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Agent', Request='WatchForModelConfigChanges', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='SetCharm', Version=1, Params=params)
+ params['applicationname'] = applicationname
+ params['charmurl'] = charmurl
+ params['cs-channel'] = cs_channel
+ params['forceseries'] = forceseries
+ params['forceunits'] = forceunits
+ params['resourceids'] = resourceids
reply = await self.rpc(msg)
return reply
-class AgentTools(Type):
- name = 'AgentTools'
- version = 1
- schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'}
-
@ReturnMapping(None)
- async def UpdateToolsAvailable(self):
+ async def SetConstraints(self, applicationname, constraints):
'''
-
+ applicationname : str
+ constraints : Value
Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='AgentTools', Request='UpdateToolsAvailable', Version=1, Params=params)
-
+ msg = dict(Type='Application', Request='SetConstraints', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ params['Constraints'] = constraints
reply = await self.rpc(msg)
return reply
-class AllModelWatcher(Type):
- name = 'AllModelWatcher'
- version = 2
- schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False,
- 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'},
- 'type': 'array'}},
- 'required': ['Deltas'],
- 'type': 'object'},
- 'Delta': {'additionalProperties': False,
- 'properties': {'Entity': {'additionalProperties': True,
- 'type': 'object'},
- 'Removed': {'type': 'boolean'}},
- 'required': ['Removed', 'Entity'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
- 'type': 'object'}
-
- @ReturnMapping(AllWatcherNextResults)
- async def Next(self):
+ @ReturnMapping(ErrorResults)
+ async def SetMetricCredentials(self, creds):
'''
-
- Returns -> typing.Sequence[~Delta]
+ creds : typing.Sequence[~ApplicationMetricCredential]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='AllModelWatcher', Request='Next', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='SetMetricCredentials', Version=1, Params=params)
+ params['Creds'] = creds
reply = await self.rpc(msg)
return reply
@ReturnMapping(None)
- async def Stop(self):
+ async def Unexpose(self, applicationname):
'''
-
+ applicationname : str
Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='AllModelWatcher', Request='Stop', Version=2, Params=params)
-
+ msg = dict(Type='Application', Request='Unexpose', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
reply = await self.rpc(msg)
return reply
-class AllWatcher(Type):
- name = 'AllWatcher'
- version = 1
- schema = {'definitions': {'AllWatcherNextResults': {'additionalProperties': False,
- 'properties': {'Deltas': {'items': {'$ref': '#/definitions/Delta'},
- 'type': 'array'}},
- 'required': ['Deltas'],
- 'type': 'object'},
- 'Delta': {'additionalProperties': False,
- 'properties': {'Entity': {'additionalProperties': True,
- 'type': 'object'},
- 'Removed': {'type': 'boolean'}},
- 'required': ['Removed', 'Entity'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherNextResults'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
- 'type': 'object'}
-
- @ReturnMapping(AllWatcherNextResults)
- async def Next(self):
+ @ReturnMapping(None)
+ async def Unset(self, applicationname, options):
'''
-
- Returns -> typing.Sequence[~Delta]
+ applicationname : str
+ options : typing.Sequence[str]
+ Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='AllWatcher', Request='Next', Version=1, Params=params)
-
+ msg = dict(Type='Application', Request='Unset', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ params['Options'] = options
reply = await self.rpc(msg)
return reply
@ReturnMapping(None)
- async def Stop(self):
+ async def Update(self, applicationname, charmurl, constraints, forcecharmurl, forceseries, minunits, settingsstrings, settingsyaml):
'''
-
+ applicationname : str
+ charmurl : str
+ constraints : Value
+ forcecharmurl : bool
+ forceseries : bool
+ minunits : int
+ settingsstrings : typing.Mapping[str, str]
+ settingsyaml : str
Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='AllWatcher', Request='Stop', Version=1, Params=params)
-
+ msg = dict(Type='Application', Request='Update', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
+ params['CharmUrl'] = charmurl
+ params['Constraints'] = constraints
+ params['ForceCharmUrl'] = forcecharmurl
+ params['ForceSeries'] = forceseries
+ params['MinUnits'] = minunits
+ params['SettingsStrings'] = settingsstrings
+ params['SettingsYAML'] = settingsyaml
reply = await self.rpc(msg)
return reply
-class Annotations(Type):
- name = 'Annotations'
- version = 2
- schema = {'definitions': {'AnnotationsGetResult': {'additionalProperties': False,
- 'properties': {'Annotations': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'EntityTag': {'type': 'string'},
- 'Error': {'$ref': '#/definitions/ErrorResult'}},
- 'required': ['EntityTag',
- 'Annotations',
- 'Error'],
- 'type': 'object'},
- 'AnnotationsGetResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/AnnotationsGetResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'AnnotationsSet': {'additionalProperties': False,
- 'properties': {'Annotations': {'items': {'$ref': '#/definitions/EntityAnnotations'},
- 'type': 'array'}},
- 'required': ['Annotations'],
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
+class ApplicationScalerFacade(Type):
+ name = 'ApplicationScaler'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['Entities'],
'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'},
'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'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'Get': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/AnnotationsGetResults'}},
- 'type': 'object'},
- 'Set': {'properties': {'Params': {'$ref': '#/definitions/AnnotationsSet'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'}},
+ 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
- @ReturnMapping(AnnotationsGetResults)
- async def Get(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def Rescale(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~AnnotationsGetResult]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Annotations', Request='Get', Version=2, Params=params)
+ msg = dict(Type='ApplicationScaler', Request='Rescale', Version=1, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def Set(self, annotations):
+ @ReturnMapping(StringsWatchResult)
+ async def Watch(self):
'''
- annotations : typing.Sequence[~EntityAnnotations]
- Returns -> typing.Sequence[~ErrorResult]
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Annotations', Request='Set', Version=2, Params=params)
- params['Annotations'] = annotations
+ msg = dict(Type='ApplicationScaler', Request='Watch', Version=1, Params=params)
+
reply = await self.rpc(msg)
return reply
-class Backups(Type):
+class BackupsFacade(Type):
name = 'Backups'
version = 1
schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False,
'Machine': {'type': 'string'},
'Model': {'type': 'string'},
'Notes': {'type': 'string'},
+ 'Series': {'type': 'string'},
'Size': {'type': 'integer'},
'Started': {'format': 'date-time',
'type': 'string'},
'Machine',
'Hostname',
'Version',
+ 'Series',
'CACert',
'CAPrivateKey'],
'type': 'object'},
return reply
-class Block(Type):
+class BlockFacade(Type):
name = 'Block'
version = 2
schema = {'definitions': {'Block': {'additionalProperties': False,
return reply
-class CharmRevisionUpdater(Type):
+class CharmRevisionUpdaterFacade(Type):
name = 'CharmRevisionUpdater'
- version = 1
+ version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
'properties': {'Code': {'type': 'string'},
'Info': {'$ref': '#/definitions/ErrorInfo'},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=1, Params=params)
+ msg = dict(Type='CharmRevisionUpdater', Request='UpdateLatestRevisions', Version=2, Params=params)
reply = await self.rpc(msg)
return reply
-class Charms(Type):
+class CharmsFacade(Type):
name = 'Charms'
version = 2
schema = {'definitions': {'CharmInfo': {'additionalProperties': False,
return reply
-class Cleaner(Type):
+class CleanerFacade(Type):
name = 'Cleaner'
version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class Client(Type):
+class ClientFacade(Type):
name = 'Client'
version = 1
schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
'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'},
'Err'],
'type': 'object'},
'EndpointStatus': {'additionalProperties': False,
- 'properties': {'Name': {'type': 'string'},
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Name': {'type': 'string'},
'Role': {'type': 'string'},
- 'ServiceName': {'type': 'string'},
'Subordinate': {'type': 'boolean'}},
- 'required': ['ServiceName',
+ 'required': ['ApplicationName',
'Name',
'Role',
'Subordinate'],
'required': ['List', 'Error'],
'type': 'object'},
'FullStatus': {'additionalProperties': False,
- 'properties': {'AvailableVersion': {'type': 'string'},
+ 'properties': {'Applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}},
+ 'type': 'object'},
+ 'AvailableVersion': {'type': 'string'},
'Machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
'type': 'object'},
'ModelName': {'type': 'string'},
'Relations': {'items': {'$ref': '#/definitions/RelationStatus'},
- 'type': 'array'},
- 'Services': {'patternProperties': {'.*': {'$ref': '#/definitions/ServiceStatus'}},
- 'type': 'object'}},
+ 'type': 'array'}},
'required': ['ModelName',
'AvailableVersion',
'Machines',
- 'Services',
+ 'Applications',
'Relations'],
'type': 'object'},
'GetBundleChangesParams': {'additionalProperties': False,
'Tags': {'items': {'type': 'string'},
'type': 'array'}},
'type': 'object'},
+ 'History': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'Statuses': {'items': {'$ref': '#/definitions/DetailedStatus'},
+ 'type': 'array'}},
+ 'required': ['Statuses'],
+ 'type': 'object'},
'HostPort': {'additionalProperties': False,
'properties': {'Address': {'$ref': '#/definitions/Address'},
'Port': {'type': 'integer'}},
'required': ['Config'],
'type': 'object'},
'ModelInfo': {'additionalProperties': False,
- 'properties': {'DefaultSeries': {'type': 'string'},
+ 'properties': {'Cloud': {'type': 'string'},
+ 'DefaultSeries': {'type': 'string'},
'Life': {'type': 'string'},
'Name': {'type': 'string'},
'OwnerTag': {'type': 'string'},
'ServerUUID',
'ProviderType',
'DefaultSeries',
+ 'Cloud',
'OwnerTag',
'Life',
'Status',
'UnitName': {'type': 'string'}},
'required': ['UnitName', 'Retry'],
'type': 'object'},
- 'ServiceStatus': {'additionalProperties': False,
- 'properties': {'CanUpgradeTo': {'type': 'string'},
- 'Charm': {'type': 'string'},
- 'Err': {'additionalProperties': True,
- 'type': 'object'},
- 'Exposed': {'type': 'boolean'},
- 'Life': {'type': 'string'},
- 'MeterStatuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}},
- 'type': 'object'},
- 'Relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'Status': {'$ref': '#/definitions/DetailedStatus'},
- 'SubordinateTo': {'items': {'type': 'string'},
- 'type': 'array'},
- 'Units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
- 'type': 'object'}},
- 'required': ['Err',
- 'Charm',
- 'Exposed',
- 'Life',
- 'Relations',
- 'CanUpgradeTo',
- 'SubordinateTo',
- 'Units',
- 'MeterStatuses',
- 'Status'],
- 'type': 'object'},
'SetConstraints': {'additionalProperties': False,
- 'properties': {'Constraints': {'$ref': '#/definitions/Value'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName', 'Constraints'],
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['ApplicationName',
+ 'Constraints'],
'type': 'object'},
'SetModelAgentVersion': {'additionalProperties': False,
'properties': {'Version': {'$ref': '#/definitions/Number'}},
'required': ['Version'],
'type': 'object'},
- 'StatusHistoryArgs': {'additionalProperties': False,
- 'properties': {'Kind': {'type': 'string'},
- 'Name': {'type': 'string'},
- 'Size': {'type': 'integer'}},
- 'required': ['Kind', 'Size', 'Name'],
- 'type': 'object'},
+ 'StatusHistoryFilter': {'additionalProperties': False,
+ 'properties': {'Date': {'format': 'date-time',
+ 'type': 'string'},
+ 'Delta': {'type': 'integer'},
+ 'Size': {'type': 'integer'}},
+ 'required': ['Size', 'Date', 'Delta'],
+ 'type': 'object'},
+ 'StatusHistoryRequest': {'additionalProperties': False,
+ 'properties': {'Filter': {'$ref': '#/definitions/StatusHistoryFilter'},
+ 'HistoryKind': {'type': 'string'},
+ 'Size': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['HistoryKind',
+ 'Size',
+ 'Filter',
+ 'Tag'],
+ 'type': 'object'},
+ 'StatusHistoryRequests': {'additionalProperties': False,
+ 'properties': {'Requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'},
+ 'type': 'array'}},
+ 'required': ['Requests'],
+ 'type': 'object'},
+ 'StatusHistoryResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'History': {'$ref': '#/definitions/History'}},
+ 'required': ['History'],
+ 'type': 'object'},
'StatusHistoryResults': {'additionalProperties': False,
- 'properties': {'Statuses': {'items': {'$ref': '#/definitions/DetailedStatus'},
- 'type': 'array'}},
- 'required': ['Statuses'],
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/StatusHistoryResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
'type': 'object'},
'StatusParams': {'additionalProperties': False,
'properties': {'Patterns': {'items': {'type': 'string'},
'type': 'object'},
'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
'type': 'object'},
- 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryArgs'},
+ 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'},
'Result': {'$ref': '#/definitions/StatusHistoryResults'}},
'type': 'object'},
'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}},
async def FullStatus(self, patterns):
'''
patterns : typing.Sequence[str]
- Returns -> typing.Union[typing.Sequence[~RelationStatus], typing.Mapping[str, ~ServiceStatus]]
+ Returns -> typing.Union[typing.Mapping[str, ~MachineStatus], typing.Sequence[~RelationStatus]]
'''
# map input types to rpc msg
params = dict()
@ReturnMapping(None)
- async def SetModelConstraints(self, constraints, servicename):
+ async def SetModelConstraints(self, applicationname, constraints):
'''
+ applicationname : str
constraints : Value
- servicename : str
Returns -> None
'''
# map input types to rpc msg
params = dict()
msg = dict(Type='Client', Request='SetModelConstraints', Version=1, Params=params)
+ params['ApplicationName'] = applicationname
params['Constraints'] = constraints
- params['ServiceName'] = servicename
reply = await self.rpc(msg)
return reply
@ReturnMapping(StatusHistoryResults)
- async def StatusHistory(self, kind, name, size):
+ async def StatusHistory(self, requests):
'''
- kind : str
- name : str
- size : int
- Returns -> typing.Sequence[~DetailedStatus]
+ requests : typing.Sequence[~StatusHistoryRequest]
+ Returns -> typing.Sequence[~StatusHistoryResult]
'''
# map input types to rpc msg
params = dict()
msg = dict(Type='Client', Request='StatusHistory', Version=1, Params=params)
- params['Kind'] = kind
- params['Name'] = name
- params['Size'] = size
+ params['Requests'] = requests
reply = await self.rpc(msg)
return reply
return reply
-class Controller(Type):
+class ControllerFacade(Type):
name = 'Controller'
- version = 2
+ version = 3
schema = {'definitions': {'AllWatcherId': {'additionalProperties': False,
'properties': {'AllWatcherId': {'type': 'string'}},
'required': ['AllWatcherId'],
'password'],
'type': 'object'},
'ModelStatus': {'additionalProperties': False,
- 'properties': {'hosted-machine-count': {'type': 'integer'},
+ 'properties': {'application-count': {'type': 'integer'},
+ 'hosted-machine-count': {'type': 'integer'},
'life': {'type': 'string'},
'model-tag': {'type': 'string'},
- 'owner-tag': {'type': 'string'},
- 'service-count': {'type': 'integer'}},
+ 'owner-tag': {'type': 'string'}},
'required': ['model-tag',
'life',
'hosted-machine-count',
- 'service-count',
+ 'application-count',
'owner-tag'],
'type': 'object'},
'ModelStatusResults': {'additionalProperties': False,
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='AllModels', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='AllModels', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='DestroyController', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='DestroyController', Version=3, Params=params)
params['destroy-models'] = destroy_models
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='InitiateModelMigration', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='InitiateModelMigration', Version=3, Params=params)
params['specs'] = specs
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='ListBlockedModels', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='ListBlockedModels', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='ModelConfig', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='ModelConfig', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='ModelStatus', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='ModelStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='RemoveBlocks', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='RemoveBlocks', Version=3, Params=params)
params['all'] = all_
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Controller', Request='WatchAllModels', Version=2, Params=params)
+ msg = dict(Type='Controller', Request='WatchAllModels', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
-class Deployer(Type):
+class DeployerFacade(Type):
name = 'Deployer'
version = 1
schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
return reply
-class DiscoverSpaces(Type):
+class DiscoverSpacesFacade(Type):
name = 'DiscoverSpaces'
version = 2
schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False,
return reply
-class DiskManager(Type):
+class DiskManagerFacade(Type):
name = 'DiskManager'
version = 2
schema = {'definitions': {'BlockDevice': {'additionalProperties': False,
return reply
-class EntityWatcher(Type):
+class EntityWatcherFacade(Type):
name = 'EntityWatcher'
version = 2
schema = {'definitions': {'EntitiesWatchResult': {'additionalProperties': False,
return reply
-class FilesystemAttachmentsWatcher(Type):
+class FilesystemAttachmentsWatcherFacade(Type):
name = 'FilesystemAttachmentsWatcher'
version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class Firewaller(Type):
+class FirewallerFacade(Type):
name = 'Firewaller'
- version = 2
+ version = 3
schema = {'definitions': {'BoolResult': {'additionalProperties': False,
'properties': {'Error': {'$ref': '#/definitions/Error'},
'Result': {'type': 'boolean'}},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='GetAssignedMachine', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='GetExposed', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='GetExposed', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='GetMachineActiveSubnets', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='GetMachinePorts', Version=3, Params=params)
params['Params'] = params
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='InstanceId', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='InstanceId', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='Life', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='Life', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='ModelConfig', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='ModelConfig', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='Watch', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='Watch', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='WatchForModelConfigChanges', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='WatchModelMachines', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='WatchOpenedPorts', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Firewaller', Request='WatchUnits', Version=2, Params=params)
+ msg = dict(Type='Firewaller', Request='WatchUnits', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class HighAvailability(Type):
+class HighAvailabilityFacade(Type):
name = 'HighAvailability'
version = 2
schema = {'definitions': {'Address': {'additionalProperties': False,
return reply
-class HostKeyReporter(Type):
+class HostKeyReporterFacade(Type):
name = 'HostKeyReporter'
version = 1
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class ImageManager(Type):
+class ImageManagerFacade(Type):
name = 'ImageManager'
version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class ImageMetadata(Type):
+class ImageMetadataFacade(Type):
name = 'ImageMetadata'
version = 2
schema = {'definitions': {'CloudImageMetadata': {'additionalProperties': False,
return reply
-class InstancePoller(Type):
+class InstancePollerFacade(Type):
name = 'InstancePoller'
- version = 2
+ version = 3
schema = {'definitions': {'Address': {'additionalProperties': False,
'properties': {'Scope': {'type': 'string'},
'SpaceName': {'type': 'string'},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='AreManuallyProvisioned', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='InstanceId', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='InstanceId', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='InstanceStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='Life', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='Life', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='ModelConfig', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='ModelConfig', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='ProviderAddresses', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='SetInstanceStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='SetProviderAddresses', Version=3, Params=params)
params['MachineAddresses'] = machineaddresses
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='Status', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='Status', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='WatchForModelConfigChanges', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=2, Params=params)
+ msg = dict(Type='InstancePoller', Request='WatchModelMachines', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
-class KeyManager(Type):
+class KeyManagerFacade(Type):
name = 'KeyManager'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class KeyUpdater(Type):
+class KeyUpdaterFacade(Type):
name = 'KeyUpdater'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class LeadershipService(Type):
+class LeadershipServiceFacade(Type):
name = 'LeadershipService'
version = 2
- schema = {'definitions': {'ClaimLeadershipBulkParams': {'additionalProperties': False,
+ schema = {'definitions': {'ApplicationTag': {'additionalProperties': False,
+ 'properties': {'Name': {'type': 'string'}},
+ 'required': ['Name'],
+ 'type': 'object'},
+ 'ClaimLeadershipBulkParams': {'additionalProperties': False,
'properties': {'Params': {'items': {'$ref': '#/definitions/ClaimLeadershipParams'},
'type': 'array'}},
'required': ['Params'],
'required': ['Results'],
'type': 'object'},
'ClaimLeadershipParams': {'additionalProperties': False,
- 'properties': {'DurationSeconds': {'type': 'number'},
- 'ServiceTag': {'type': 'string'},
+ 'properties': {'ApplicationTag': {'type': 'string'},
+ 'DurationSeconds': {'type': 'number'},
'UnitTag': {'type': 'string'}},
- 'required': ['ServiceTag',
+ 'required': ['ApplicationTag',
'UnitTag',
'DurationSeconds'],
'type': 'object'},
'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'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ServiceTag'},
+ 'properties': {'BlockUntilLeadershipReleased': {'properties': {'Params': {'$ref': '#/definitions/ApplicationTag'},
'Result': {'$ref': '#/definitions/ErrorResult'}},
'type': 'object'},
'ClaimLeadership': {'properties': {'Params': {'$ref': '#/definitions/ClaimLeadershipBulkParams'},
return reply
-class LifeFlag(Type):
+class LifeFlagFacade(Type):
name = 'LifeFlag'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class Logger(Type):
+class LoggerFacade(Type):
name = 'Logger'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class MachineActions(Type):
+class MachineActionsFacade(Type):
name = 'MachineActions'
version = 1
schema = {'definitions': {'Action': {'additionalProperties': False,
return reply
-class MachineManager(Type):
+class MachineManagerFacade(Type):
name = 'MachineManager'
version = 2
schema = {'definitions': {'AddMachineParams': {'additionalProperties': False,
return reply
-class Machiner(Type):
+class MachinerFacade(Type):
name = 'Machiner'
version = 1
schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
return reply
-class MeterStatus(Type):
+class MeterStatusFacade(Type):
name = 'MeterStatus'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class MetricsAdder(Type):
+class MetricsAdderFacade(Type):
name = 'MetricsAdder'
version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class MetricsDebug(Type):
+class MetricsDebugFacade(Type):
name = 'MetricsDebug'
- version = 1
+ version = 2
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=1, Params=params)
+ msg = dict(Type='MetricsDebug', Request='GetMetrics', Version=2, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=1, Params=params)
+ msg = dict(Type='MetricsDebug', Request='SetMeterStatus', Version=2, Params=params)
params['statues'] = statues
reply = await self.rpc(msg)
return reply
-class MetricsManager(Type):
+class MetricsManagerFacade(Type):
name = 'MetricsManager'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class MigrationFlag(Type):
+class MigrationFlagFacade(Type):
name = 'MigrationFlag'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class MigrationMaster(Type):
+class MigrationMasterFacade(Type):
name = 'MigrationMaster'
version = 1
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class MigrationMinion(Type):
+class MigrationMinionFacade(Type):
name = 'MigrationMinion'
version = 1
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class MigrationStatusWatcher(Type):
+class MigrationStatusWatcherFacade(Type):
name = 'MigrationStatusWatcher'
version = 1
schema = {'definitions': {'MigrationStatus': {'additionalProperties': False,
return reply
-class MigrationTarget(Type):
+class MigrationTargetFacade(Type):
name = 'MigrationTarget'
version = 1
schema = {'definitions': {'ModelArgs': {'additionalProperties': False,
return reply
-class ModelManager(Type):
+class ModelManagerFacade(Type):
name = 'ModelManager'
version = 2
schema = {'definitions': {'Entities': {'additionalProperties': False,
'Config'],
'type': 'object'},
'ModelInfo': {'additionalProperties': False,
- 'properties': {'DefaultSeries': {'type': 'string'},
+ 'properties': {'Cloud': {'type': 'string'},
+ 'DefaultSeries': {'type': 'string'},
'Life': {'type': 'string'},
'Name': {'type': 'string'},
'OwnerTag': {'type': 'string'},
'ServerUUID',
'ProviderType',
'DefaultSeries',
+ 'Cloud',
'OwnerTag',
'Life',
'Status',
return reply
-class NotifyWatcher(Type):
+class NotifyWatcherFacade(Type):
name = 'NotifyWatcher'
version = 1
schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}},
return reply
-class Pinger(Type):
+class PingerFacade(Type):
name = 'Pinger'
version = 1
schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}},
return reply
-class Provisioner(Type):
+class ProvisionerFacade(Type):
name = 'Provisioner'
- version = 2
+ version = 3
schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
'type': 'array'},
'AptMirror': {'type': 'string'},
'AptProxy': {'$ref': '#/definitions/Settings'},
'AuthorizedKeys': {'type': 'string'},
- 'PreferIPv6': {'type': 'boolean'},
'ProviderType': {'type': 'string'},
'Proxy': {'$ref': '#/definitions/Settings'},
'SSLHostnameVerification': {'type': 'boolean'},
'Proxy',
'AptProxy',
'AptMirror',
- 'PreferIPv6',
'AllowLXCLoopMounts',
'UpdateBehavior'],
'type': 'object'},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='APIAddresses', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='APIAddresses', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='APIHostPorts', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(BytesResult)
- async def CACert(self):
- '''
-
- Returns -> typing.Sequence[int]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='CACert', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ConstraintsResults)
- async def Constraints(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ConstraintsResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='Constraints', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ContainerConfig)
- async def ContainerConfig(self):
- '''
-
- Returns -> typing.Union[bool, str, _ForwardRef('Settings'), _ForwardRef('Settings'), _ForwardRef('UpdateBehavior')]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='ContainerConfig', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ContainerManagerConfig)
- async def ContainerManagerConfig(self, type_):
- '''
- type_ : str
- Returns -> typing.Mapping[str, str]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='ContainerManagerConfig', Version=2, Params=params)
- params['Type'] = type_
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(DistributionGroupResults)
- async def DistributionGroup(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~DistributionGroupResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='DistributionGroup', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ErrorResults)
- async def EnsureDead(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ErrorResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='EnsureDead', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(FindToolsResult)
- async def FindTools(self, arch, majorversion, minorversion, number, series):
- '''
- arch : str
- majorversion : int
- minorversion : int
- number : Number
- series : str
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='FindTools', Version=2, Params=params)
- params['Arch'] = arch
- params['MajorVersion'] = majorversion
- params['MinorVersion'] = minorversion
- params['Number'] = number
- params['Series'] = series
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(MachineNetworkConfigResults)
- async def GetContainerInterfaceInfo(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~MachineNetworkConfigResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='GetContainerInterfaceInfo', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StringResults)
- async def InstanceId(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~StringResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='InstanceId', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StatusResults)
- async def InstanceStatus(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~StatusResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='InstanceStatus', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(LifeResults)
- async def Life(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~LifeResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='Life', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StatusResults)
- async def MachinesWithTransientErrors(self):
- '''
-
- Returns -> typing.Sequence[~StatusResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='MachinesWithTransientErrors', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ModelConfigResult)
- async def ModelConfig(self):
- '''
-
- Returns -> typing.Mapping[str, typing.Any]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='ModelConfig', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StringResult)
- async def ModelUUID(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('Error'), str]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='ModelUUID', Version=2, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(MachineNetworkConfigResults)
- async def PrepareContainerInterfaceInfo(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~MachineNetworkConfigResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='PrepareContainerInterfaceInfo', Version=2, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ProvisioningInfoResults)
- async def ProvisioningInfo(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ProvisioningInfoResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Provisioner', Request='ProvisioningInfo', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='APIHostPorts', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def ReleaseContainerAddresses(self, entities):
+ @ReturnMapping(BytesResult)
+ async def CACert(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ErrorResult]
+
+ Returns -> typing.Sequence[int]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='CACert', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def Remove(self, entities):
+ @ReturnMapping(ConstraintsResults)
+ async def Constraints(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ErrorResult]
+ Returns -> typing.Sequence[~ConstraintsResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='Remove', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='Constraints', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResults)
- async def Series(self, entities):
+ @ReturnMapping(ContainerConfig)
+ async def ContainerConfig(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~StringResult]
+
+ Returns -> typing.Union[bool, str, _ForwardRef('Settings'), _ForwardRef('Settings'), _ForwardRef('UpdateBehavior')]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='Series', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='ContainerConfig', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetInstanceInfo(self, machines):
+ @ReturnMapping(ContainerManagerConfig)
+ async def ContainerManagerConfig(self, type_):
'''
- machines : typing.Sequence[~InstanceInfo]
- Returns -> typing.Sequence[~ErrorResult]
+ type_ : str
+ Returns -> typing.Mapping[str, str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=2, Params=params)
- params['Machines'] = machines
+ msg = dict(Type='Provisioner', Request='ContainerManagerConfig', Version=3, Params=params)
+ params['Type'] = type_
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetInstanceStatus(self, entities):
+ @ReturnMapping(DistributionGroupResults)
+ async def DistributionGroup(self, entities):
'''
- entities : typing.Sequence[~EntityStatusArgs]
- Returns -> typing.Sequence[~ErrorResult]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~DistributionGroupResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='DistributionGroup', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetPasswords(self, changes):
+ async def EnsureDead(self, entities):
'''
- changes : typing.Sequence[~EntityPassword]
+ entities : typing.Sequence[~Entity]
Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='SetPasswords', Version=2, Params=params)
- params['Changes'] = changes
+ msg = dict(Type='Provisioner', Request='EnsureDead', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetStatus(self, entities):
+ @ReturnMapping(FindToolsResult)
+ async def FindTools(self, arch, majorversion, minorversion, number, series):
'''
- entities : typing.Sequence[~EntityStatusArgs]
- Returns -> typing.Sequence[~ErrorResult]
+ arch : str
+ majorversion : int
+ minorversion : int
+ number : Number
+ series : str
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='SetStatus', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='FindTools', Version=3, Params=params)
+ params['Arch'] = arch
+ params['MajorVersion'] = majorversion
+ params['MinorVersion'] = minorversion
+ params['Number'] = number
+ params['Series'] = series
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetSupportedContainers(self, params):
+ @ReturnMapping(MachineNetworkConfigResults)
+ async def GetContainerInterfaceInfo(self, entities):
'''
- params : typing.Sequence[~MachineContainers]
- Returns -> typing.Sequence[~ErrorResult]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~MachineNetworkConfigResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='SetSupportedContainers', Version=2, Params=params)
- params['Params'] = params
+ msg = dict(Type='Provisioner', Request='GetContainerInterfaceInfo', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsResult)
- async def StateAddresses(self):
+ @ReturnMapping(StringResults)
+ async def InstanceId(self, entities):
'''
-
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='StateAddresses', Version=2, Params=params)
-
+ msg = dict(Type='Provisioner', Request='InstanceId', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(StatusResults)
- async def Status(self, entities):
+ async def InstanceStatus(self, entities):
'''
entities : typing.Sequence[~Entity]
Returns -> typing.Sequence[~StatusResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='Status', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='InstanceStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ToolsResults)
- async def Tools(self, entities):
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ToolsResult]
+ Returns -> typing.Sequence[~LifeResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='Tools', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='Life', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def UpdateStatus(self, entities):
+ @ReturnMapping(StatusResults)
+ async def MachinesWithTransientErrors(self):
'''
- entities : typing.Sequence[~EntityStatusArgs]
- Returns -> typing.Sequence[~ErrorResult]
+
+ Returns -> typing.Sequence[~StatusResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='UpdateStatus', Version=2, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='MachinesWithTransientErrors', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchAPIHostPorts(self):
+ @ReturnMapping(ModelConfigResult)
+ async def ModelConfig(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='ModelConfig', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResults)
- async def WatchAllContainers(self, params):
+ @ReturnMapping(StringResult)
+ async def ModelUUID(self):
'''
- params : typing.Sequence[~WatchContainer]
- Returns -> typing.Sequence[~StringsWatchResult]
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=2, Params=params)
- params['Params'] = params
+ msg = dict(Type='Provisioner', Request='ModelUUID', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResults)
- async def WatchContainers(self, params):
+ @ReturnMapping(MachineNetworkConfigResults)
+ async def PrepareContainerInterfaceInfo(self, entities):
'''
- params : typing.Sequence[~WatchContainer]
- Returns -> typing.Sequence[~StringsWatchResult]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~MachineNetworkConfigResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchContainers', Version=2, Params=params)
- params['Params'] = params
+ msg = dict(Type='Provisioner', Request='PrepareContainerInterfaceInfo', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchForModelConfigChanges(self):
+ @ReturnMapping(ProvisioningInfoResults)
+ async def ProvisioningInfo(self, entities):
'''
-
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ProvisioningInfoResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=2, Params=params)
-
+ msg = dict(Type='Provisioner', Request='ProvisioningInfo', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchMachineErrorRetry(self):
+ @ReturnMapping(ErrorResults)
+ async def ReleaseContainerAddresses(self, entities):
'''
-
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=2, Params=params)
-
+ msg = dict(Type='Provisioner', Request='ReleaseContainerAddresses', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResult)
- async def WatchModelMachines(self):
+ @ReturnMapping(ErrorResults)
+ async def Remove(self, entities):
'''
-
- Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=2, Params=params)
-
+ msg = dict(Type='Provisioner', Request='Remove', Version=3, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class ProxyUpdater(Type):
- name = 'ProxyUpdater'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['Entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'Tag': {'type': 'string'}},
- 'required': ['Tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'Code': {'type': 'string'},
- 'Info': {'$ref': '#/definitions/ErrorInfo'},
- 'Message': {'type': 'string'}},
- 'required': ['Message', 'Code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
- 'MacaroonPath': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False,
- 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
- 'type': 'array'},
- 'data': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'id': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'sig': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['data',
- 'location',
- 'id',
- 'caveats',
- 'sig'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'NotifyWatcherId': {'type': 'string'}},
- 'required': ['NotifyWatcherId', 'Error'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'ProxyConfig': {'additionalProperties': False,
- 'properties': {'FTP': {'type': 'string'},
- 'HTTP': {'type': 'string'},
- 'HTTPS': {'type': 'string'},
- 'NoProxy': {'type': 'string'}},
- 'required': ['HTTP',
- 'HTTPS',
- 'FTP',
- 'NoProxy'],
- 'type': 'object'},
- 'ProxyConfigResult': {'additionalProperties': False,
- 'properties': {'APTProxySettings': {'$ref': '#/definitions/ProxyConfig'},
- 'Error': {'$ref': '#/definitions/Error'},
- 'ProxySettings': {'$ref': '#/definitions/ProxyConfig'}},
- 'required': ['ProxySettings',
- 'APTProxySettings'],
- 'type': 'object'},
- 'ProxyConfigResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/ProxyConfigResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'caveat': {'additionalProperties': False,
- 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'verificationId': {'$ref': '#/definitions/packet'}},
- 'required': ['location',
- 'caveatId',
- 'verificationId'],
- 'type': 'object'},
- 'packet': {'additionalProperties': False,
- 'properties': {'headerLen': {'type': 'integer'},
- 'start': {'type': 'integer'},
- 'totalLen': {'type': 'integer'}},
- 'required': ['start', 'totalLen', 'headerLen'],
- 'type': 'object'}},
- 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ProxyConfigResults'}},
- 'type': 'object'},
- 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(ProxyConfigResults)
- async def ProxyConfig(self, entities):
+
+ @ReturnMapping(StringResults)
+ async def Series(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ProxyConfigResult]
+ Returns -> typing.Sequence[~StringResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='ProxyUpdater', Request='ProxyConfig', Version=1, Params=params)
+ msg = dict(Type='Provisioner', Request='Series', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchForProxyConfigAndAPIHostPortChanges(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SetInstanceInfo(self, machines):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~NotifyWatchResult]
+ machines : typing.Sequence[~InstanceInfo]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, Params=params)
+ msg = dict(Type='Provisioner', Request='SetInstanceInfo', Version=3, Params=params)
+ params['Machines'] = machines
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetInstanceStatus(self, entities):
+ '''
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Provisioner', Request='SetInstanceStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class Reboot(Type):
- name = 'Reboot'
- version = 2
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['Entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'Tag': {'type': 'string'}},
- 'required': ['Tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'Code': {'type': 'string'},
- 'Info': {'$ref': '#/definitions/ErrorInfo'},
- 'Message': {'type': 'string'}},
- 'required': ['Message', 'Code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
- 'MacaroonPath': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'}},
- 'required': ['Error'],
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False,
- 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
- 'type': 'array'},
- 'data': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'id': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'sig': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['data',
- 'location',
- 'id',
- 'caveats',
- 'sig'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'NotifyWatcherId': {'type': 'string'}},
- 'required': ['NotifyWatcherId', 'Error'],
- 'type': 'object'},
- 'RebootActionResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'type': 'object'},
- 'RebootActionResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'caveat': {'additionalProperties': False,
- 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'verificationId': {'$ref': '#/definitions/packet'}},
- 'required': ['location',
- 'caveatId',
- 'verificationId'],
- 'type': 'object'},
- 'packet': {'additionalProperties': False,
- 'properties': {'headerLen': {'type': 'integer'},
- 'start': {'type': 'integer'},
- 'totalLen': {'type': 'integer'}},
- 'required': ['start', 'totalLen', 'headerLen'],
- 'type': 'object'}},
- 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/RebootActionResults'}},
- 'type': 'object'},
- 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'}},
- 'type': 'object'}
-
@ReturnMapping(ErrorResults)
- async def ClearReboot(self, entities):
+ async def SetPasswords(self, changes):
'''
- entities : typing.Sequence[~Entity]
+ changes : typing.Sequence[~EntityPassword]
Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Reboot', Request='ClearReboot', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='SetPasswords', Version=3, Params=params)
+ params['Changes'] = changes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetStatus(self, entities):
+ '''
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Provisioner', Request='SetStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(RebootActionResults)
- async def GetRebootAction(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SetSupportedContainers(self, params):
+ '''
+ params : typing.Sequence[~MachineContainers]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Provisioner', Request='SetSupportedContainers', Version=3, Params=params)
+ params['Params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsResult)
+ async def StateAddresses(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Provisioner', Request='StateAddresses', Version=3, Params=params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StatusResults)
+ async def Status(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~RebootActionResult]
+ Returns -> typing.Sequence[~StatusResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='Status', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def RequestReboot(self, entities):
+ @ReturnMapping(ToolsResults)
+ async def Tools(self, entities):
'''
entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ToolsResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Provisioner', Request='Tools', Version=3, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def UpdateStatus(self, entities):
+ '''
+ entities : typing.Sequence[~EntityStatusArgs]
Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='UpdateStatus', Version=3, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(NotifyWatchResult)
- async def WatchForRebootEvent(self):
+ async def WatchAPIHostPorts(self):
'''
Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Reboot', Request='WatchForRebootEvent', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='WatchAPIHostPorts', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
-class RelationUnitsWatcher(Type):
- name = 'RelationUnitsWatcher'
- version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
- 'properties': {'Code': {'type': 'string'},
- 'Info': {'$ref': '#/definitions/ErrorInfo'},
- 'Message': {'type': 'string'}},
- 'required': ['Message', 'Code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
- 'MacaroonPath': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False,
- 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
- 'type': 'array'},
- 'data': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'id': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'sig': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['data',
- 'location',
- 'id',
- 'caveats',
- 'sig'],
- 'type': 'object'},
- 'RelationUnitsChange': {'additionalProperties': False,
- 'properties': {'Changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
- 'type': 'object'},
- 'Departed': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['Changed', 'Departed'],
- 'type': 'object'},
- 'RelationUnitsWatchResult': {'additionalProperties': False,
- 'properties': {'Changes': {'$ref': '#/definitions/RelationUnitsChange'},
- 'Error': {'$ref': '#/definitions/Error'},
- 'RelationUnitsWatcherId': {'type': 'string'}},
- 'required': ['RelationUnitsWatcherId',
- 'Changes',
- 'Error'],
- 'type': 'object'},
- 'UnitSettings': {'additionalProperties': False,
- 'properties': {'Version': {'type': 'integer'}},
- 'required': ['Version'],
- 'type': 'object'},
- 'caveat': {'additionalProperties': False,
- 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'verificationId': {'$ref': '#/definitions/packet'}},
- 'required': ['location',
- 'caveatId',
- 'verificationId'],
- 'type': 'object'},
- 'packet': {'additionalProperties': False,
- 'properties': {'headerLen': {'type': 'integer'},
- 'start': {'type': 'integer'},
- 'totalLen': {'type': 'integer'}},
- 'required': ['start', 'totalLen', 'headerLen'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(RelationUnitsWatchResult)
- async def Next(self):
- '''
- Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str]
+ @ReturnMapping(StringsWatchResults)
+ async def WatchAllContainers(self, params):
+ '''
+ params : typing.Sequence[~WatchContainer]
+ Returns -> typing.Sequence[~StringsWatchResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='RelationUnitsWatcher', Request='Next', Version=1, Params=params)
-
+ msg = dict(Type='Provisioner', Request='WatchAllContainers', Version=3, Params=params)
+ params['Params'] = params
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Stop(self):
+ @ReturnMapping(StringsWatchResults)
+ async def WatchContainers(self, params):
'''
-
- Returns -> None
+ params : typing.Sequence[~WatchContainer]
+ Returns -> typing.Sequence[~StringsWatchResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params)
-
+ msg = dict(Type='Provisioner', Request='WatchContainers', Version=3, Params=params)
+ params['Params'] = params
reply = await self.rpc(msg)
return reply
-class Resumer(Type):
- name = 'Resumer'
- version = 2
- schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'}
-
- @ReturnMapping(None)
- async def ResumeTransactions(self):
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForModelConfigChanges(self):
'''
- Returns -> None
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, Params=params)
+ msg = dict(Type='Provisioner', Request='WatchForModelConfigChanges', Version=3, Params=params)
reply = await self.rpc(msg)
return reply
-class RetryStrategy(Type):
- name = 'RetryStrategy'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['Entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'Tag': {'type': 'string'}},
- 'required': ['Tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'Code': {'type': 'string'},
- 'Info': {'$ref': '#/definitions/ErrorInfo'},
- 'Message': {'type': 'string'}},
- 'required': ['Message', 'Code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
- 'MacaroonPath': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False,
- 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
- 'type': 'array'},
- 'data': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'id': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'sig': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['data',
- 'location',
- 'id',
- 'caveats',
- 'sig'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'NotifyWatcherId': {'type': 'string'}},
- 'required': ['NotifyWatcherId', 'Error'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'RetryStrategy': {'additionalProperties': False,
- 'properties': {'JitterRetryTime': {'type': 'boolean'},
- 'MaxRetryTime': {'type': 'integer'},
- 'MinRetryTime': {'type': 'integer'},
- 'RetryTimeFactor': {'type': 'integer'},
- 'ShouldRetry': {'type': 'boolean'}},
- 'required': ['ShouldRetry',
- 'MinRetryTime',
- 'MaxRetryTime',
- 'JitterRetryTime',
- 'RetryTimeFactor'],
- 'type': 'object'},
- 'RetryStrategyResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'Result': {'$ref': '#/definitions/RetryStrategy'}},
- 'required': ['Error', 'Result'],
- 'type': 'object'},
- 'RetryStrategyResults': {'additionalProperties': False,
- 'properties': {'Results': {'items': {'$ref': '#/definitions/RetryStrategyResult'},
- 'type': 'array'}},
- 'required': ['Results'],
- 'type': 'object'},
- 'caveat': {'additionalProperties': False,
- 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'verificationId': {'$ref': '#/definitions/packet'}},
- 'required': ['location',
- 'caveatId',
- 'verificationId'],
- 'type': 'object'},
- 'packet': {'additionalProperties': False,
- 'properties': {'headerLen': {'type': 'integer'},
- 'start': {'type': 'integer'},
- 'totalLen': {'type': 'integer'}},
- 'required': ['start', 'totalLen', 'headerLen'],
- 'type': 'object'}},
- 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/RetryStrategyResults'}},
- 'type': 'object'},
- 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
- @ReturnMapping(RetryStrategyResults)
- async def RetryStrategy(self, entities):
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchMachineErrorRetry(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~RetryStrategyResult]
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='WatchMachineErrorRetry', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchRetryStrategy(self, entities):
+ @ReturnMapping(StringsWatchResult)
+ async def WatchModelMachines(self):
'''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~NotifyWatchResult]
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params)
- params['Entities'] = entities
+ msg = dict(Type='Provisioner', Request='WatchModelMachines', Version=3, Params=params)
+
reply = await self.rpc(msg)
return reply
-class SSHClient(Type):
- name = 'SSHClient'
+class ProxyUpdaterFacade(Type):
+ name = 'ProxyUpdater'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'caveats',
'sig'],
'type': 'object'},
- 'SSHAddressResult': {'additionalProperties': False,
- 'properties': {'address': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'SSHAddressResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'},
- 'type': 'array'}},
- 'required': ['results'],
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'NotifyWatcherId': {'type': 'string'}},
+ 'required': ['NotifyWatcherId', 'Error'],
'type': 'object'},
- 'SSHProxyResult': {'additionalProperties': False,
- 'properties': {'use-proxy': {'type': 'boolean'}},
- 'required': ['use-proxy'],
- 'type': 'object'},
- 'SSHPublicKeysResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'public-keys': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'SSHPublicKeysResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'caveat': {'additionalProperties': False,
- 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
- 'location': {'$ref': '#/definitions/packet'},
- 'verificationId': {'$ref': '#/definitions/packet'}},
- 'required': ['location',
- 'caveatId',
- 'verificationId'],
- 'type': 'object'},
- 'packet': {'additionalProperties': False,
- 'properties': {'headerLen': {'type': 'integer'},
- 'start': {'type': 'integer'},
- 'totalLen': {'type': 'integer'}},
- 'required': ['start', 'totalLen', 'headerLen'],
- 'type': 'object'}},
- 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
- 'type': 'object'},
- 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}},
- 'type': 'object'},
- 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
- 'type': 'object'},
- 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(SSHAddressResults)
- async def PrivateAddress(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~SSHAddressResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(SSHProxyResult)
- async def Proxy(self):
- '''
-
- Returns -> bool
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='SSHClient', Request='Proxy', Version=1, Params=params)
-
- reply = await self.rpc(msg)
- return reply
-
-
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'ProxyConfig': {'additionalProperties': False,
+ 'properties': {'FTP': {'type': 'string'},
+ 'HTTP': {'type': 'string'},
+ 'HTTPS': {'type': 'string'},
+ 'NoProxy': {'type': 'string'}},
+ 'required': ['HTTP',
+ 'HTTPS',
+ 'FTP',
+ 'NoProxy'],
+ 'type': 'object'},
+ 'ProxyConfigResult': {'additionalProperties': False,
+ 'properties': {'APTProxySettings': {'$ref': '#/definitions/ProxyConfig'},
+ 'Error': {'$ref': '#/definitions/Error'},
+ 'ProxySettings': {'$ref': '#/definitions/ProxyConfig'}},
+ 'required': ['ProxySettings',
+ 'APTProxySettings'],
+ 'type': 'object'},
+ 'ProxyConfigResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/ProxyConfigResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'caveat': {'additionalProperties': False,
+ 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'verificationId': {'$ref': '#/definitions/packet'}},
+ 'required': ['location',
+ 'caveatId',
+ 'verificationId'],
+ 'type': 'object'},
+ 'packet': {'additionalProperties': False,
+ 'properties': {'headerLen': {'type': 'integer'},
+ 'start': {'type': 'integer'},
+ 'totalLen': {'type': 'integer'}},
+ 'required': ['start', 'totalLen', 'headerLen'],
+ 'type': 'object'}},
+ 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ProxyConfigResults'}},
+ 'type': 'object'},
+ 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(SSHAddressResults)
- async def PublicAddress(self, entities):
+ @ReturnMapping(ProxyConfigResults)
+ async def ProxyConfig(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~SSHAddressResult]
+ Returns -> typing.Sequence[~ProxyConfigResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='SSHClient', Request='PublicAddress', Version=1, Params=params)
+ msg = dict(Type='ProxyUpdater', Request='ProxyConfig', Version=1, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(SSHPublicKeysResults)
- async def PublicKeys(self, entities):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchForProxyConfigAndAPIHostPortChanges(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~SSHPublicKeysResult]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='SSHClient', Request='PublicKeys', Version=1, Params=params)
+ msg = dict(Type='ProxyUpdater', Request='WatchForProxyConfigAndAPIHostPortChanges', Version=1, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class Service(Type):
- name = 'Service'
- version = 3
- schema = {'definitions': {'AddRelation': {'additionalProperties': False,
- 'properties': {'Endpoints': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['Endpoints'],
- 'type': 'object'},
- 'AddRelationResults': {'additionalProperties': False,
- 'properties': {'Endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/Relation'}},
- 'type': 'object'}},
- 'required': ['Endpoints'],
- 'type': 'object'},
- 'AddServiceUnits': {'additionalProperties': False,
- 'properties': {'NumUnits': {'type': 'integer'},
- 'Placement': {'items': {'$ref': '#/definitions/Placement'},
- 'type': 'array'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName',
- 'NumUnits',
- 'Placement'],
- 'type': 'object'},
- 'AddServiceUnitsResults': {'additionalProperties': False,
- 'properties': {'Units': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['Units'],
- 'type': 'object'},
- 'Constraints': {'additionalProperties': False,
- 'properties': {'Count': {'type': 'integer'},
- 'Pool': {'type': 'string'},
- 'Size': {'type': 'integer'}},
- 'required': ['Pool', 'Size', 'Count'],
- 'type': 'object'},
- 'DestroyRelation': {'additionalProperties': False,
- 'properties': {'Endpoints': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['Endpoints'],
- 'type': 'object'},
- 'DestroyServiceUnits': {'additionalProperties': False,
- 'properties': {'UnitNames': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['UnitNames'],
- 'type': 'object'},
+class RebootFacade(Type):
+ name = 'Reboot'
+ version = 2
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['Entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'Tag': {'type': 'string'}},
+ 'required': ['Tag'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'Code': {'type': 'string'},
'Info': {'$ref': '#/definitions/ErrorInfo'},
'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'},
'caveats',
'sig'],
'type': 'object'},
- 'Placement': {'additionalProperties': False,
- 'properties': {'Directive': {'type': 'string'},
- 'Scope': {'type': 'string'}},
- 'required': ['Scope', 'Directive'],
- 'type': 'object'},
- 'Relation': {'additionalProperties': False,
- 'properties': {'Interface': {'type': 'string'},
- 'Limit': {'type': 'integer'},
- 'Name': {'type': 'string'},
- 'Optional': {'type': 'boolean'},
- 'Role': {'type': 'string'},
- 'Scope': {'type': 'string'}},
- 'required': ['Name',
- 'Role',
- 'Interface',
- 'Optional',
- 'Limit',
- 'Scope'],
- 'type': 'object'},
- 'ServiceCharmRelations': {'additionalProperties': False,
- 'properties': {'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName'],
- 'type': 'object'},
- 'ServiceCharmRelationsResults': {'additionalProperties': False,
- 'properties': {'CharmRelations': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['CharmRelations'],
- 'type': 'object'},
- 'ServiceDeploy': {'additionalProperties': False,
- 'properties': {'Channel': {'type': 'string'},
- 'CharmUrl': {'type': 'string'},
- 'Config': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'ConfigYAML': {'type': 'string'},
- 'Constraints': {'$ref': '#/definitions/Value'},
- 'EndpointBindings': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'NumUnits': {'type': 'integer'},
- 'Placement': {'items': {'$ref': '#/definitions/Placement'},
- 'type': 'array'},
- 'Resources': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'Series': {'type': 'string'},
- 'ServiceName': {'type': 'string'},
- 'Storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}},
- 'type': 'object'}},
- 'required': ['ServiceName',
- 'Series',
- 'CharmUrl',
- 'Channel',
- 'NumUnits',
- 'Config',
- 'ConfigYAML',
- 'Constraints',
- 'Placement',
- 'Storage',
- 'EndpointBindings',
- 'Resources'],
- 'type': 'object'},
- 'ServiceDestroy': {'additionalProperties': False,
- 'properties': {'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName'],
- 'type': 'object'},
- 'ServiceExpose': {'additionalProperties': False,
- 'properties': {'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName'],
- 'type': 'object'},
- 'ServiceGet': {'additionalProperties': False,
- 'properties': {'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName'],
- 'type': 'object'},
- 'ServiceGetResults': {'additionalProperties': False,
- 'properties': {'Charm': {'type': 'string'},
- 'Config': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'Constraints': {'$ref': '#/definitions/Value'},
- 'Service': {'type': 'string'}},
- 'required': ['Service',
- 'Charm',
- 'Config',
- 'Constraints'],
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'NotifyWatcherId': {'type': 'string'}},
+ 'required': ['NotifyWatcherId', 'Error'],
'type': 'object'},
- 'ServiceMetricCredential': {'additionalProperties': False,
- 'properties': {'MetricCredentials': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName',
- 'MetricCredentials'],
- 'type': 'object'},
- 'ServiceMetricCredentials': {'additionalProperties': False,
- 'properties': {'Creds': {'items': {'$ref': '#/definitions/ServiceMetricCredential'},
- 'type': 'array'}},
- 'required': ['Creds'],
- 'type': 'object'},
- 'ServiceSet': {'additionalProperties': False,
- 'properties': {'Options': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName', 'Options'],
- 'type': 'object'},
- 'ServiceSetCharm': {'additionalProperties': False,
- 'properties': {'charmurl': {'type': 'string'},
- 'cs-channel': {'type': 'string'},
- 'forceseries': {'type': 'boolean'},
- 'forceunits': {'type': 'boolean'},
- 'resourceids': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'servicename': {'type': 'string'}},
- 'required': ['servicename',
- 'charmurl',
- 'cs-channel',
- 'forceunits',
- 'forceseries',
- 'resourceids'],
- 'type': 'object'},
- 'ServiceUnexpose': {'additionalProperties': False,
- 'properties': {'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName'],
- 'type': 'object'},
- 'ServiceUnset': {'additionalProperties': False,
- 'properties': {'Options': {'items': {'type': 'string'},
- 'type': 'array'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName', 'Options'],
- 'type': 'object'},
- 'ServiceUpdate': {'additionalProperties': False,
- 'properties': {'CharmUrl': {'type': 'string'},
- 'Constraints': {'$ref': '#/definitions/Value'},
- 'ForceCharmUrl': {'type': 'boolean'},
- 'ForceSeries': {'type': 'boolean'},
- 'MinUnits': {'type': 'integer'},
- 'ServiceName': {'type': 'string'},
- 'SettingsStrings': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'SettingsYAML': {'type': 'string'}},
- 'required': ['ServiceName',
- 'CharmUrl',
- 'ForceCharmUrl',
- 'ForceSeries',
- 'MinUnits',
- 'SettingsStrings',
- 'SettingsYAML',
- 'Constraints'],
- 'type': 'object'},
- 'ServicesDeploy': {'additionalProperties': False,
- 'properties': {'Services': {'items': {'$ref': '#/definitions/ServiceDeploy'},
- 'type': 'array'}},
- 'required': ['Services'],
- 'type': 'object'},
- 'SetConstraints': {'additionalProperties': False,
- 'properties': {'Constraints': {'$ref': '#/definitions/Value'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName', 'Constraints'],
- 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'Error': {'$ref': '#/definitions/Error'},
- 'Result': {'type': 'string'}},
- 'required': ['Error', 'Result'],
- 'type': 'object'},
- 'Value': {'additionalProperties': False,
- 'properties': {'arch': {'type': 'string'},
- 'container': {'type': 'string'},
- 'cpu-cores': {'type': 'integer'},
- 'cpu-power': {'type': 'integer'},
- 'instance-type': {'type': 'string'},
- 'mem': {'type': 'integer'},
- 'root-disk': {'type': 'integer'},
- 'spaces': {'items': {'type': 'string'},
- 'type': 'array'},
- 'tags': {'items': {'type': 'string'},
- 'type': 'array'},
- 'virt-type': {'type': 'string'}},
- 'type': 'object'},
+ 'RebootActionResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'type': 'object'},
+ 'RebootActionResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RebootActionResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
'caveat': {'additionalProperties': False,
'properties': {'caveatId': {'$ref': '#/definitions/packet'},
'location': {'$ref': '#/definitions/packet'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'},
- 'Result': {'$ref': '#/definitions/AddRelationResults'}},
- 'type': 'object'},
- 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddServiceUnits'},
- 'Result': {'$ref': '#/definitions/AddServiceUnitsResults'}},
- 'type': 'object'},
- 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ServiceCharmRelations'},
- 'Result': {'$ref': '#/definitions/ServiceCharmRelationsResults'}},
- 'type': 'object'},
- 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ServicesDeploy'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ServiceDestroy'}},
- 'type': 'object'},
- 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}},
- 'type': 'object'},
- 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyServiceUnits'}},
- 'type': 'object'},
- 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ServiceExpose'}},
- 'type': 'object'},
- 'Get': {'properties': {'Params': {'$ref': '#/definitions/ServiceGet'},
- 'Result': {'$ref': '#/definitions/ServiceGetResults'}},
- 'type': 'object'},
- 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ServiceGet'},
- 'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetServiceConstraints'},
- 'Result': {'$ref': '#/definitions/GetConstraintsResults'}},
- 'type': 'object'},
- 'Set': {'properties': {'Params': {'$ref': '#/definitions/ServiceSet'}},
- 'type': 'object'},
- 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ServiceSetCharm'}},
- 'type': 'object'},
- 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
- 'type': 'object'},
- 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ServiceMetricCredentials'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ServiceUnexpose'}},
- 'type': 'object'},
- 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ServiceUnset'}},
- 'type': 'object'},
- 'Update': {'properties': {'Params': {'$ref': '#/definitions/ServiceUpdate'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(AddRelationResults)
- async def AddRelation(self, endpoints):
- '''
- endpoints : typing.Sequence[str]
- Returns -> typing.Mapping[str, ~Relation]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='AddRelation', Version=3, Params=params)
- params['Endpoints'] = endpoints
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(AddServiceUnitsResults)
- async def AddUnits(self, numunits, placement, servicename):
- '''
- numunits : int
- placement : typing.Sequence[~Placement]
- servicename : str
- Returns -> typing.Sequence[str]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='AddUnits', Version=3, Params=params)
- params['NumUnits'] = numunits
- params['Placement'] = placement
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ServiceCharmRelationsResults)
- async def CharmRelations(self, servicename):
- '''
- servicename : str
- Returns -> typing.Sequence[str]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='CharmRelations', Version=3, Params=params)
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ErrorResults)
- async def Deploy(self, services):
- '''
- services : typing.Sequence[~ServiceDeploy]
- Returns -> typing.Sequence[~ErrorResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='Deploy', Version=3, Params=params)
- params['Services'] = services
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(None)
- async def Destroy(self, servicename):
- '''
- servicename : str
- Returns -> None
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='Destroy', Version=3, Params=params)
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
+ 'properties': {'ClearReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'GetRebootAction': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RebootActionResults'}},
+ 'type': 'object'},
+ 'RequestReboot': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchForRebootEvent': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(None)
- async def DestroyRelation(self, endpoints):
+ @ReturnMapping(ErrorResults)
+ async def ClearReboot(self, entities):
'''
- endpoints : typing.Sequence[str]
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='DestroyRelation', Version=3, Params=params)
- params['Endpoints'] = endpoints
+ msg = dict(Type='Reboot', Request='ClearReboot', Version=2, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def DestroyUnits(self, unitnames):
+ @ReturnMapping(RebootActionResults)
+ async def GetRebootAction(self, entities):
'''
- unitnames : typing.Sequence[str]
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RebootActionResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='DestroyUnits', Version=3, Params=params)
- params['UnitNames'] = unitnames
+ msg = dict(Type='Reboot', Request='GetRebootAction', Version=2, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Expose(self, servicename):
+ @ReturnMapping(ErrorResults)
+ async def RequestReboot(self, entities):
'''
- servicename : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='Expose', Version=3, Params=params)
- params['ServiceName'] = servicename
+ msg = dict(Type='Reboot', Request='RequestReboot', Version=2, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ServiceGetResults)
- async def Get(self, servicename):
- '''
- servicename : str
- Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')]
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForRebootEvent(self):
'''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='Get', Version=3, Params=params)
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
- @ReturnMapping(StringResult)
- async def GetCharmURL(self, servicename):
- '''
- servicename : str
Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='GetCharmURL', Version=3, Params=params)
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
+ msg = dict(Type='Reboot', Request='WatchForRebootEvent', Version=2, Params=params)
- @ReturnMapping(GetConstraintsResults)
- async def GetConstraints(self, servicename):
- '''
- servicename : str
- Returns -> Value
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='GetConstraints', Version=3, Params=params)
- params['ServiceName'] = servicename
reply = await self.rpc(msg)
return reply
+class RelationUnitsWatcherFacade(Type):
+ name = 'RelationUnitsWatcher'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'Code': {'type': 'string'},
+ 'Info': {'$ref': '#/definitions/ErrorInfo'},
+ 'Message': {'type': 'string'}},
+ 'required': ['Message', 'Code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'MacaroonPath': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False,
+ 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
+ 'type': 'array'},
+ 'data': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'id': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'sig': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['data',
+ 'location',
+ 'id',
+ 'caveats',
+ 'sig'],
+ 'type': 'object'},
+ 'RelationUnitsChange': {'additionalProperties': False,
+ 'properties': {'Changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
+ 'type': 'object'},
+ 'Departed': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['Changed', 'Departed'],
+ 'type': 'object'},
+ 'RelationUnitsWatchResult': {'additionalProperties': False,
+ 'properties': {'Changes': {'$ref': '#/definitions/RelationUnitsChange'},
+ 'Error': {'$ref': '#/definitions/Error'},
+ 'RelationUnitsWatcherId': {'type': 'string'}},
+ 'required': ['RelationUnitsWatcherId',
+ 'Changes',
+ 'Error'],
+ 'type': 'object'},
+ 'UnitSettings': {'additionalProperties': False,
+ 'properties': {'Version': {'type': 'integer'}},
+ 'required': ['Version'],
+ 'type': 'object'},
+ 'caveat': {'additionalProperties': False,
+ 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'verificationId': {'$ref': '#/definitions/packet'}},
+ 'required': ['location',
+ 'caveatId',
+ 'verificationId'],
+ 'type': 'object'},
+ 'packet': {'additionalProperties': False,
+ 'properties': {'headerLen': {'type': 'integer'},
+ 'start': {'type': 'integer'},
+ 'totalLen': {'type': 'integer'}},
+ 'required': ['start', 'totalLen', 'headerLen'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(None)
- async def Set(self, options, servicename):
- '''
- options : typing.Mapping[str, str]
- servicename : str
- Returns -> None
+ @ReturnMapping(RelationUnitsWatchResult)
+ async def Next(self):
'''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='Set', Version=3, Params=params)
- params['Options'] = options
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
- @ReturnMapping(None)
- async def SetCharm(self, charmurl, cs_channel, forceseries, forceunits, resourceids, servicename):
- '''
- charmurl : str
- cs_channel : str
- forceseries : bool
- forceunits : bool
- resourceids : typing.Mapping[str, str]
- servicename : str
- Returns -> None
+ Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='SetCharm', Version=3, Params=params)
- params['charmurl'] = charmurl
- params['cs-channel'] = cs_channel
- params['forceseries'] = forceseries
- params['forceunits'] = forceunits
- params['resourceids'] = resourceids
- params['servicename'] = servicename
+ msg = dict(Type='RelationUnitsWatcher', Request='Next', Version=1, Params=params)
+
reply = await self.rpc(msg)
return reply
@ReturnMapping(None)
- async def SetConstraints(self, constraints, servicename):
+ async def Stop(self):
'''
- constraints : Value
- servicename : str
+
Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='SetConstraints', Version=3, Params=params)
- params['Constraints'] = constraints
- params['ServiceName'] = servicename
- reply = await self.rpc(msg)
- return reply
-
-
+ msg = dict(Type='RelationUnitsWatcher', Request='Stop', Version=1, Params=params)
- @ReturnMapping(ErrorResults)
- async def SetMetricCredentials(self, creds):
- '''
- creds : typing.Sequence[~ServiceMetricCredential]
- Returns -> typing.Sequence[~ErrorResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Service', Request='SetMetricCredentials', Version=3, Params=params)
- params['Creds'] = creds
reply = await self.rpc(msg)
return reply
+class ResumerFacade(Type):
+ name = 'Resumer'
+ version = 2
+ schema = {'properties': {'ResumeTransactions': {'type': 'object'}}, 'type': 'object'}
+
@ReturnMapping(None)
- async def Unexpose(self, servicename):
+ async def ResumeTransactions(self):
'''
- servicename : str
+
Returns -> None
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='Unexpose', Version=3, Params=params)
- params['ServiceName'] = servicename
+ msg = dict(Type='Resumer', Request='ResumeTransactions', Version=2, Params=params)
+
reply = await self.rpc(msg)
return reply
+class RetryStrategyFacade(Type):
+ name = 'RetryStrategy'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['Entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'Tag': {'type': 'string'}},
+ 'required': ['Tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'Code': {'type': 'string'},
+ 'Info': {'$ref': '#/definitions/ErrorInfo'},
+ 'Message': {'type': 'string'}},
+ 'required': ['Message', 'Code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'Macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'MacaroonPath': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False,
+ 'properties': {'caveats': {'items': {'$ref': '#/definitions/caveat'},
+ 'type': 'array'},
+ 'data': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'id': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'sig': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['data',
+ 'location',
+ 'id',
+ 'caveats',
+ 'sig'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'NotifyWatcherId': {'type': 'string'}},
+ 'required': ['NotifyWatcherId', 'Error'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'RetryStrategy': {'additionalProperties': False,
+ 'properties': {'JitterRetryTime': {'type': 'boolean'},
+ 'MaxRetryTime': {'type': 'integer'},
+ 'MinRetryTime': {'type': 'integer'},
+ 'RetryTimeFactor': {'type': 'integer'},
+ 'ShouldRetry': {'type': 'boolean'}},
+ 'required': ['ShouldRetry',
+ 'MinRetryTime',
+ 'MaxRetryTime',
+ 'JitterRetryTime',
+ 'RetryTimeFactor'],
+ 'type': 'object'},
+ 'RetryStrategyResult': {'additionalProperties': False,
+ 'properties': {'Error': {'$ref': '#/definitions/Error'},
+ 'Result': {'$ref': '#/definitions/RetryStrategy'}},
+ 'required': ['Error', 'Result'],
+ 'type': 'object'},
+ 'RetryStrategyResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/RetryStrategyResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'caveat': {'additionalProperties': False,
+ 'properties': {'caveatId': {'$ref': '#/definitions/packet'},
+ 'location': {'$ref': '#/definitions/packet'},
+ 'verificationId': {'$ref': '#/definitions/packet'}},
+ 'required': ['location',
+ 'caveatId',
+ 'verificationId'],
+ 'type': 'object'},
+ 'packet': {'additionalProperties': False,
+ 'properties': {'headerLen': {'type': 'integer'},
+ 'start': {'type': 'integer'},
+ 'totalLen': {'type': 'integer'}},
+ 'required': ['start', 'totalLen', 'headerLen'],
+ 'type': 'object'}},
+ 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RetryStrategyResults'}},
+ 'type': 'object'},
+ 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
- @ReturnMapping(None)
- async def Unset(self, options, servicename):
+ @ReturnMapping(RetryStrategyResults)
+ async def RetryStrategy(self, entities):
'''
- options : typing.Sequence[str]
- servicename : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RetryStrategyResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='Unset', Version=3, Params=params)
- params['Options'] = options
- params['ServiceName'] = servicename
+ msg = dict(Type='RetryStrategy', Request='RetryStrategy', Version=1, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Update(self, charmurl, constraints, forcecharmurl, forceseries, minunits, servicename, settingsstrings, settingsyaml):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchRetryStrategy(self, entities):
'''
- charmurl : str
- constraints : Value
- forcecharmurl : bool
- forceseries : bool
- minunits : int
- servicename : str
- settingsstrings : typing.Mapping[str, str]
- settingsyaml : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Service', Request='Update', Version=3, Params=params)
- params['CharmUrl'] = charmurl
- params['Constraints'] = constraints
- params['ForceCharmUrl'] = forcecharmurl
- params['ForceSeries'] = forceseries
- params['MinUnits'] = minunits
- params['ServiceName'] = servicename
- params['SettingsStrings'] = settingsstrings
- params['SettingsYAML'] = settingsyaml
+ msg = dict(Type='RetryStrategy', Request='WatchRetryStrategy', Version=1, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class ServiceScaler(Type):
- name = 'ServiceScaler'
+class SSHClientFacade(Type):
+ name = 'SSHClient'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'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'},
'caveats',
'sig'],
'type': 'object'},
- 'StringsWatchResult': {'additionalProperties': False,
- 'properties': {'Changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'Error': {'$ref': '#/definitions/Error'},
- 'StringsWatcherId': {'type': 'string'}},
- 'required': ['StringsWatcherId',
- 'Changes',
- 'Error'],
- 'type': 'object'},
+ 'SSHAddressResult': {'additionalProperties': False,
+ 'properties': {'address': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'SSHAddressResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'SSHProxyResult': {'additionalProperties': False,
+ 'properties': {'use-proxy': {'type': 'boolean'}},
+ 'required': ['use-proxy'],
+ 'type': 'object'},
+ 'SSHPublicKeysResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'public-keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'SSHPublicKeysResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'caveat': {'additionalProperties': False,
'properties': {'caveatId': {'$ref': '#/definitions/packet'},
'location': {'$ref': '#/definitions/packet'},
'totalLen': {'type': 'integer'}},
'required': ['start', 'totalLen', 'headerLen'],
'type': 'object'}},
- 'properties': {'Rescale': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
- 'type': 'object'}},
+ 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
+ 'type': 'object'},
+ 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}},
+ 'type': 'object'},
+ 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
+ 'type': 'object'},
+ 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}},
+ 'type': 'object'}},
'type': 'object'}
- @ReturnMapping(ErrorResults)
- async def Rescale(self, entities):
+ @ReturnMapping(SSHAddressResults)
+ async def PrivateAddress(self, entities):
'''
entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ErrorResult]
+ Returns -> typing.Sequence[~SSHAddressResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='ServiceScaler', Request='Rescale', Version=1, Params=params)
+ msg = dict(Type='SSHClient', Request='PrivateAddress', Version=1, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResult)
- async def Watch(self):
+ @ReturnMapping(SSHProxyResult)
+ async def Proxy(self):
'''
- Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error')]
+ Returns -> bool
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='SSHClient', Request='Proxy', Version=1, Params=params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(SSHAddressResults)
+ async def PublicAddress(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='ServiceScaler', Request='Watch', Version=1, Params=params)
+ msg = dict(Type='SSHClient', Request='PublicAddress', Version=1, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+ @ReturnMapping(SSHPublicKeysResults)
+ async def PublicKeys(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHPublicKeysResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='SSHClient', Request='PublicKeys', Version=1, Params=params)
+ params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class Singular(Type):
+class SingularFacade(Type):
name = 'Singular'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class Spaces(Type):
+class SpacesFacade(Type):
name = 'Spaces'
version = 2
schema = {'definitions': {'CreateSpaceParams': {'additionalProperties': False,
return reply
-class StatusHistory(Type):
+class StatusHistoryFacade(Type):
name = 'StatusHistory'
version = 2
schema = {'definitions': {'StatusHistoryPruneArgs': {'additionalProperties': False,
- 'properties': {'MaxLogsPerEntity': {'type': 'integer'}},
- 'required': ['MaxLogsPerEntity'],
+ 'properties': {'MaxHistoryMB': {'type': 'integer'},
+ 'MaxHistoryTime': {'type': 'integer'}},
+ 'required': ['MaxHistoryTime',
+ 'MaxHistoryMB'],
'type': 'object'}},
'properties': {'Prune': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryPruneArgs'}},
'type': 'object'}},
@ReturnMapping(None)
- async def Prune(self, maxlogsperentity):
+ async def Prune(self, maxhistorymb, maxhistorytime):
'''
- maxlogsperentity : int
+ maxhistorymb : int
+ maxhistorytime : int
Returns -> None
'''
# map input types to rpc msg
params = dict()
msg = dict(Type='StatusHistory', Request='Prune', Version=2, Params=params)
- params['MaxLogsPerEntity'] = maxlogsperentity
+ params['MaxHistoryMB'] = maxhistorymb
+ params['MaxHistoryTime'] = maxhistorytime
reply = await self.rpc(msg)
return reply
-class Storage(Type):
+class StorageFacade(Type):
name = 'Storage'
version = 2
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class StorageProvisioner(Type):
+class StorageProvisionerFacade(Type):
name = 'StorageProvisioner'
version = 2
schema = {'definitions': {'BlockDevice': {'additionalProperties': False,
return reply
-class StringsWatcher(Type):
+class StringsWatcherFacade(Type):
name = 'StringsWatcher'
version = 1
schema = {'definitions': {'Error': {'additionalProperties': False,
return reply
-class Subnets(Type):
+class SubnetsFacade(Type):
name = 'Subnets'
version = 2
schema = {'definitions': {'AddSubnetParams': {'additionalProperties': False,
return reply
-class Undertaker(Type):
+class UndertakerFacade(Type):
name = 'Undertaker'
version = 1
schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False,
return reply
-class UnitAssigner(Type):
+class UnitAssignerFacade(Type):
name = 'UnitAssigner'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
return reply
-class Uniter(Type):
+class UniterFacade(Type):
name = 'Uniter'
- version = 3
+ version = 4
schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
'properties': {'Servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
'type': 'array'},
'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'}},
'required': ['Results'],
'type': 'object'},
'Endpoint': {'additionalProperties': False,
- 'properties': {'Relation': {'$ref': '#/definitions/Relation'},
- 'ServiceName': {'type': 'string'}},
- 'required': ['ServiceName', 'Relation'],
+ 'properties': {'ApplicationName': {'type': 'string'},
+ 'Relation': {'$ref': '#/definitions/Relation'}},
+ 'required': ['ApplicationName', 'Relation'],
'type': 'object'},
'Entities': {'additionalProperties': False,
'properties': {'Entities': {'items': {'$ref': '#/definitions/Entity'},
'required': ['Params'],
'type': 'object'},
'MergeLeadershipSettingsParam': {'additionalProperties': False,
- 'properties': {'ServiceTag': {'type': 'string'},
+ 'properties': {'ApplicationTag': {'type': 'string'},
'Settings': {'patternProperties': {'.*': {'type': 'string'}},
'type': 'object'}},
- 'required': ['ServiceTag',
+ 'required': ['ApplicationTag',
'Settings'],
'type': 'object'},
'MeterStatusResult': {'additionalProperties': False,
'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'}},
'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'},
'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'},
'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'},
'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'},
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='APIAddresses', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='APIAddresses', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='APIHostPorts', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='APIHostPorts', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Actions', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Actions', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='AddMetricBatches', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='AddMetricBatches', Version=4, Params=params)
params['Batches'] = batches
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='AddUnitStorage', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='AddUnitStorage', Version=4, Params=params)
params['storages'] = storages
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='AllMachinePorts', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='AllMachinePorts', Version=4, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResults)
+ async def ApplicationOwner(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Uniter', Request='ApplicationOwner', Version=4, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ApplicationStatusResults)
+ async def ApplicationStatus(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ApplicationStatusResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Uniter', Request='ApplicationStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='AssignedMachine', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='AssignedMachine', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='AvailabilityZone', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='AvailabilityZone', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='BeginActions', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='BeginActions', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='CACert', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='CACert', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='CharmArchiveSha256', Version=4, Params=params)
params['URLs'] = urls
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='CharmModifiedVersion', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='CharmURL', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='CharmURL', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ClearResolved', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ClearResolved', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ClosePorts', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ClosePorts', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ConfigSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ConfigSettings', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='CurrentModel', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='CurrentModel', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Destroy', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Destroy', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='DestroyAllSubordinates', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='DestroyUnitStorageAttachments', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='EnsureDead', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='EnsureDead', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='EnterScope', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='EnterScope', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='FinishActions', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='FinishActions', Version=4, Params=params)
params['results'] = results
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='GetMeterStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='GetMeterStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='GetPrincipal', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='GetPrincipal', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='HasSubordinates', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='HasSubordinates', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='JoinedRelations', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='JoinedRelations', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='LeaveScope', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='LeaveScope', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Life', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Life', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Merge', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Merge', Version=4, Params=params)
params['Params'] = params
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ModelConfig', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ModelConfig', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ModelUUID', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ModelUUID', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='NetworkConfig', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='NetworkConfig', Version=4, Params=params)
params['Args'] = args
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='OpenPorts', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='OpenPorts', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='PrivateAddress', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='PrivateAddress', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ProviderType', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ProviderType', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='PublicAddress', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='PublicAddress', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Read', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Read', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ReadRemoteSettings', Version=4, Params=params)
params['RelationUnitPairs'] = relationunitpairs
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='ReadSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='ReadSettings', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Relation', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Relation', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='RelationById', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='RelationById', Version=4, Params=params)
params['RelationIds'] = relationids
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='RemoveStorageAttachments', Version=4, Params=params)
params['ids'] = ids
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='RequestReboot', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='RequestReboot', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Resolved', Version=3, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StringResults)
- async def ServiceOwner(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~StringResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Uniter', Request='ServiceOwner', Version=3, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ServiceStatusResults)
- async def ServiceStatus(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~ServiceStatusResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Uniter', Request='ServiceStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Resolved', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='SetAgentStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='SetAgentStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetCharmURL(self, entities):
+ async def SetApplicationStatus(self, entities):
'''
- entities : typing.Sequence[~EntityCharmURL]
+ entities : typing.Sequence[~EntityStatusArgs]
Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='SetCharmURL', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='SetApplicationStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetServiceStatus(self, entities):
+ async def SetCharmURL(self, entities):
'''
- entities : typing.Sequence[~EntityStatusArgs]
+ entities : typing.Sequence[~EntityCharmURL]
Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='SetServiceStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='SetCharmURL', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='SetStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='SetStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='SetUnitStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='SetUnitStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='StorageAttachmentLife', Version=4, Params=params)
params['ids'] = ids
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='StorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='StorageAttachments', Version=4, Params=params)
params['ids'] = ids
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='UnitStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='UnitStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='UnitStorageAttachments', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='UpdateSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='UpdateSettings', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='Watch', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='Watch', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchAPIHostPorts', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchActionNotifications', Version=4, Params=params)
+ params['Entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResults)
+ async def WatchApplicationRelations(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsWatchResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Uniter', Request='WatchApplicationRelations', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchConfigSettings', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchForModelConfigChanges', Version=4, Params=params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchLeadershipSettings', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchMeterStatus', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchRelationUnits', Version=4, Params=params)
params['RelationUnits'] = relationunits
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResults)
- async def WatchServiceRelations(self, entities):
- '''
- entities : typing.Sequence[~Entity]
- Returns -> typing.Sequence[~StringsWatchResult]
- '''
- # map input types to rpc msg
- params = dict()
- msg = dict(Type='Uniter', Request='WatchServiceRelations', Version=3, Params=params)
- params['Entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
@ReturnMapping(NotifyWatchResults)
async def WatchStorageAttachments(self, ids):
'''
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchStorageAttachments', Version=4, Params=params)
params['ids'] = ids
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchUnitAddresses', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
params = dict()
- msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=3, Params=params)
+ msg = dict(Type='Uniter', Request='WatchUnitStorageAttachments', Version=4, Params=params)
params['Entities'] = entities
reply = await self.rpc(msg)
return reply
-class Upgrader(Type):
+class UpgraderFacade(Type):
name = 'Upgrader'
version = 1
schema = {'definitions': {'Binary': {'additionalProperties': False,
return reply
-class UserManager(Type):
+class UserManagerFacade(Type):
name = 'UserManager'
version = 1
schema = {'definitions': {'AddUser': {'additionalProperties': False,
return reply
-class VolumeAttachmentsWatcher(Type):
+class VolumeAttachmentsWatcherFacade(Type):
name = 'VolumeAttachmentsWatcher'
version = 2
schema = {'definitions': {'Error': {'additionalProperties': False,
--- /dev/null
+[
+ {
+ "Name": "Action",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Actions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "ApplicationsCharmsActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ApplicationsCharmActionsResults"
+ }
+ }
+ },
+ "Cancel": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "Enqueue": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Actions"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "FindActionTagsByPrefix": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FindTags"
+ },
+ "Result": {
+ "$ref": "#/definitions/FindTagsResults"
+ }
+ }
+ },
+ "FindActionsByNames": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FindActionsByNames"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByNames"
+ }
+ }
+ },
+ "ListAll": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByReceivers"
+ }
+ }
+ },
+ "ListCompleted": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByReceivers"
+ }
+ }
+ },
+ "ListPending": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByReceivers"
+ }
+ }
+ },
+ "ListRunning": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByReceivers"
+ }
+ }
+ },
+ "Run": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RunParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "RunOnAllMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RunParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Action": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "parameters": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "receiver": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "tag",
+ "receiver",
+ "name"
+ ]
+ },
+ "ActionResult": {
+ "type": "object",
+ "properties": {
+ "action": {
+ "$ref": "#/definitions/Action"
+ },
+ "completed": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "enqueued": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "message": {
+ "type": "string"
+ },
+ "output": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionSpec": {
+ "type": "object",
+ "properties": {
+ "Description": {
+ "type": "string"
+ },
+ "Params": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Description",
+ "Params"
+ ]
+ },
+ "Actions": {
+ "type": "object",
+ "properties": {
+ "ActionSpecs": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/ActionSpec"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ActionSpecs"
+ ]
+ },
+ "ActionsByName": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionsByNames": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionsByName"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionsByReceiver": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "receiver": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionsByReceivers": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionsByReceiver"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ApplicationCharmActionsResult": {
+ "type": "object",
+ "properties": {
+ "ApplicationTag": {
+ "type": "string"
+ },
+ "actions": {
+ "$ref": "#/definitions/Actions"
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ApplicationsCharmActionsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationCharmActionsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FindActionsByNames": {
+ "type": "object",
+ "properties": {
+ "names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FindTags": {
+ "type": "object",
+ "properties": {
+ "prefixes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "prefixes"
+ ]
+ },
+ "FindTagsResults": {
+ "type": "object",
+ "properties": {
+ "matches": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "matches"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "RunParams": {
+ "type": "object",
+ "properties": {
+ "Applications": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Commands": {
+ "type": "string"
+ },
+ "Machines": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Timeout": {
+ "type": "integer"
+ },
+ "Units": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Commands",
+ "Timeout",
+ "Machines",
+ "Applications",
+ "Units"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Addresser",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "CanDeallocateAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BoolResult"
+ }
+ }
+ },
+ "CleanupIPAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "WatchIPAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/EntitiesWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BoolResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "EntitiesWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "EntityWatcherId": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "EntityWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Agent",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ClearReboot": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "GetEntities": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/AgentGetEntitiesResults"
+ }
+ }
+ },
+ "IsMaster": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/IsMasterResult"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "SetPasswords": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntityPasswords"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "StateServingInfo": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StateServingInfo"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AgentGetEntitiesResult": {
+ "type": "object",
+ "properties": {
+ "ContainerType": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Jobs",
+ "ContainerType",
+ "Error"
+ ]
+ },
+ "AgentGetEntitiesResults": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AgentGetEntitiesResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityPassword": {
+ "type": "object",
+ "properties": {
+ "Password": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Password"
+ ]
+ },
+ "EntityPasswords": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityPassword"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changes"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "IsMasterResult": {
+ "type": "object",
+ "properties": {
+ "Master": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Master"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "StateServingInfo": {
+ "type": "object",
+ "properties": {
+ "APIPort": {
+ "type": "integer"
+ },
+ "CAPrivateKey": {
+ "type": "string"
+ },
+ "Cert": {
+ "type": "string"
+ },
+ "PrivateKey": {
+ "type": "string"
+ },
+ "SharedSecret": {
+ "type": "string"
+ },
+ "StatePort": {
+ "type": "integer"
+ },
+ "SystemIdentity": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "APIPort",
+ "StatePort",
+ "Cert",
+ "PrivateKey",
+ "CAPrivateKey",
+ "SharedSecret",
+ "SystemIdentity"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "AgentTools",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "UpdateToolsAvailable": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "Name": "AllModelWatcher",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/AllWatcherNextResults"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "AllWatcherNextResults": {
+ "type": "object",
+ "properties": {
+ "Deltas": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Delta"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Deltas"
+ ]
+ },
+ "Delta": {
+ "type": "object",
+ "properties": {
+ "Entity": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "Removed": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Removed",
+ "Entity"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "AllWatcher",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/AllWatcherNextResults"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "AllWatcherNextResults": {
+ "type": "object",
+ "properties": {
+ "Deltas": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Delta"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Deltas"
+ ]
+ },
+ "Delta": {
+ "type": "object",
+ "properties": {
+ "Entity": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "Removed": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Removed",
+ "Entity"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Annotations",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Get": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/AnnotationsGetResults"
+ }
+ }
+ },
+ "Set": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AnnotationsSet"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AnnotationsGetResult": {
+ "type": "object",
+ "properties": {
+ "Annotations": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "EntityTag": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "EntityTag",
+ "Annotations",
+ "Error"
+ ]
+ },
+ "AnnotationsGetResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AnnotationsGetResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "AnnotationsSet": {
+ "type": "object",
+ "properties": {
+ "Annotations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityAnnotations"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Annotations"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityAnnotations": {
+ "type": "object",
+ "properties": {
+ "Annotations": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "EntityTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "EntityTag",
+ "Annotations"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Application",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddRelation": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddRelation"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddRelationResults"
+ }
+ }
+ },
+ "AddUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddApplicationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddApplicationUnitsResults"
+ }
+ }
+ },
+ "CharmRelations": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationCharmRelations"
+ },
+ "Result": {
+ "$ref": "#/definitions/ApplicationCharmRelationsResults"
+ }
+ }
+ },
+ "Deploy": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationsDeploy"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Destroy": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationDestroy"
+ }
+ }
+ },
+ "DestroyRelation": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/DestroyRelation"
+ }
+ }
+ },
+ "DestroyUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/DestroyApplicationUnits"
+ }
+ }
+ },
+ "Expose": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationExpose"
+ }
+ }
+ },
+ "Get": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationGet"
+ },
+ "Result": {
+ "$ref": "#/definitions/ApplicationGetResults"
+ }
+ }
+ },
+ "GetCharmURL": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationGet"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "GetConstraints": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/GetApplicationConstraints"
+ },
+ "Result": {
+ "$ref": "#/definitions/GetConstraintsResults"
+ }
+ }
+ },
+ "Set": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationSet"
+ }
+ }
+ },
+ "SetCharm": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationSetCharm"
+ }
+ }
+ },
+ "SetConstraints": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetConstraints"
+ }
+ }
+ },
+ "SetMetricCredentials": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationMetricCredentials"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Unexpose": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationUnexpose"
+ }
+ }
+ },
+ "Unset": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationUnset"
+ }
+ }
+ },
+ "Update": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationUpdate"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AddApplicationUnits": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "NumUnits": {
+ "type": "integer"
+ },
+ "Placement": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Placement"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "NumUnits",
+ "Placement"
+ ]
+ },
+ "AddApplicationUnitsResults": {
+ "type": "object",
+ "properties": {
+ "Units": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Units"
+ ]
+ },
+ "AddRelation": {
+ "type": "object",
+ "properties": {
+ "Endpoints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Endpoints"
+ ]
+ },
+ "AddRelationResults": {
+ "type": "object",
+ "properties": {
+ "Endpoints": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/Relation"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Endpoints"
+ ]
+ },
+ "ApplicationCharmRelations": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "ApplicationCharmRelationsResults": {
+ "type": "object",
+ "properties": {
+ "CharmRelations": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CharmRelations"
+ ]
+ },
+ "ApplicationDeploy": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Channel": {
+ "type": "string"
+ },
+ "CharmUrl": {
+ "type": "string"
+ },
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "ConfigYAML": {
+ "type": "string"
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "EndpointBindings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "NumUnits": {
+ "type": "integer"
+ },
+ "Placement": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Placement"
+ }
+ },
+ "Resources": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "Series": {
+ "type": "string"
+ },
+ "Storage": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/Constraints"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Series",
+ "CharmUrl",
+ "Channel",
+ "NumUnits",
+ "Config",
+ "ConfigYAML",
+ "Constraints",
+ "Placement",
+ "Storage",
+ "EndpointBindings",
+ "Resources"
+ ]
+ },
+ "ApplicationDestroy": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "ApplicationExpose": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "ApplicationGet": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "ApplicationGetResults": {
+ "type": "object",
+ "properties": {
+ "Application": {
+ "type": "string"
+ },
+ "Charm": {
+ "type": "string"
+ },
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Application",
+ "Charm",
+ "Config",
+ "Constraints"
+ ]
+ },
+ "ApplicationMetricCredential": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "MetricCredentials": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "MetricCredentials"
+ ]
+ },
+ "ApplicationMetricCredentials": {
+ "type": "object",
+ "properties": {
+ "Creds": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationMetricCredential"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Creds"
+ ]
+ },
+ "ApplicationSet": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Options": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Options"
+ ]
+ },
+ "ApplicationSetCharm": {
+ "type": "object",
+ "properties": {
+ "applicationname": {
+ "type": "string"
+ },
+ "charmurl": {
+ "type": "string"
+ },
+ "cs-channel": {
+ "type": "string"
+ },
+ "forceseries": {
+ "type": "boolean"
+ },
+ "forceunits": {
+ "type": "boolean"
+ },
+ "resourceids": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "applicationname",
+ "charmurl",
+ "cs-channel",
+ "forceunits",
+ "forceseries",
+ "resourceids"
+ ]
+ },
+ "ApplicationUnexpose": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "ApplicationUnset": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Options": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Options"
+ ]
+ },
+ "ApplicationUpdate": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "CharmUrl": {
+ "type": "string"
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "ForceCharmUrl": {
+ "type": "boolean"
+ },
+ "ForceSeries": {
+ "type": "boolean"
+ },
+ "MinUnits": {
+ "type": "integer"
+ },
+ "SettingsStrings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "SettingsYAML": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "CharmUrl",
+ "ForceCharmUrl",
+ "ForceSeries",
+ "MinUnits",
+ "SettingsStrings",
+ "SettingsYAML",
+ "Constraints"
+ ]
+ },
+ "ApplicationsDeploy": {
+ "type": "object",
+ "properties": {
+ "Applications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationDeploy"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Applications"
+ ]
+ },
+ "Constraints": {
+ "type": "object",
+ "properties": {
+ "Count": {
+ "type": "integer"
+ },
+ "Pool": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Pool",
+ "Size",
+ "Count"
+ ]
+ },
+ "DestroyApplicationUnits": {
+ "type": "object",
+ "properties": {
+ "UnitNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UnitNames"
+ ]
+ },
+ "DestroyRelation": {
+ "type": "object",
+ "properties": {
+ "Endpoints": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Endpoints"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "GetApplicationConstraints": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName"
+ ]
+ },
+ "GetConstraintsResults": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Constraints"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Placement": {
+ "type": "object",
+ "properties": {
+ "Directive": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Scope",
+ "Directive"
+ ]
+ },
+ "Relation": {
+ "type": "object",
+ "properties": {
+ "Interface": {
+ "type": "string"
+ },
+ "Limit": {
+ "type": "integer"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "Optional": {
+ "type": "boolean"
+ },
+ "Role": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "Role",
+ "Interface",
+ "Optional",
+ "Limit",
+ "Scope"
+ ]
+ },
+ "SetConstraints": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Constraints"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "Value": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "container": {
+ "type": "string"
+ },
+ "cpu-cores": {
+ "type": "integer"
+ },
+ "cpu-power": {
+ "type": "integer"
+ },
+ "instance-type": {
+ "type": "string"
+ },
+ "mem": {
+ "type": "integer"
+ },
+ "root-disk": {
+ "type": "integer"
+ },
+ "spaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virt-type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "ApplicationScaler",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Rescale": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Backups",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Create": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BackupsCreateArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/BackupsMetadataResult"
+ }
+ }
+ },
+ "FinishRestore": {
+ "type": "object"
+ },
+ "Info": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BackupsInfoArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/BackupsMetadataResult"
+ }
+ }
+ },
+ "List": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BackupsListArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/BackupsListResult"
+ }
+ }
+ },
+ "PrepareRestore": {
+ "type": "object"
+ },
+ "Remove": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BackupsRemoveArgs"
+ }
+ }
+ },
+ "Restore": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RestoreArgs"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BackupsCreateArgs": {
+ "type": "object",
+ "properties": {
+ "Notes": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Notes"
+ ]
+ },
+ "BackupsInfoArgs": {
+ "type": "object",
+ "properties": {
+ "ID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ID"
+ ]
+ },
+ "BackupsListArgs": {
+ "type": "object",
+ "additionalProperties": false
+ },
+ "BackupsListResult": {
+ "type": "object",
+ "properties": {
+ "List": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BackupsMetadataResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "List"
+ ]
+ },
+ "BackupsMetadataResult": {
+ "type": "object",
+ "properties": {
+ "CACert": {
+ "type": "string"
+ },
+ "CAPrivateKey": {
+ "type": "string"
+ },
+ "Checksum": {
+ "type": "string"
+ },
+ "ChecksumFormat": {
+ "type": "string"
+ },
+ "Finished": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Hostname": {
+ "type": "string"
+ },
+ "ID": {
+ "type": "string"
+ },
+ "Machine": {
+ "type": "string"
+ },
+ "Model": {
+ "type": "string"
+ },
+ "Notes": {
+ "type": "string"
+ },
+ "Series": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ },
+ "Started": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Stored": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Version": {
+ "$ref": "#/definitions/Number"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ID",
+ "Checksum",
+ "ChecksumFormat",
+ "Size",
+ "Stored",
+ "Started",
+ "Finished",
+ "Notes",
+ "Model",
+ "Machine",
+ "Hostname",
+ "Version",
+ "Series",
+ "CACert",
+ "CAPrivateKey"
+ ]
+ },
+ "BackupsRemoveArgs": {
+ "type": "object",
+ "properties": {
+ "ID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ID"
+ ]
+ },
+ "Number": {
+ "type": "object",
+ "properties": {
+ "Build": {
+ "type": "integer"
+ },
+ "Major": {
+ "type": "integer"
+ },
+ "Minor": {
+ "type": "integer"
+ },
+ "Patch": {
+ "type": "integer"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Major",
+ "Minor",
+ "Tag",
+ "Patch",
+ "Build"
+ ]
+ },
+ "RestoreArgs": {
+ "type": "object",
+ "properties": {
+ "BackupId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "BackupId"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Block",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "List": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BlockResults"
+ }
+ }
+ },
+ "SwitchBlockOff": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BlockSwitchParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "SwitchBlockOn": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/BlockSwitchParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Block": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "id",
+ "tag",
+ "type"
+ ]
+ },
+ "BlockResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/Block"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "BlockResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BlockResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "BlockSwitchParams": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "type"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "CharmRevisionUpdater",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "UpdateLatestRevisions": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Charms",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "CharmInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CharmInfo"
+ },
+ "Result": {
+ "$ref": "#/definitions/CharmInfo"
+ }
+ }
+ },
+ "IsMetered": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CharmInfo"
+ },
+ "Result": {
+ "$ref": "#/definitions/IsMeteredResult"
+ }
+ }
+ },
+ "List": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CharmsList"
+ },
+ "Result": {
+ "$ref": "#/definitions/CharmsListResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CharmInfo": {
+ "type": "object",
+ "properties": {
+ "CharmURL": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CharmURL"
+ ]
+ },
+ "CharmsList": {
+ "type": "object",
+ "properties": {
+ "Names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Names"
+ ]
+ },
+ "CharmsListResult": {
+ "type": "object",
+ "properties": {
+ "CharmURLs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CharmURLs"
+ ]
+ },
+ "IsMeteredResult": {
+ "type": "object",
+ "properties": {
+ "Metered": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Metered"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Cleaner",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Cleanup": {
+ "type": "object"
+ },
+ "WatchCleanups": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Client",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "APIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/APIHostPortsResult"
+ }
+ }
+ },
+ "AbortCurrentUpgrade": {
+ "type": "object"
+ },
+ "AddCharm": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddCharm"
+ }
+ }
+ },
+ "AddCharmWithAuthorization": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddCharmWithAuthorization"
+ }
+ }
+ },
+ "AddMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddMachines"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddMachinesResults"
+ }
+ }
+ },
+ "AddMachinesV2": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddMachines"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddMachinesResults"
+ }
+ }
+ },
+ "AgentVersion": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/AgentVersionResult"
+ }
+ }
+ },
+ "CharmInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CharmInfo"
+ },
+ "Result": {
+ "$ref": "#/definitions/CharmInfo"
+ }
+ }
+ },
+ "DestroyMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/DestroyMachines"
+ }
+ }
+ },
+ "DestroyModel": {
+ "type": "object"
+ },
+ "FindTools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FindToolsParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/FindToolsResult"
+ }
+ }
+ },
+ "FullStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StatusParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/FullStatus"
+ }
+ }
+ },
+ "GetBundleChanges": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/GetBundleChangesParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/GetBundleChangesResults"
+ }
+ }
+ },
+ "GetModelConstraints": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/GetConstraintsResults"
+ }
+ }
+ },
+ "InjectMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddMachines"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddMachinesResults"
+ }
+ }
+ },
+ "ModelGet": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResults"
+ }
+ }
+ },
+ "ModelInfo": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelInfo"
+ }
+ }
+ },
+ "ModelSet": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelSet"
+ }
+ }
+ },
+ "ModelUnset": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelUnset"
+ }
+ }
+ },
+ "ModelUserInfo": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelUserInfoResults"
+ }
+ }
+ },
+ "PrivateAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/PrivateAddress"
+ },
+ "Result": {
+ "$ref": "#/definitions/PrivateAddressResults"
+ }
+ }
+ },
+ "ProvisioningScript": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ProvisioningScriptParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ProvisioningScriptResult"
+ }
+ }
+ },
+ "PublicAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/PublicAddress"
+ },
+ "Result": {
+ "$ref": "#/definitions/PublicAddressResults"
+ }
+ }
+ },
+ "ResolveCharms": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ResolveCharms"
+ },
+ "Result": {
+ "$ref": "#/definitions/ResolveCharmResults"
+ }
+ }
+ },
+ "Resolved": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Resolved"
+ }
+ }
+ },
+ "RetryProvisioning": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetModelAgentVersion": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetModelAgentVersion"
+ }
+ }
+ },
+ "SetModelConstraints": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetConstraints"
+ }
+ }
+ },
+ "StatusHistory": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StatusHistoryRequests"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusHistoryResults"
+ }
+ }
+ },
+ "WatchAll": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/AllWatcherId"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIHostPortsResult": {
+ "type": "object",
+ "properties": {
+ "Servers": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostPort"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Servers"
+ ]
+ },
+ "AddCharm": {
+ "type": "object",
+ "properties": {
+ "Channel": {
+ "type": "string"
+ },
+ "URL": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "URL",
+ "Channel"
+ ]
+ },
+ "AddCharmWithAuthorization": {
+ "type": "object",
+ "properties": {
+ "Channel": {
+ "type": "string"
+ },
+ "CharmStoreMacaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "URL": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "URL",
+ "Channel",
+ "CharmStoreMacaroon"
+ ]
+ },
+ "AddMachineParams": {
+ "type": "object",
+ "properties": {
+ "Addrs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Address"
+ }
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "ContainerType": {
+ "type": "string"
+ },
+ "Disks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Constraints"
+ }
+ },
+ "HardwareCharacteristics": {
+ "$ref": "#/definitions/HardwareCharacteristics"
+ },
+ "InstanceId": {
+ "type": "string"
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Nonce": {
+ "type": "string"
+ },
+ "ParentId": {
+ "type": "string"
+ },
+ "Placement": {
+ "$ref": "#/definitions/Placement"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Series",
+ "Constraints",
+ "Jobs",
+ "Disks",
+ "Placement",
+ "ParentId",
+ "ContainerType",
+ "InstanceId",
+ "Nonce",
+ "HardwareCharacteristics",
+ "Addrs"
+ ]
+ },
+ "AddMachines": {
+ "type": "object",
+ "properties": {
+ "MachineParams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddMachineParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineParams"
+ ]
+ },
+ "AddMachinesResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Machine": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Machine",
+ "Error"
+ ]
+ },
+ "AddMachinesResults": {
+ "type": "object",
+ "properties": {
+ "Machines": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddMachinesResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Machines"
+ ]
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "AgentVersionResult": {
+ "type": "object",
+ "properties": {
+ "Version": {
+ "$ref": "#/definitions/Number"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version"
+ ]
+ },
+ "AllWatcherId": {
+ "type": "object",
+ "properties": {
+ "AllWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "AllWatcherId"
+ ]
+ },
+ "ApplicationStatus": {
+ "type": "object",
+ "properties": {
+ "CanUpgradeTo": {
+ "type": "string"
+ },
+ "Charm": {
+ "type": "string"
+ },
+ "Err": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "Exposed": {
+ "type": "boolean"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "MeterStatuses": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/MeterStatus"
+ }
+ }
+ },
+ "Relations": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Status": {
+ "$ref": "#/definitions/DetailedStatus"
+ },
+ "SubordinateTo": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Units": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/UnitStatus"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Err",
+ "Charm",
+ "Exposed",
+ "Life",
+ "Relations",
+ "CanUpgradeTo",
+ "SubordinateTo",
+ "Units",
+ "MeterStatuses",
+ "Status"
+ ]
+ },
+ "Binary": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "Number": {
+ "$ref": "#/definitions/Number"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Number",
+ "Series",
+ "Arch"
+ ]
+ },
+ "BundleChangesChange": {
+ "type": "object",
+ "properties": {
+ "args": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ },
+ "id": {
+ "type": "string"
+ },
+ "method": {
+ "type": "string"
+ },
+ "requires": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "id",
+ "method",
+ "args",
+ "requires"
+ ]
+ },
+ "CharmInfo": {
+ "type": "object",
+ "properties": {
+ "CharmURL": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CharmURL"
+ ]
+ },
+ "Constraints": {
+ "type": "object",
+ "properties": {
+ "Count": {
+ "type": "integer"
+ },
+ "Pool": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Pool",
+ "Size",
+ "Count"
+ ]
+ },
+ "DestroyMachines": {
+ "type": "object",
+ "properties": {
+ "Force": {
+ "type": "boolean"
+ },
+ "MachineNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineNames",
+ "Force"
+ ]
+ },
+ "DetailedStatus": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Err": {
+ "type": "object",
+ "additionalProperties": true
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Kind": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Version": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Status",
+ "Info",
+ "Data",
+ "Since",
+ "Kind",
+ "Version",
+ "Life",
+ "Err"
+ ]
+ },
+ "EndpointStatus": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "Role": {
+ "type": "string"
+ },
+ "Subordinate": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Name",
+ "Role",
+ "Subordinate"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatus": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "FindToolsParams": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "MajorVersion": {
+ "type": "integer"
+ },
+ "MinorVersion": {
+ "type": "integer"
+ },
+ "Number": {
+ "$ref": "#/definitions/Number"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Number",
+ "MajorVersion",
+ "MinorVersion",
+ "Arch",
+ "Series"
+ ]
+ },
+ "FindToolsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "List": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tools"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "List",
+ "Error"
+ ]
+ },
+ "FullStatus": {
+ "type": "object",
+ "properties": {
+ "Applications": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/ApplicationStatus"
+ }
+ }
+ },
+ "AvailableVersion": {
+ "type": "string"
+ },
+ "Machines": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/MachineStatus"
+ }
+ }
+ },
+ "ModelName": {
+ "type": "string"
+ },
+ "Relations": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationStatus"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ModelName",
+ "AvailableVersion",
+ "Machines",
+ "Applications",
+ "Relations"
+ ]
+ },
+ "GetBundleChangesParams": {
+ "type": "object",
+ "properties": {
+ "yaml": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "yaml"
+ ]
+ },
+ "GetBundleChangesResults": {
+ "type": "object",
+ "properties": {
+ "changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BundleChangesChange"
+ }
+ },
+ "errors": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "GetConstraintsResults": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Constraints"
+ ]
+ },
+ "HardwareCharacteristics": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "AvailabilityZone": {
+ "type": "string"
+ },
+ "CpuCores": {
+ "type": "integer"
+ },
+ "CpuPower": {
+ "type": "integer"
+ },
+ "Mem": {
+ "type": "integer"
+ },
+ "RootDisk": {
+ "type": "integer"
+ },
+ "Tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "History": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Statuses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DetailedStatus"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Statuses"
+ ]
+ },
+ "HostPort": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "$ref": "#/definitions/Address"
+ },
+ "Port": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Address",
+ "Port"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineStatus": {
+ "type": "object",
+ "properties": {
+ "AgentStatus": {
+ "$ref": "#/definitions/DetailedStatus"
+ },
+ "Containers": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/MachineStatus"
+ }
+ }
+ },
+ "DNSName": {
+ "type": "string"
+ },
+ "Hardware": {
+ "type": "string"
+ },
+ "HasVote": {
+ "type": "boolean"
+ },
+ "Id": {
+ "type": "string"
+ },
+ "InstanceId": {
+ "type": "string"
+ },
+ "InstanceStatus": {
+ "$ref": "#/definitions/DetailedStatus"
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Series": {
+ "type": "string"
+ },
+ "WantsVote": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "AgentStatus",
+ "InstanceStatus",
+ "DNSName",
+ "InstanceId",
+ "Series",
+ "Id",
+ "Containers",
+ "Hardware",
+ "Jobs",
+ "HasVote",
+ "WantsVote"
+ ]
+ },
+ "MeterStatus": {
+ "type": "object",
+ "properties": {
+ "Color": {
+ "type": "string"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Color",
+ "Message"
+ ]
+ },
+ "ModelConfigResults": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ModelInfo": {
+ "type": "object",
+ "properties": {
+ "Cloud": {
+ "type": "string"
+ },
+ "DefaultSeries": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "OwnerTag": {
+ "type": "string"
+ },
+ "ProviderType": {
+ "type": "string"
+ },
+ "ServerUUID": {
+ "type": "string"
+ },
+ "Status": {
+ "$ref": "#/definitions/EntityStatus"
+ },
+ "UUID": {
+ "type": "string"
+ },
+ "Users": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelUserInfo"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "UUID",
+ "ServerUUID",
+ "ProviderType",
+ "DefaultSeries",
+ "Cloud",
+ "OwnerTag",
+ "Life",
+ "Status",
+ "Users"
+ ]
+ },
+ "ModelSet": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ModelUnset": {
+ "type": "object",
+ "properties": {
+ "Keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Keys"
+ ]
+ },
+ "ModelUserInfo": {
+ "type": "object",
+ "properties": {
+ "access": {
+ "type": "string"
+ },
+ "displayname": {
+ "type": "string"
+ },
+ "lastconnection": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "user": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "user",
+ "displayname",
+ "lastconnection",
+ "access"
+ ]
+ },
+ "ModelUserInfoResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/ModelUserInfo"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ModelUserInfoResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelUserInfoResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "Number": {
+ "type": "object",
+ "properties": {
+ "Build": {
+ "type": "integer"
+ },
+ "Major": {
+ "type": "integer"
+ },
+ "Minor": {
+ "type": "integer"
+ },
+ "Patch": {
+ "type": "integer"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Major",
+ "Minor",
+ "Tag",
+ "Patch",
+ "Build"
+ ]
+ },
+ "Placement": {
+ "type": "object",
+ "properties": {
+ "Directive": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Scope",
+ "Directive"
+ ]
+ },
+ "PrivateAddress": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Target"
+ ]
+ },
+ "PrivateAddressResults": {
+ "type": "object",
+ "properties": {
+ "PrivateAddress": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "PrivateAddress"
+ ]
+ },
+ "ProvisioningScriptParams": {
+ "type": "object",
+ "properties": {
+ "DataDir": {
+ "type": "string"
+ },
+ "DisablePackageCommands": {
+ "type": "boolean"
+ },
+ "MachineId": {
+ "type": "string"
+ },
+ "Nonce": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineId",
+ "Nonce",
+ "DataDir",
+ "DisablePackageCommands"
+ ]
+ },
+ "ProvisioningScriptResult": {
+ "type": "object",
+ "properties": {
+ "Script": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Script"
+ ]
+ },
+ "PublicAddress": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Target"
+ ]
+ },
+ "PublicAddressResults": {
+ "type": "object",
+ "properties": {
+ "PublicAddress": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "PublicAddress"
+ ]
+ },
+ "RelationStatus": {
+ "type": "object",
+ "properties": {
+ "Endpoints": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EndpointStatus"
+ }
+ },
+ "Id": {
+ "type": "integer"
+ },
+ "Interface": {
+ "type": "string"
+ },
+ "Key": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Id",
+ "Key",
+ "Interface",
+ "Scope",
+ "Endpoints"
+ ]
+ },
+ "ResolveCharmResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "type": "string"
+ },
+ "URL": {
+ "$ref": "#/definitions/URL"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ResolveCharmResults": {
+ "type": "object",
+ "properties": {
+ "URLs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResolveCharmResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "URLs"
+ ]
+ },
+ "ResolveCharms": {
+ "type": "object",
+ "properties": {
+ "References": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/URL"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "References"
+ ]
+ },
+ "Resolved": {
+ "type": "object",
+ "properties": {
+ "Retry": {
+ "type": "boolean"
+ },
+ "UnitName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UnitName",
+ "Retry"
+ ]
+ },
+ "SetConstraints": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Constraints"
+ ]
+ },
+ "SetModelAgentVersion": {
+ "type": "object",
+ "properties": {
+ "Version": {
+ "$ref": "#/definitions/Number"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version"
+ ]
+ },
+ "StatusHistoryFilter": {
+ "type": "object",
+ "properties": {
+ "Date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Delta": {
+ "type": "integer"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Size",
+ "Date",
+ "Delta"
+ ]
+ },
+ "StatusHistoryRequest": {
+ "type": "object",
+ "properties": {
+ "Filter": {
+ "$ref": "#/definitions/StatusHistoryFilter"
+ },
+ "HistoryKind": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "HistoryKind",
+ "Size",
+ "Filter",
+ "Tag"
+ ]
+ },
+ "StatusHistoryRequests": {
+ "type": "object",
+ "properties": {
+ "Requests": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StatusHistoryRequest"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Requests"
+ ]
+ },
+ "StatusHistoryResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "History": {
+ "$ref": "#/definitions/History"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "History"
+ ]
+ },
+ "StatusHistoryResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StatusHistoryResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StatusParams": {
+ "type": "object",
+ "properties": {
+ "Patterns": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Patterns"
+ ]
+ },
+ "Tools": {
+ "type": "object",
+ "properties": {
+ "sha256": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string"
+ },
+ "version": {
+ "$ref": "#/definitions/Binary"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "version",
+ "url",
+ "size"
+ ]
+ },
+ "URL": {
+ "type": "object",
+ "properties": {
+ "Channel": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "Revision": {
+ "type": "integer"
+ },
+ "Schema": {
+ "type": "string"
+ },
+ "Series": {
+ "type": "string"
+ },
+ "User": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Schema",
+ "User",
+ "Name",
+ "Revision",
+ "Series",
+ "Channel"
+ ]
+ },
+ "UnitStatus": {
+ "type": "object",
+ "properties": {
+ "AgentStatus": {
+ "$ref": "#/definitions/DetailedStatus"
+ },
+ "Charm": {
+ "type": "string"
+ },
+ "Machine": {
+ "type": "string"
+ },
+ "OpenedPorts": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "PublicAddress": {
+ "type": "string"
+ },
+ "Subordinates": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/UnitStatus"
+ }
+ }
+ },
+ "WorkloadStatus": {
+ "$ref": "#/definitions/DetailedStatus"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "AgentStatus",
+ "WorkloadStatus",
+ "Machine",
+ "OpenedPorts",
+ "PublicAddress",
+ "Charm",
+ "Subordinates"
+ ]
+ },
+ "Value": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "container": {
+ "type": "string"
+ },
+ "cpu-cores": {
+ "type": "integer"
+ },
+ "cpu-power": {
+ "type": "integer"
+ },
+ "instance-type": {
+ "type": "string"
+ },
+ "mem": {
+ "type": "integer"
+ },
+ "root-disk": {
+ "type": "integer"
+ },
+ "spaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virt-type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Controller",
+ "Version": 3,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AllModels": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/UserModelList"
+ }
+ }
+ },
+ "DestroyController": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/DestroyControllerArgs"
+ }
+ }
+ },
+ "InitiateModelMigration": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/InitiateModelMigrationArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/InitiateModelMigrationResults"
+ }
+ }
+ },
+ "ListBlockedModels": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelBlockInfoList"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResults"
+ }
+ }
+ },
+ "ModelStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ModelStatusResults"
+ }
+ }
+ },
+ "RemoveBlocks": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RemoveBlocksArgs"
+ }
+ }
+ },
+ "WatchAllModels": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/AllWatcherId"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AllWatcherId": {
+ "type": "object",
+ "properties": {
+ "AllWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "AllWatcherId"
+ ]
+ },
+ "DestroyControllerArgs": {
+ "type": "object",
+ "properties": {
+ "destroy-models": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "destroy-models"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "InitiateModelMigrationArgs": {
+ "type": "object",
+ "properties": {
+ "specs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelMigrationSpec"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "specs"
+ ]
+ },
+ "InitiateModelMigrationResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "id": {
+ "type": "string"
+ },
+ "model-tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "model-tag",
+ "error",
+ "id"
+ ]
+ },
+ "InitiateModelMigrationResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InitiateModelMigrationResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Model": {
+ "type": "object",
+ "properties": {
+ "Name": {
+ "type": "string"
+ },
+ "OwnerTag": {
+ "type": "string"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "UUID",
+ "OwnerTag"
+ ]
+ },
+ "ModelBlockInfo": {
+ "type": "object",
+ "properties": {
+ "blocks": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "model-uuid": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "owner-tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "name",
+ "model-uuid",
+ "owner-tag",
+ "blocks"
+ ]
+ },
+ "ModelBlockInfoList": {
+ "type": "object",
+ "properties": {
+ "models": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelBlockInfo"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ModelConfigResults": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ModelMigrationSpec": {
+ "type": "object",
+ "properties": {
+ "model-tag": {
+ "type": "string"
+ },
+ "target-info": {
+ "$ref": "#/definitions/ModelMigrationTargetInfo"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "model-tag",
+ "target-info"
+ ]
+ },
+ "ModelMigrationTargetInfo": {
+ "type": "object",
+ "properties": {
+ "addrs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "auth-tag": {
+ "type": "string"
+ },
+ "ca-cert": {
+ "type": "string"
+ },
+ "controller-tag": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "controller-tag",
+ "addrs",
+ "ca-cert",
+ "auth-tag",
+ "password"
+ ]
+ },
+ "ModelStatus": {
+ "type": "object",
+ "properties": {
+ "application-count": {
+ "type": "integer"
+ },
+ "hosted-machine-count": {
+ "type": "integer"
+ },
+ "life": {
+ "type": "string"
+ },
+ "model-tag": {
+ "type": "string"
+ },
+ "owner-tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "model-tag",
+ "life",
+ "hosted-machine-count",
+ "application-count",
+ "owner-tag"
+ ]
+ },
+ "ModelStatusResults": {
+ "type": "object",
+ "properties": {
+ "models": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelStatus"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "models"
+ ]
+ },
+ "RemoveBlocksArgs": {
+ "type": "object",
+ "properties": {
+ "all": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "all"
+ ]
+ },
+ "UserModel": {
+ "type": "object",
+ "properties": {
+ "LastConnection": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Model": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Model",
+ "LastConnection"
+ ]
+ },
+ "UserModelList": {
+ "type": "object",
+ "properties": {
+ "UserModels": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserModel"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UserModels"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Deployer",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "APIAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "APIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/APIHostPortsResult"
+ }
+ }
+ },
+ "CACert": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BytesResult"
+ }
+ }
+ },
+ "ConnectionInfo": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/DeployerConnectionValues"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "ModelUUID": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "Remove": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetPasswords": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntityPasswords"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "StateAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "WatchAPIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIHostPortsResult": {
+ "type": "object",
+ "properties": {
+ "Servers": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostPort"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Servers"
+ ]
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "BytesResult": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Result"
+ ]
+ },
+ "DeployerConnectionValues": {
+ "type": "object",
+ "properties": {
+ "APIAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "StateAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StateAddresses",
+ "APIAddresses"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityPassword": {
+ "type": "object",
+ "properties": {
+ "Password": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Password"
+ ]
+ },
+ "EntityPasswords": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityPassword"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changes"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "HostPort": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "$ref": "#/definitions/Address"
+ },
+ "Port": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Address",
+ "Port"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "DiscoverSpaces",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddSubnets": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddSubnetsParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "CreateSpaces": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CreateSpacesParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ListSpaces": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/DiscoverSpacesResults"
+ }
+ }
+ },
+ "ListSubnets": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SubnetsFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/ListSubnetsResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AddSubnetParams": {
+ "type": "object",
+ "properties": {
+ "SpaceTag": {
+ "type": "string"
+ },
+ "SubnetProviderId": {
+ "type": "string"
+ },
+ "SubnetTag": {
+ "type": "string"
+ },
+ "Zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "SpaceTag"
+ ]
+ },
+ "AddSubnetsParams": {
+ "type": "object",
+ "properties": {
+ "Subnets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddSubnetParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Subnets"
+ ]
+ },
+ "CreateSpaceParams": {
+ "type": "object",
+ "properties": {
+ "ProviderId": {
+ "type": "string"
+ },
+ "Public": {
+ "type": "boolean"
+ },
+ "SpaceTag": {
+ "type": "string"
+ },
+ "SubnetTags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "SubnetTags",
+ "SpaceTag",
+ "Public"
+ ]
+ },
+ "CreateSpacesParams": {
+ "type": "object",
+ "properties": {
+ "Spaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CreateSpaceParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Spaces"
+ ]
+ },
+ "DiscoverSpacesResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProviderSpace"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ListSubnetsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ProviderSpace": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "Subnets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "ProviderId",
+ "Subnets"
+ ]
+ },
+ "Subnet": {
+ "type": "object",
+ "properties": {
+ "CIDR": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "SpaceTag": {
+ "type": "string"
+ },
+ "StaticRangeHighIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "StaticRangeLowIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "Status": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ },
+ "Zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CIDR",
+ "VLANTag",
+ "Life",
+ "SpaceTag",
+ "Zones"
+ ]
+ },
+ "SubnetsFilters": {
+ "type": "object",
+ "properties": {
+ "SpaceTag": {
+ "type": "string"
+ },
+ "Zone": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "DiskManager",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "SetMachineBlockDevices": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetMachineBlockDevices"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BlockDevice": {
+ "type": "object",
+ "properties": {
+ "BusAddress": {
+ "type": "string"
+ },
+ "DeviceLinks": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DeviceName": {
+ "type": "string"
+ },
+ "FilesystemType": {
+ "type": "string"
+ },
+ "HardwareId": {
+ "type": "string"
+ },
+ "InUse": {
+ "type": "boolean"
+ },
+ "Label": {
+ "type": "string"
+ },
+ "MountPoint": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "DeviceName",
+ "DeviceLinks",
+ "Label",
+ "UUID",
+ "HardwareId",
+ "BusAddress",
+ "Size",
+ "FilesystemType",
+ "InUse",
+ "MountPoint"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineBlockDevices": {
+ "type": "object",
+ "properties": {
+ "blockdevices": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BlockDevice"
+ }
+ },
+ "machine": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "machine"
+ ]
+ },
+ "SetMachineBlockDevices": {
+ "type": "object",
+ "properties": {
+ "machineblockdevices": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineBlockDevices"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "machineblockdevices"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "EntityWatcher",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/EntitiesWatchResult"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "EntitiesWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "EntityWatcherId": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "EntityWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "FilesystemAttachmentsWatcher",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/MachineStorageIdsWatchResult"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineStorageId": {
+ "type": "object",
+ "properties": {
+ "attachmenttag": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "machinetag",
+ "attachmenttag"
+ ]
+ },
+ "MachineStorageIdsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineStorageId"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "MachineStorageIdsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineStorageIdsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Firewaller",
+ "Version": 3,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "GetAssignedMachine": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "GetExposed": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/BoolResults"
+ }
+ }
+ },
+ "GetMachineActiveSubnets": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsResults"
+ }
+ }
+ },
+ "GetMachinePorts": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachinePortsParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachinePortsResults"
+ }
+ }
+ },
+ "InstanceId": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchModelMachines": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "WatchOpenedPorts": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BoolResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "BoolResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BoolResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachinePortRange": {
+ "type": "object",
+ "properties": {
+ "PortRange": {
+ "$ref": "#/definitions/PortRange"
+ },
+ "RelationTag": {
+ "type": "string"
+ },
+ "UnitTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UnitTag",
+ "RelationTag",
+ "PortRange"
+ ]
+ },
+ "MachinePorts": {
+ "type": "object",
+ "properties": {
+ "MachineTag": {
+ "type": "string"
+ },
+ "SubnetTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineTag",
+ "SubnetTag"
+ ]
+ },
+ "MachinePortsParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachinePorts"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Params"
+ ]
+ },
+ "MachinePortsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachinePortRange"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Ports"
+ ]
+ },
+ "MachinePortsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachinePortsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "PortRange": {
+ "type": "object",
+ "properties": {
+ "FromPort": {
+ "type": "integer"
+ },
+ "Protocol": {
+ "type": "string"
+ },
+ "ToPort": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "FromPort",
+ "ToPort",
+ "Protocol"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "HighAvailability",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "EnableHA": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ControllersSpecs"
+ },
+ "Result": {
+ "$ref": "#/definitions/ControllersChangeResults"
+ }
+ }
+ },
+ "ResumeHAReplicationAfterUpgrade": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ResumeReplicationParams"
+ }
+ }
+ },
+ "StopHAReplicationForUpgrade": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/UpgradeMongoParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/MongoUpgradeResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "SpaceProviderId": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope",
+ "SpaceName",
+ "SpaceProviderId"
+ ]
+ },
+ "ControllersChangeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "$ref": "#/definitions/ControllersChanges"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Result",
+ "Error"
+ ]
+ },
+ "ControllersChangeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ControllersChangeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ControllersChanges": {
+ "type": "object",
+ "properties": {
+ "added": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "converted": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "demoted": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "maintained": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "promoted": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "removed": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ControllersSpec": {
+ "type": "object",
+ "properties": {
+ "ModelTag": {
+ "type": "string"
+ },
+ "constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "num-controllers": {
+ "type": "integer"
+ },
+ "placement": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ModelTag",
+ "num-controllers"
+ ]
+ },
+ "ControllersSpecs": {
+ "type": "object",
+ "properties": {
+ "Specs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ControllersSpec"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Specs"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HAMember": {
+ "type": "object",
+ "properties": {
+ "PublicAddress": {
+ "$ref": "#/definitions/Address"
+ },
+ "Series": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "PublicAddress",
+ "Series"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Member": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "type": "string"
+ },
+ "Arbiter": {
+ "type": "boolean"
+ },
+ "BuildIndexes": {
+ "type": "boolean"
+ },
+ "Hidden": {
+ "type": "boolean"
+ },
+ "Id": {
+ "type": "integer"
+ },
+ "Priority": {
+ "type": "number"
+ },
+ "SlaveDelay": {
+ "type": "integer"
+ },
+ "Tags": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "Votes": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Id",
+ "Address",
+ "Arbiter",
+ "BuildIndexes",
+ "Hidden",
+ "Priority",
+ "Tags",
+ "SlaveDelay",
+ "Votes"
+ ]
+ },
+ "MongoUpgradeResults": {
+ "type": "object",
+ "properties": {
+ "Master": {
+ "$ref": "#/definitions/HAMember"
+ },
+ "Members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HAMember"
+ }
+ },
+ "RsMembers": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Member"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RsMembers",
+ "Master",
+ "Members"
+ ]
+ },
+ "ResumeReplicationParams": {
+ "type": "object",
+ "properties": {
+ "Members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Member"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Members"
+ ]
+ },
+ "UpgradeMongoParams": {
+ "type": "object",
+ "properties": {
+ "Target": {
+ "$ref": "#/definitions/Version"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Target"
+ ]
+ },
+ "Value": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "container": {
+ "type": "string"
+ },
+ "cpu-cores": {
+ "type": "integer"
+ },
+ "cpu-power": {
+ "type": "integer"
+ },
+ "instance-type": {
+ "type": "string"
+ },
+ "mem": {
+ "type": "integer"
+ },
+ "root-disk": {
+ "type": "integer"
+ },
+ "spaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virt-type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Version": {
+ "type": "object",
+ "properties": {
+ "Major": {
+ "type": "integer"
+ },
+ "Minor": {
+ "type": "integer"
+ },
+ "Patch": {
+ "type": "string"
+ },
+ "StorageEngine": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Major",
+ "Minor",
+ "Patch",
+ "StorageEngine"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "HostKeyReporter",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ReportKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SSHHostKeySet"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "SSHHostKeySet": {
+ "type": "object",
+ "properties": {
+ "entity-keys": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SSHHostKeys"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "entity-keys"
+ ]
+ },
+ "SSHHostKeys": {
+ "type": "object",
+ "properties": {
+ "public-keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "tag",
+ "public-keys"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "ImageManager",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "DeleteImages": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ImageFilterParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ListImages": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ImageFilterParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ListImageResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ImageFilterParams": {
+ "type": "object",
+ "properties": {
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageSpec"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "images"
+ ]
+ },
+ "ImageMetadata": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "series": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "kind",
+ "arch",
+ "series",
+ "url",
+ "created"
+ ]
+ },
+ "ImageSpec": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "kind",
+ "arch",
+ "series"
+ ]
+ },
+ "ListImageResult": {
+ "type": "object",
+ "properties": {
+ "result": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ImageMetadata"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "ImageMetadata",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Delete": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MetadataImageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "List": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ImageMetadataFilter"
+ },
+ "Result": {
+ "$ref": "#/definitions/ListCloudImageMetadataResult"
+ }
+ }
+ },
+ "Save": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MetadataSaveParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "UpdateFromPublishedImages": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "CloudImageMetadata": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "image_id": {
+ "type": "string"
+ },
+ "priority": {
+ "type": "integer"
+ },
+ "region": {
+ "type": "string"
+ },
+ "root_storage_size": {
+ "type": "integer"
+ },
+ "root_storage_type": {
+ "type": "string"
+ },
+ "series": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "stream": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "virt_type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "image_id",
+ "region",
+ "version",
+ "series",
+ "arch",
+ "source",
+ "priority"
+ ]
+ },
+ "CloudImageMetadataList": {
+ "type": "object",
+ "properties": {
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudImageMetadata"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ImageMetadataFilter": {
+ "type": "object",
+ "properties": {
+ "arches": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "region": {
+ "type": "string"
+ },
+ "root-storage-type": {
+ "type": "string"
+ },
+ "series": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "stream": {
+ "type": "string"
+ },
+ "virt_type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ListCloudImageMetadataResult": {
+ "type": "object",
+ "properties": {
+ "result": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudImageMetadata"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MetadataImageIds": {
+ "type": "object",
+ "properties": {
+ "image_ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "image_ids"
+ ]
+ },
+ "MetadataSaveParams": {
+ "type": "object",
+ "properties": {
+ "metadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudImageMetadataList"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "InstancePoller",
+ "Version": 3,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AreManuallyProvisioned": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/BoolResults"
+ }
+ }
+ },
+ "InstanceId": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "InstanceStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "ProviderAddresses": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachineAddressesResults"
+ }
+ }
+ },
+ "SetInstanceStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetProviderAddresses": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetMachinesAddresses"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Status": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchModelMachines": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "BoolResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "BoolResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BoolResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineAddresses": {
+ "type": "object",
+ "properties": {
+ "Addresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Address"
+ }
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Addresses"
+ ]
+ },
+ "MachineAddressesResult": {
+ "type": "object",
+ "properties": {
+ "Addresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Address"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Addresses"
+ ]
+ },
+ "MachineAddressesResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineAddressesResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "SetMachinesAddresses": {
+ "type": "object",
+ "properties": {
+ "MachineAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineAddresses"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineAddresses"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "StatusResult": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Id": {
+ "type": "string"
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Id",
+ "Life",
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "StatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "KeyManager",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModifyUserSSHKeys"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "DeleteKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModifyUserSSHKeys"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ImportKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModifyUserSSHKeys"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ListKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ListSSHKeys"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ListSSHKeys": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Mode": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities",
+ "Mode"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "ModifyUserSSHKeys": {
+ "type": "object",
+ "properties": {
+ "Keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "User": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "User",
+ "Keys"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "KeyUpdater",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AuthorisedKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsResults"
+ }
+ }
+ },
+ "WatchAuthorisedKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "LeadershipService",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "BlockUntilLeadershipReleased": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ApplicationTag"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "ClaimLeadership": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ClaimLeadershipBulkParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ClaimLeadershipBulkResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ApplicationTag": {
+ "type": "object",
+ "properties": {
+ "Name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name"
+ ]
+ },
+ "ClaimLeadershipBulkParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ClaimLeadershipParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Params"
+ ]
+ },
+ "ClaimLeadershipBulkResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ClaimLeadershipParams": {
+ "type": "object",
+ "properties": {
+ "ApplicationTag": {
+ "type": "string"
+ },
+ "DurationSeconds": {
+ "type": "number"
+ },
+ "UnitTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationTag",
+ "UnitTag",
+ "DurationSeconds"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "LifeFlag",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Logger",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "LoggingConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "WatchLoggingConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MachineActions",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Actions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "BeginActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "FinishActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ActionExecutionResults"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "RunningActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionsByReceivers"
+ }
+ }
+ },
+ "WatchActionNotifications": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Action": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "parameters": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "receiver": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "tag",
+ "receiver",
+ "name"
+ ]
+ },
+ "ActionExecutionResult": {
+ "type": "object",
+ "properties": {
+ "actiontag": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "results": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "actiontag",
+ "status"
+ ]
+ },
+ "ActionExecutionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionExecutionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionResult": {
+ "type": "object",
+ "properties": {
+ "action": {
+ "$ref": "#/definitions/Action"
+ },
+ "completed": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "enqueued": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "message": {
+ "type": "string"
+ },
+ "output": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionsByReceiver": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "receiver": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionsByReceivers": {
+ "type": "object",
+ "properties": {
+ "actions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionsByReceiver"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MachineManager",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddMachines"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddMachinesResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AddMachineParams": {
+ "type": "object",
+ "properties": {
+ "Addrs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Address"
+ }
+ },
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "ContainerType": {
+ "type": "string"
+ },
+ "Disks": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Constraints"
+ }
+ },
+ "HardwareCharacteristics": {
+ "$ref": "#/definitions/HardwareCharacteristics"
+ },
+ "InstanceId": {
+ "type": "string"
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Nonce": {
+ "type": "string"
+ },
+ "ParentId": {
+ "type": "string"
+ },
+ "Placement": {
+ "$ref": "#/definitions/Placement"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Series",
+ "Constraints",
+ "Jobs",
+ "Disks",
+ "Placement",
+ "ParentId",
+ "ContainerType",
+ "InstanceId",
+ "Nonce",
+ "HardwareCharacteristics",
+ "Addrs"
+ ]
+ },
+ "AddMachines": {
+ "type": "object",
+ "properties": {
+ "MachineParams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddMachineParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineParams"
+ ]
+ },
+ "AddMachinesResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Machine": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Machine",
+ "Error"
+ ]
+ },
+ "AddMachinesResults": {
+ "type": "object",
+ "properties": {
+ "Machines": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddMachinesResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Machines"
+ ]
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "Constraints": {
+ "type": "object",
+ "properties": {
+ "Count": {
+ "type": "integer"
+ },
+ "Pool": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Pool",
+ "Size",
+ "Count"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HardwareCharacteristics": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "AvailabilityZone": {
+ "type": "string"
+ },
+ "CpuCores": {
+ "type": "integer"
+ },
+ "CpuPower": {
+ "type": "integer"
+ },
+ "Mem": {
+ "type": "integer"
+ },
+ "RootDisk": {
+ "type": "integer"
+ },
+ "Tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Placement": {
+ "type": "object",
+ "properties": {
+ "Directive": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Scope",
+ "Directive"
+ ]
+ },
+ "Value": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "container": {
+ "type": "string"
+ },
+ "cpu-cores": {
+ "type": "integer"
+ },
+ "cpu-power": {
+ "type": "integer"
+ },
+ "instance-type": {
+ "type": "string"
+ },
+ "mem": {
+ "type": "integer"
+ },
+ "root-disk": {
+ "type": "integer"
+ },
+ "spaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virt-type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Machiner",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "APIAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "APIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/APIHostPortsResult"
+ }
+ }
+ },
+ "CACert": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BytesResult"
+ }
+ }
+ },
+ "EnsureDead": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Jobs": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/JobsResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "ModelUUID": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "SetMachineAddresses": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetMachinesAddresses"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetObservedNetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetMachineNetworkConfig"
+ }
+ }
+ },
+ "SetProviderNetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "UpdateStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchAPIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIHostPortsResult": {
+ "type": "object",
+ "properties": {
+ "Servers": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostPort"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Servers"
+ ]
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "BytesResult": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Result"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "HostPort": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "$ref": "#/definitions/Address"
+ },
+ "Port": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Address",
+ "Port"
+ ]
+ },
+ "JobsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Jobs",
+ "Error"
+ ]
+ },
+ "JobsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/JobsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineAddresses": {
+ "type": "object",
+ "properties": {
+ "Addresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Address"
+ }
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Addresses"
+ ]
+ },
+ "NetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "type": "string"
+ },
+ "CIDR": {
+ "type": "string"
+ },
+ "ConfigType": {
+ "type": "string"
+ },
+ "DNSSearchDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DNSServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DeviceIndex": {
+ "type": "integer"
+ },
+ "Disabled": {
+ "type": "boolean"
+ },
+ "GatewayAddress": {
+ "type": "string"
+ },
+ "InterfaceName": {
+ "type": "string"
+ },
+ "InterfaceType": {
+ "type": "string"
+ },
+ "MACAddress": {
+ "type": "string"
+ },
+ "MTU": {
+ "type": "integer"
+ },
+ "NoAutoStart": {
+ "type": "boolean"
+ },
+ "ParentInterfaceName": {
+ "type": "string"
+ },
+ "ProviderAddressId": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "ProviderSpaceId": {
+ "type": "string"
+ },
+ "ProviderSubnetId": {
+ "type": "string"
+ },
+ "ProviderVLANId": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "DeviceIndex",
+ "MACAddress",
+ "CIDR",
+ "MTU",
+ "ProviderId",
+ "ProviderSubnetId",
+ "ProviderSpaceId",
+ "ProviderAddressId",
+ "ProviderVLANId",
+ "VLANTag",
+ "InterfaceName",
+ "ParentInterfaceName",
+ "InterfaceType",
+ "Disabled"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "SetMachineNetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkConfig"
+ }
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Config"
+ ]
+ },
+ "SetMachinesAddresses": {
+ "type": "object",
+ "properties": {
+ "MachineAddresses": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineAddresses"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineAddresses"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MeterStatus",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "GetMeterStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MeterStatusResults"
+ }
+ }
+ },
+ "WatchMeterStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MeterStatusResult": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Info": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Code",
+ "Info",
+ "Error"
+ ]
+ },
+ "MeterStatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MeterStatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MetricsAdder",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddMetricBatches": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MetricBatchParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Metric": {
+ "type": "object",
+ "properties": {
+ "Key": {
+ "type": "string"
+ },
+ "Time": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Key",
+ "Value",
+ "Time"
+ ]
+ },
+ "MetricBatch": {
+ "type": "object",
+ "properties": {
+ "CharmURL": {
+ "type": "string"
+ },
+ "Created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Metrics": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Metric"
+ }
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UUID",
+ "CharmURL",
+ "Created",
+ "Metrics"
+ ]
+ },
+ "MetricBatchParam": {
+ "type": "object",
+ "properties": {
+ "Batch": {
+ "$ref": "#/definitions/MetricBatch"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Batch"
+ ]
+ },
+ "MetricBatchParams": {
+ "type": "object",
+ "properties": {
+ "Batches": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricBatchParam"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Batches"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MetricsDebug",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "GetMetrics": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MetricResults"
+ }
+ }
+ },
+ "SetMeterStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MeterStatusParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityMetrics": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "metrics": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MeterStatusParam": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "info": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "tag",
+ "code",
+ "info"
+ ]
+ },
+ "MeterStatusParams": {
+ "type": "object",
+ "properties": {
+ "statues": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MeterStatusParam"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "statues"
+ ]
+ },
+ "MetricResult": {
+ "type": "object",
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "time",
+ "key",
+ "value"
+ ]
+ },
+ "MetricResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityMetrics"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MetricsManager",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "CleanupOldMetrics": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SendMetrics": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MigrationFlag",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Phase": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/PhaseResults"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "PhaseResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "phase": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "phase",
+ "Error"
+ ]
+ },
+ "PhaseResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/PhaseResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MigrationMaster",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Export": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/SerializedModel"
+ }
+ }
+ },
+ "GetMigrationStatus": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/FullMigrationStatus"
+ }
+ }
+ },
+ "SetPhase": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetMigrationPhaseArgs"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FullMigrationStatus": {
+ "type": "object",
+ "properties": {
+ "attempt": {
+ "type": "integer"
+ },
+ "phase": {
+ "type": "string"
+ },
+ "spec": {
+ "$ref": "#/definitions/ModelMigrationSpec"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "spec",
+ "attempt",
+ "phase"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "ModelMigrationSpec": {
+ "type": "object",
+ "properties": {
+ "model-tag": {
+ "type": "string"
+ },
+ "target-info": {
+ "$ref": "#/definitions/ModelMigrationTargetInfo"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "model-tag",
+ "target-info"
+ ]
+ },
+ "ModelMigrationTargetInfo": {
+ "type": "object",
+ "properties": {
+ "addrs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "auth-tag": {
+ "type": "string"
+ },
+ "ca-cert": {
+ "type": "string"
+ },
+ "controller-tag": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "controller-tag",
+ "addrs",
+ "ca-cert",
+ "auth-tag",
+ "password"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "SerializedModel": {
+ "type": "object",
+ "properties": {
+ "bytes": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "bytes"
+ ]
+ },
+ "SetMigrationPhaseArgs": {
+ "type": "object",
+ "properties": {
+ "phase": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "phase"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MigrationMinion",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MigrationStatusWatcher",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/MigrationStatus"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "MigrationStatus": {
+ "type": "object",
+ "properties": {
+ "attempt": {
+ "type": "integer"
+ },
+ "phase": {
+ "type": "string"
+ },
+ "source-api-addrs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source-ca-cert": {
+ "type": "string"
+ },
+ "target-api-addrs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "target-ca-cert": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "attempt",
+ "phase",
+ "source-api-addrs",
+ "source-ca-cert",
+ "target-api-addrs",
+ "target-ca-cert"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "MigrationTarget",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Abort": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelArgs"
+ }
+ }
+ },
+ "Activate": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelArgs"
+ }
+ }
+ },
+ "Import": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SerializedModel"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "ModelArgs": {
+ "type": "object",
+ "properties": {
+ "model-tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "model-tag"
+ ]
+ },
+ "SerializedModel": {
+ "type": "object",
+ "properties": {
+ "bytes": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "bytes"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "ModelManager",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ConfigSkeleton": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelSkeletonConfigArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "CreateModel": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModelCreateArgs"
+ },
+ "Result": {
+ "$ref": "#/definitions/Model"
+ }
+ }
+ },
+ "ListModels": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entity"
+ },
+ "Result": {
+ "$ref": "#/definitions/UserModelList"
+ }
+ }
+ },
+ "ModelInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ModelInfoResults"
+ }
+ }
+ },
+ "ModifyModelAccess": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ModifyModelAccessRequest"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatus": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Model": {
+ "type": "object",
+ "properties": {
+ "Name": {
+ "type": "string"
+ },
+ "OwnerTag": {
+ "type": "string"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "UUID",
+ "OwnerTag"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ModelCreateArgs": {
+ "type": "object",
+ "properties": {
+ "Account": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "OwnerTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "OwnerTag",
+ "Account",
+ "Config"
+ ]
+ },
+ "ModelInfo": {
+ "type": "object",
+ "properties": {
+ "Cloud": {
+ "type": "string"
+ },
+ "DefaultSeries": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "OwnerTag": {
+ "type": "string"
+ },
+ "ProviderType": {
+ "type": "string"
+ },
+ "ServerUUID": {
+ "type": "string"
+ },
+ "Status": {
+ "$ref": "#/definitions/EntityStatus"
+ },
+ "UUID": {
+ "type": "string"
+ },
+ "Users": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelUserInfo"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "UUID",
+ "ServerUUID",
+ "ProviderType",
+ "DefaultSeries",
+ "Cloud",
+ "OwnerTag",
+ "Life",
+ "Status",
+ "Users"
+ ]
+ },
+ "ModelInfoResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/ModelInfo"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ModelInfoResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModelInfoResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "ModelSkeletonConfigArgs": {
+ "type": "object",
+ "properties": {
+ "Provider": {
+ "type": "string"
+ },
+ "Region": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Provider",
+ "Region"
+ ]
+ },
+ "ModelUserInfo": {
+ "type": "object",
+ "properties": {
+ "access": {
+ "type": "string"
+ },
+ "displayname": {
+ "type": "string"
+ },
+ "lastconnection": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "user": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "user",
+ "displayname",
+ "lastconnection",
+ "access"
+ ]
+ },
+ "ModifyModelAccess": {
+ "type": "object",
+ "properties": {
+ "access": {
+ "type": "string"
+ },
+ "action": {
+ "type": "string"
+ },
+ "model-tag": {
+ "type": "string"
+ },
+ "user-tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "user-tag",
+ "action",
+ "access",
+ "model-tag"
+ ]
+ },
+ "ModifyModelAccessRequest": {
+ "type": "object",
+ "properties": {
+ "changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ModifyModelAccess"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "changes"
+ ]
+ },
+ "UserModel": {
+ "type": "object",
+ "properties": {
+ "LastConnection": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Model": {
+ "$ref": "#/definitions/Model"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Model",
+ "LastConnection"
+ ]
+ },
+ "UserModelList": {
+ "type": "object",
+ "properties": {
+ "UserModels": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserModel"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UserModels"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "NotifyWatcher",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object"
+ },
+ "Stop": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "Name": "Pinger",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Ping": {
+ "type": "object"
+ },
+ "Stop": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "Name": "Provisioner",
+ "Version": 3,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "APIAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "APIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/APIHostPortsResult"
+ }
+ }
+ },
+ "CACert": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BytesResult"
+ }
+ }
+ },
+ "Constraints": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ConstraintsResults"
+ }
+ }
+ },
+ "ContainerConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ContainerConfig"
+ }
+ }
+ },
+ "ContainerManagerConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ContainerManagerConfigParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ContainerManagerConfig"
+ }
+ }
+ },
+ "DistributionGroup": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/DistributionGroupResults"
+ }
+ }
+ },
+ "EnsureDead": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "FindTools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FindToolsParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/FindToolsResult"
+ }
+ }
+ },
+ "GetContainerInterfaceInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachineNetworkConfigResults"
+ }
+ }
+ },
+ "InstanceId": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "InstanceStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "MachinesWithTransientErrors": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "ModelUUID": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "PrepareContainerInterfaceInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachineNetworkConfigResults"
+ }
+ }
+ },
+ "ProvisioningInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ProvisioningInfoResults"
+ }
+ }
+ },
+ "ReleaseContainerAddresses": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Remove": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Series": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "SetInstanceInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/InstancesInfo"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetInstanceStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetPasswords": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntityPasswords"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetSupportedContainers": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineContainersParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "StateAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "Status": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "Tools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ToolsResults"
+ }
+ }
+ },
+ "UpdateStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "WatchAPIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchAllContainers": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/WatchContainers"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchContainers": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/WatchContainers"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchMachineErrorRetry": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchModelMachines": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIHostPortsResult": {
+ "type": "object",
+ "properties": {
+ "Servers": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostPort"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Servers"
+ ]
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "Binary": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "Number": {
+ "$ref": "#/definitions/Number"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Number",
+ "Series",
+ "Arch"
+ ]
+ },
+ "BytesResult": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Result"
+ ]
+ },
+ "CloudImageMetadata": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "image_id": {
+ "type": "string"
+ },
+ "priority": {
+ "type": "integer"
+ },
+ "region": {
+ "type": "string"
+ },
+ "root_storage_size": {
+ "type": "integer"
+ },
+ "root_storage_type": {
+ "type": "string"
+ },
+ "series": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ },
+ "stream": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ },
+ "virt_type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "image_id",
+ "region",
+ "version",
+ "series",
+ "arch",
+ "source",
+ "priority"
+ ]
+ },
+ "ConstraintsResult": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Constraints"
+ ]
+ },
+ "ConstraintsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConstraintsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ContainerConfig": {
+ "type": "object",
+ "properties": {
+ "AllowLXCLoopMounts": {
+ "type": "boolean"
+ },
+ "AptMirror": {
+ "type": "string"
+ },
+ "AptProxy": {
+ "$ref": "#/definitions/Settings"
+ },
+ "AuthorizedKeys": {
+ "type": "string"
+ },
+ "ProviderType": {
+ "type": "string"
+ },
+ "Proxy": {
+ "$ref": "#/definitions/Settings"
+ },
+ "SSLHostnameVerification": {
+ "type": "boolean"
+ },
+ "UpdateBehavior": {
+ "$ref": "#/definitions/UpdateBehavior"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ProviderType",
+ "AuthorizedKeys",
+ "SSLHostnameVerification",
+ "Proxy",
+ "AptProxy",
+ "AptMirror",
+ "AllowLXCLoopMounts",
+ "UpdateBehavior"
+ ]
+ },
+ "ContainerManagerConfig": {
+ "type": "object",
+ "properties": {
+ "ManagerConfig": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ManagerConfig"
+ ]
+ },
+ "ContainerManagerConfigParams": {
+ "type": "object",
+ "properties": {
+ "Type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Type"
+ ]
+ },
+ "DistributionGroupResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "DistributionGroupResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/DistributionGroupResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityPassword": {
+ "type": "object",
+ "properties": {
+ "Password": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Password"
+ ]
+ },
+ "EntityPasswords": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityPassword"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changes"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "FindToolsParams": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "MajorVersion": {
+ "type": "integer"
+ },
+ "MinorVersion": {
+ "type": "integer"
+ },
+ "Number": {
+ "$ref": "#/definitions/Number"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Number",
+ "MajorVersion",
+ "MinorVersion",
+ "Arch",
+ "Series"
+ ]
+ },
+ "FindToolsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "List": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tools"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "List",
+ "Error"
+ ]
+ },
+ "HardwareCharacteristics": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "AvailabilityZone": {
+ "type": "string"
+ },
+ "CpuCores": {
+ "type": "integer"
+ },
+ "CpuPower": {
+ "type": "integer"
+ },
+ "Mem": {
+ "type": "integer"
+ },
+ "RootDisk": {
+ "type": "integer"
+ },
+ "Tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "HostPort": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "$ref": "#/definitions/Address"
+ },
+ "Port": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Address",
+ "Port"
+ ]
+ },
+ "InstanceInfo": {
+ "type": "object",
+ "properties": {
+ "Characteristics": {
+ "$ref": "#/definitions/HardwareCharacteristics"
+ },
+ "InstanceId": {
+ "type": "string"
+ },
+ "NetworkConfig": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkConfig"
+ }
+ },
+ "Nonce": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ },
+ "VolumeAttachments": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/VolumeAttachmentInfo"
+ }
+ }
+ },
+ "Volumes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Volume"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "InstanceId",
+ "Nonce",
+ "Characteristics",
+ "Volumes",
+ "VolumeAttachments",
+ "NetworkConfig"
+ ]
+ },
+ "InstancesInfo": {
+ "type": "object",
+ "properties": {
+ "Machines": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InstanceInfo"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Machines"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineContainers": {
+ "type": "object",
+ "properties": {
+ "ContainerTypes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "MachineTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineTag",
+ "ContainerTypes"
+ ]
+ },
+ "MachineContainersParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineContainers"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Params"
+ ]
+ },
+ "MachineNetworkConfigResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Info": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkConfig"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Info"
+ ]
+ },
+ "MachineNetworkConfigResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineNetworkConfigResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "type": "string"
+ },
+ "CIDR": {
+ "type": "string"
+ },
+ "ConfigType": {
+ "type": "string"
+ },
+ "DNSSearchDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DNSServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DeviceIndex": {
+ "type": "integer"
+ },
+ "Disabled": {
+ "type": "boolean"
+ },
+ "GatewayAddress": {
+ "type": "string"
+ },
+ "InterfaceName": {
+ "type": "string"
+ },
+ "InterfaceType": {
+ "type": "string"
+ },
+ "MACAddress": {
+ "type": "string"
+ },
+ "MTU": {
+ "type": "integer"
+ },
+ "NoAutoStart": {
+ "type": "boolean"
+ },
+ "ParentInterfaceName": {
+ "type": "string"
+ },
+ "ProviderAddressId": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "ProviderSpaceId": {
+ "type": "string"
+ },
+ "ProviderSubnetId": {
+ "type": "string"
+ },
+ "ProviderVLANId": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "DeviceIndex",
+ "MACAddress",
+ "CIDR",
+ "MTU",
+ "ProviderId",
+ "ProviderSubnetId",
+ "ProviderSpaceId",
+ "ProviderAddressId",
+ "ProviderVLANId",
+ "VLANTag",
+ "InterfaceName",
+ "ParentInterfaceName",
+ "InterfaceType",
+ "Disabled"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "Number": {
+ "type": "object",
+ "properties": {
+ "Build": {
+ "type": "integer"
+ },
+ "Major": {
+ "type": "integer"
+ },
+ "Minor": {
+ "type": "integer"
+ },
+ "Patch": {
+ "type": "integer"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Major",
+ "Minor",
+ "Tag",
+ "Patch",
+ "Build"
+ ]
+ },
+ "ProvisioningInfo": {
+ "type": "object",
+ "properties": {
+ "Constraints": {
+ "$ref": "#/definitions/Value"
+ },
+ "EndpointBindings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "ImageMetadata": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CloudImageMetadata"
+ }
+ },
+ "Jobs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Placement": {
+ "type": "string"
+ },
+ "Series": {
+ "type": "string"
+ },
+ "SubnetsToZones": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "Tags": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "Volumes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Constraints",
+ "Series",
+ "Placement",
+ "Jobs",
+ "Volumes",
+ "Tags",
+ "SubnetsToZones",
+ "ImageMetadata",
+ "EndpointBindings"
+ ]
+ },
+ "ProvisioningInfoResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "$ref": "#/definitions/ProvisioningInfo"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "ProvisioningInfoResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProvisioningInfoResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Settings": {
+ "type": "object",
+ "properties": {
+ "Ftp": {
+ "type": "string"
+ },
+ "Http": {
+ "type": "string"
+ },
+ "Https": {
+ "type": "string"
+ },
+ "NoProxy": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Http",
+ "Https",
+ "Ftp",
+ "NoProxy"
+ ]
+ },
+ "StatusResult": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Id": {
+ "type": "string"
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Id",
+ "Life",
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "StatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Tools": {
+ "type": "object",
+ "properties": {
+ "sha256": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string"
+ },
+ "version": {
+ "$ref": "#/definitions/Binary"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "version",
+ "url",
+ "size"
+ ]
+ },
+ "ToolsResult": {
+ "type": "object",
+ "properties": {
+ "DisableSSLHostnameVerification": {
+ "type": "boolean"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "ToolsList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tools"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ToolsList",
+ "DisableSSLHostnameVerification",
+ "Error"
+ ]
+ },
+ "ToolsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ToolsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "UpdateBehavior": {
+ "type": "object",
+ "properties": {
+ "EnableOSRefreshUpdate": {
+ "type": "boolean"
+ },
+ "EnableOSUpgrade": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "EnableOSRefreshUpdate",
+ "EnableOSUpgrade"
+ ]
+ },
+ "Value": {
+ "type": "object",
+ "properties": {
+ "arch": {
+ "type": "string"
+ },
+ "container": {
+ "type": "string"
+ },
+ "cpu-cores": {
+ "type": "integer"
+ },
+ "cpu-power": {
+ "type": "integer"
+ },
+ "instance-type": {
+ "type": "string"
+ },
+ "mem": {
+ "type": "integer"
+ },
+ "root-disk": {
+ "type": "integer"
+ },
+ "spaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "virt-type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Volume": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/definitions/VolumeInfo"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "info"
+ ]
+ },
+ "VolumeAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "busaddress": {
+ "type": "string"
+ },
+ "devicelink": {
+ "type": "string"
+ },
+ "devicename": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeAttachmentParams": {
+ "type": "object",
+ "properties": {
+ "instanceid": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ },
+ "volumeid": {
+ "type": "string"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "machinetag",
+ "provider"
+ ]
+ },
+ "VolumeInfo": {
+ "type": "object",
+ "properties": {
+ "hardwareid": {
+ "type": "string"
+ },
+ "persistent": {
+ "type": "boolean"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "volumeid": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumeid",
+ "size",
+ "persistent"
+ ]
+ },
+ "VolumeParams": {
+ "type": "object",
+ "properties": {
+ "attachment": {
+ "$ref": "#/definitions/VolumeAttachmentParams"
+ },
+ "attributes": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "provider": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "tags": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "size",
+ "provider"
+ ]
+ },
+ "WatchContainer": {
+ "type": "object",
+ "properties": {
+ "ContainerType": {
+ "type": "string"
+ },
+ "MachineTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineTag",
+ "ContainerType"
+ ]
+ },
+ "WatchContainers": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/WatchContainer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Params"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "ProxyUpdater",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ProxyConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ProxyConfigResults"
+ }
+ }
+ },
+ "WatchForProxyConfigAndAPIHostPortChanges": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ProxyConfig": {
+ "type": "object",
+ "properties": {
+ "FTP": {
+ "type": "string"
+ },
+ "HTTP": {
+ "type": "string"
+ },
+ "HTTPS": {
+ "type": "string"
+ },
+ "NoProxy": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "HTTP",
+ "HTTPS",
+ "FTP",
+ "NoProxy"
+ ]
+ },
+ "ProxyConfigResult": {
+ "type": "object",
+ "properties": {
+ "APTProxySettings": {
+ "$ref": "#/definitions/ProxyConfig"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "ProxySettings": {
+ "$ref": "#/definitions/ProxyConfig"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ProxySettings",
+ "APTProxySettings"
+ ]
+ },
+ "ProxyConfigResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ProxyConfigResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Reboot",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ClearReboot": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "GetRebootAction": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/RebootActionResults"
+ }
+ }
+ },
+ "RequestReboot": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "WatchForRebootEvent": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "RebootActionResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RebootActionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RebootActionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "RelationUnitsWatcher",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/RelationUnitsWatchResult"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "RelationUnitsChange": {
+ "type": "object",
+ "properties": {
+ "Changed": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/UnitSettings"
+ }
+ }
+ },
+ "Departed": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changed",
+ "Departed"
+ ]
+ },
+ "RelationUnitsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "$ref": "#/definitions/RelationUnitsChange"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "RelationUnitsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationUnitsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "UnitSettings": {
+ "type": "object",
+ "properties": {
+ "Version": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Resumer",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ResumeTransactions": {
+ "type": "object"
+ }
+ }
+ }
+ },
+ {
+ "Name": "RetryStrategy",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "RetryStrategy": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/RetryStrategyResults"
+ }
+ }
+ },
+ "WatchRetryStrategy": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "RetryStrategy": {
+ "type": "object",
+ "properties": {
+ "JitterRetryTime": {
+ "type": "boolean"
+ },
+ "MaxRetryTime": {
+ "type": "integer"
+ },
+ "MinRetryTime": {
+ "type": "integer"
+ },
+ "RetryTimeFactor": {
+ "type": "integer"
+ },
+ "ShouldRetry": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ShouldRetry",
+ "MinRetryTime",
+ "MaxRetryTime",
+ "JitterRetryTime",
+ "RetryTimeFactor"
+ ]
+ },
+ "RetryStrategyResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "$ref": "#/definitions/RetryStrategy"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "RetryStrategyResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RetryStrategyResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "SSHClient",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "PrivateAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/SSHAddressResults"
+ }
+ }
+ },
+ "Proxy": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/SSHProxyResult"
+ }
+ }
+ },
+ "PublicAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/SSHAddressResults"
+ }
+ }
+ },
+ "PublicKeys": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/SSHPublicKeysResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "SSHAddressResult": {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false
+ },
+ "SSHAddressResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SSHAddressResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "SSHProxyResult": {
+ "type": "object",
+ "properties": {
+ "use-proxy": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "use-proxy"
+ ]
+ },
+ "SSHPublicKeysResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "public-keys": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "SSHPublicKeysResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SSHPublicKeysResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Singular",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Claim": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SingularClaims"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Wait": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "SingularClaim": {
+ "type": "object",
+ "properties": {
+ "ControllerTag": {
+ "type": "string"
+ },
+ "Duration": {
+ "type": "integer"
+ },
+ "ModelTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ModelTag",
+ "ControllerTag",
+ "Duration"
+ ]
+ },
+ "SingularClaims": {
+ "type": "object",
+ "properties": {
+ "Claims": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SingularClaim"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Claims"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Spaces",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "CreateSpaces": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CreateSpacesParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ListSpaces": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ListSpacesResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "CreateSpaceParams": {
+ "type": "object",
+ "properties": {
+ "ProviderId": {
+ "type": "string"
+ },
+ "Public": {
+ "type": "boolean"
+ },
+ "SpaceTag": {
+ "type": "string"
+ },
+ "SubnetTags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "SubnetTags",
+ "SpaceTag",
+ "Public"
+ ]
+ },
+ "CreateSpacesParams": {
+ "type": "object",
+ "properties": {
+ "Spaces": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CreateSpaceParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Spaces"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ListSpacesResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Space"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "Space": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "Subnets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "Subnets"
+ ]
+ },
+ "Subnet": {
+ "type": "object",
+ "properties": {
+ "CIDR": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "SpaceTag": {
+ "type": "string"
+ },
+ "StaticRangeHighIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "StaticRangeLowIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "Status": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ },
+ "Zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CIDR",
+ "VLANTag",
+ "Life",
+ "SpaceTag",
+ "Zones"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "StatusHistory",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Prune": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StatusHistoryPruneArgs"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "StatusHistoryPruneArgs": {
+ "type": "object",
+ "properties": {
+ "MaxHistoryMB": {
+ "type": "integer"
+ },
+ "MaxHistoryTime": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MaxHistoryTime",
+ "MaxHistoryMB"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Storage",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddToUnit": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StoragesAddParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "CreatePool": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StoragePool"
+ }
+ }
+ },
+ "ListFilesystems": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FilesystemFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/FilesystemDetailsListResults"
+ }
+ }
+ },
+ "ListPools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StoragePoolFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/StoragePoolsResults"
+ }
+ }
+ },
+ "ListStorageDetails": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StorageFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/StorageDetailsListResults"
+ }
+ }
+ },
+ "ListVolumes": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/VolumeFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/VolumeDetailsListResults"
+ }
+ }
+ },
+ "StorageDetails": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StorageDetailsResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatus": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "FilesystemAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "mountpoint": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemDetails": {
+ "type": "object",
+ "properties": {
+ "filesystemtag": {
+ "type": "string"
+ },
+ "info": {
+ "$ref": "#/definitions/FilesystemInfo"
+ },
+ "machineattachments": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/FilesystemAttachmentInfo"
+ }
+ }
+ },
+ "status": {
+ "$ref": "#/definitions/EntityStatus"
+ },
+ "storage": {
+ "$ref": "#/definitions/StorageDetails"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemtag",
+ "info",
+ "status"
+ ]
+ },
+ "FilesystemDetailsListResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemDetails"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemDetailsListResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemDetailsListResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemFilter": {
+ "type": "object",
+ "properties": {
+ "machines": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemFilters": {
+ "type": "object",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemFilter"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemInfo": {
+ "type": "object",
+ "properties": {
+ "filesystemid": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemid",
+ "size"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "StorageAddParams": {
+ "type": "object",
+ "properties": {
+ "StorageName": {
+ "type": "string"
+ },
+ "storage": {
+ "$ref": "#/definitions/StorageConstraints"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "unit",
+ "StorageName",
+ "storage"
+ ]
+ },
+ "StorageAttachmentDetails": {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ },
+ "storagetag": {
+ "type": "string"
+ },
+ "unittag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "storagetag",
+ "unittag",
+ "machinetag"
+ ]
+ },
+ "StorageConstraints": {
+ "type": "object",
+ "properties": {
+ "Count": {
+ "type": "integer"
+ },
+ "Pool": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Pool",
+ "Size",
+ "Count"
+ ]
+ },
+ "StorageDetails": {
+ "type": "object",
+ "properties": {
+ "Persistent": {
+ "type": "boolean"
+ },
+ "attachments": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/StorageAttachmentDetails"
+ }
+ }
+ },
+ "kind": {
+ "type": "integer"
+ },
+ "ownertag": {
+ "type": "string"
+ },
+ "status": {
+ "$ref": "#/definitions/EntityStatus"
+ },
+ "storagetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "storagetag",
+ "ownertag",
+ "kind",
+ "status",
+ "Persistent"
+ ]
+ },
+ "StorageDetailsListResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageDetails"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageDetailsListResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageDetailsListResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageDetailsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/StorageDetails"
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageDetailsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageDetailsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageFilter": {
+ "type": "object",
+ "additionalProperties": false
+ },
+ "StorageFilters": {
+ "type": "object",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageFilter"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StoragePool": {
+ "type": "object",
+ "properties": {
+ "attrs": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "name": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "name",
+ "provider",
+ "attrs"
+ ]
+ },
+ "StoragePoolFilter": {
+ "type": "object",
+ "properties": {
+ "names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "providers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StoragePoolFilters": {
+ "type": "object",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StoragePoolFilter"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StoragePoolsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "storagepools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StoragePool"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StoragePoolsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StoragePoolsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StoragesAddParams": {
+ "type": "object",
+ "properties": {
+ "storages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAddParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "storages"
+ ]
+ },
+ "VolumeAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "busaddress": {
+ "type": "string"
+ },
+ "devicelink": {
+ "type": "string"
+ },
+ "devicename": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeDetails": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/definitions/VolumeInfo"
+ },
+ "machineattachments": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/VolumeAttachmentInfo"
+ }
+ }
+ },
+ "status": {
+ "$ref": "#/definitions/EntityStatus"
+ },
+ "storage": {
+ "$ref": "#/definitions/StorageDetails"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "info",
+ "status"
+ ]
+ },
+ "VolumeDetailsListResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeDetails"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeDetailsListResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeDetailsListResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeFilter": {
+ "type": "object",
+ "properties": {
+ "machines": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeFilters": {
+ "type": "object",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeFilter"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeInfo": {
+ "type": "object",
+ "properties": {
+ "hardwareid": {
+ "type": "string"
+ },
+ "persistent": {
+ "type": "boolean"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "volumeid": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumeid",
+ "size",
+ "persistent"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "StorageProvisioner",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AttachmentLife": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "EnsureDead": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "FilesystemAttachmentParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/FilesystemAttachmentParamsResults"
+ }
+ }
+ },
+ "FilesystemAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/FilesystemAttachmentResults"
+ }
+ }
+ },
+ "FilesystemParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/FilesystemParamsResults"
+ }
+ }
+ },
+ "Filesystems": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/FilesystemResults"
+ }
+ }
+ },
+ "InstanceId": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "Remove": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "RemoveAttachment": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetFilesystemAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/FilesystemAttachments"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetFilesystemInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Filesystems"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetVolumeAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/VolumeAttachments"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetVolumeInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Volumes"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "UpdateStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "VolumeAttachmentParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/VolumeAttachmentParamsResults"
+ }
+ }
+ },
+ "VolumeAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/VolumeAttachmentResults"
+ }
+ }
+ },
+ "VolumeBlockDevices": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MachineStorageIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/BlockDeviceResults"
+ }
+ }
+ },
+ "VolumeParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/VolumeParamsResults"
+ }
+ }
+ },
+ "Volumes": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/VolumeResults"
+ }
+ }
+ },
+ "WatchBlockDevices": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchFilesystemAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachineStorageIdsWatchResults"
+ }
+ }
+ },
+ "WatchFilesystems": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchMachines": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchVolumeAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachineStorageIdsWatchResults"
+ }
+ }
+ },
+ "WatchVolumes": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "BlockDevice": {
+ "type": "object",
+ "properties": {
+ "BusAddress": {
+ "type": "string"
+ },
+ "DeviceLinks": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DeviceName": {
+ "type": "string"
+ },
+ "FilesystemType": {
+ "type": "string"
+ },
+ "HardwareId": {
+ "type": "string"
+ },
+ "InUse": {
+ "type": "boolean"
+ },
+ "Label": {
+ "type": "string"
+ },
+ "MountPoint": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "DeviceName",
+ "DeviceLinks",
+ "Label",
+ "UUID",
+ "HardwareId",
+ "BusAddress",
+ "Size",
+ "FilesystemType",
+ "InUse",
+ "MountPoint"
+ ]
+ },
+ "BlockDeviceResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/BlockDevice"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "BlockDeviceResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BlockDeviceResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Filesystem": {
+ "type": "object",
+ "properties": {
+ "filesystemtag": {
+ "type": "string"
+ },
+ "info": {
+ "$ref": "#/definitions/FilesystemInfo"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemtag",
+ "info"
+ ]
+ },
+ "FilesystemAttachment": {
+ "type": "object",
+ "properties": {
+ "filesystemtag": {
+ "type": "string"
+ },
+ "info": {
+ "$ref": "#/definitions/FilesystemAttachmentInfo"
+ },
+ "machinetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemtag",
+ "machinetag",
+ "info"
+ ]
+ },
+ "FilesystemAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "mountpoint": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemAttachmentParams": {
+ "type": "object",
+ "properties": {
+ "filesystemid": {
+ "type": "string"
+ },
+ "filesystemtag": {
+ "type": "string"
+ },
+ "instanceid": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ },
+ "mountpoint": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemtag",
+ "machinetag",
+ "provider"
+ ]
+ },
+ "FilesystemAttachmentParamsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/FilesystemAttachmentParams"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "FilesystemAttachmentParamsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemAttachmentParamsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemAttachmentResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/FilesystemAttachment"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "FilesystemAttachmentResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemAttachmentResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemAttachments": {
+ "type": "object",
+ "properties": {
+ "filesystemattachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemAttachment"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemattachments"
+ ]
+ },
+ "FilesystemInfo": {
+ "type": "object",
+ "properties": {
+ "filesystemid": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemid",
+ "size"
+ ]
+ },
+ "FilesystemParams": {
+ "type": "object",
+ "properties": {
+ "attachment": {
+ "$ref": "#/definitions/FilesystemAttachmentParams"
+ },
+ "attributes": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "filesystemtag": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "tags": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystemtag",
+ "size",
+ "provider"
+ ]
+ },
+ "FilesystemParamsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/FilesystemParams"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "FilesystemParamsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemParamsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "FilesystemResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/Filesystem"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "FilesystemResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/FilesystemResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Filesystems": {
+ "type": "object",
+ "properties": {
+ "filesystems": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Filesystem"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filesystems"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineStorageId": {
+ "type": "object",
+ "properties": {
+ "attachmenttag": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "machinetag",
+ "attachmenttag"
+ ]
+ },
+ "MachineStorageIds": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineStorageId"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ids"
+ ]
+ },
+ "MachineStorageIdsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineStorageId"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "MachineStorageIdsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineStorageIdsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "MachineStorageIdsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineStorageIdsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Volume": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/definitions/VolumeInfo"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "info"
+ ]
+ },
+ "VolumeAttachment": {
+ "type": "object",
+ "properties": {
+ "info": {
+ "$ref": "#/definitions/VolumeAttachmentInfo"
+ },
+ "machinetag": {
+ "type": "string"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "machinetag",
+ "info"
+ ]
+ },
+ "VolumeAttachmentInfo": {
+ "type": "object",
+ "properties": {
+ "busaddress": {
+ "type": "string"
+ },
+ "devicelink": {
+ "type": "string"
+ },
+ "devicename": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeAttachmentParams": {
+ "type": "object",
+ "properties": {
+ "instanceid": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "read-only": {
+ "type": "boolean"
+ },
+ "volumeid": {
+ "type": "string"
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "machinetag",
+ "provider"
+ ]
+ },
+ "VolumeAttachmentParamsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/VolumeAttachmentParams"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "VolumeAttachmentParamsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeAttachmentParamsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeAttachmentResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/VolumeAttachment"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "VolumeAttachmentResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeAttachmentResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeAttachments": {
+ "type": "object",
+ "properties": {
+ "volumeattachments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeAttachment"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumeattachments"
+ ]
+ },
+ "VolumeInfo": {
+ "type": "object",
+ "properties": {
+ "hardwareid": {
+ "type": "string"
+ },
+ "persistent": {
+ "type": "boolean"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "volumeid": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumeid",
+ "size",
+ "persistent"
+ ]
+ },
+ "VolumeParams": {
+ "type": "object",
+ "properties": {
+ "attachment": {
+ "$ref": "#/definitions/VolumeAttachmentParams"
+ },
+ "attributes": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "provider": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "tags": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "volumetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumetag",
+ "size",
+ "provider"
+ ]
+ },
+ "VolumeParamsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/VolumeParams"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "VolumeParamsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeParamsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "VolumeResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/Volume"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "VolumeResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VolumeResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Volumes": {
+ "type": "object",
+ "properties": {
+ "volumes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Volume"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "volumes"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "StringsWatcher",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Subnets",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddSubnets": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddSubnetsParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "AllSpaces": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/SpaceResults"
+ }
+ }
+ },
+ "AllZones": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ZoneResults"
+ }
+ }
+ },
+ "ListSubnets": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SubnetsFilters"
+ },
+ "Result": {
+ "$ref": "#/definitions/ListSubnetsResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AddSubnetParams": {
+ "type": "object",
+ "properties": {
+ "SpaceTag": {
+ "type": "string"
+ },
+ "SubnetProviderId": {
+ "type": "string"
+ },
+ "SubnetTag": {
+ "type": "string"
+ },
+ "Zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "SpaceTag"
+ ]
+ },
+ "AddSubnetsParams": {
+ "type": "object",
+ "properties": {
+ "Subnets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddSubnetParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Subnets"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ListSubnetsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Subnet"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "SpaceResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Tag"
+ ]
+ },
+ "SpaceResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SpaceResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Subnet": {
+ "type": "object",
+ "properties": {
+ "CIDR": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "SpaceTag": {
+ "type": "string"
+ },
+ "StaticRangeHighIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "StaticRangeLowIP": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "Status": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ },
+ "Zones": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "CIDR",
+ "VLANTag",
+ "Life",
+ "SpaceTag",
+ "Zones"
+ ]
+ },
+ "SubnetsFilters": {
+ "type": "object",
+ "properties": {
+ "SpaceTag": {
+ "type": "string"
+ },
+ "Zone": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ZoneResult": {
+ "type": "object",
+ "properties": {
+ "Available": {
+ "type": "boolean"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Name",
+ "Available"
+ ]
+ },
+ "ZoneResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ZoneResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Undertaker",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "ModelInfo": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/UndertakerModelInfoResult"
+ }
+ }
+ },
+ "ProcessDyingModel": {
+ "type": "object"
+ },
+ "RemoveModel": {
+ "type": "object"
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "UpdateStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "WatchModelResources": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "UndertakerModelInfo": {
+ "type": "object",
+ "properties": {
+ "GlobalName": {
+ "type": "string"
+ },
+ "IsSystem": {
+ "type": "boolean"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UUID",
+ "Name",
+ "GlobalName",
+ "IsSystem",
+ "Life"
+ ]
+ },
+ "UndertakerModelInfoResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "$ref": "#/definitions/UndertakerModelInfo"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "UnitAssigner",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AssignUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetAgentStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "WatchUnitAssignments": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Uniter",
+ "Version": 4,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "APIAddresses": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "APIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/APIHostPortsResult"
+ }
+ }
+ },
+ "Actions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ActionResults"
+ }
+ }
+ },
+ "AddMetricBatches": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MetricBatchParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "AddUnitStorage": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StoragesAddParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "AllMachinePorts": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MachinePortsResults"
+ }
+ }
+ },
+ "ApplicationOwner": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "ApplicationStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ApplicationStatusResults"
+ }
+ }
+ },
+ "AssignedMachine": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "AvailabilityZone": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "BeginActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "CACert": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/BytesResult"
+ }
+ }
+ },
+ "CharmArchiveSha256": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/CharmURLs"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "CharmModifiedVersion": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/IntResults"
+ }
+ }
+ },
+ "CharmURL": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringBoolResults"
+ }
+ }
+ },
+ "ClearResolved": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ClosePorts": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntitiesPortRanges"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ConfigSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ConfigSettingsResults"
+ }
+ }
+ },
+ "CurrentModel": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelResult"
+ }
+ }
+ },
+ "Destroy": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "DestroyAllSubordinates": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "DestroyUnitStorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "EnsureDead": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "EnterScope": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "FinishActions": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/ActionExecutionResults"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "GetMeterStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MeterStatusResults"
+ }
+ }
+ },
+ "GetPrincipal": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringBoolResults"
+ }
+ }
+ },
+ "HasSubordinates": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/BoolResults"
+ }
+ }
+ },
+ "JoinedRelations": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsResults"
+ }
+ }
+ },
+ "LeaveScope": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Life": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "Merge": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/MergeLeadershipSettingsBulkParams"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "ModelConfig": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/ModelConfigResult"
+ }
+ }
+ },
+ "ModelUUID": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "NetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/UnitsNetworkConfig"
+ },
+ "Result": {
+ "$ref": "#/definitions/UnitNetworkConfigResults"
+ }
+ }
+ },
+ "OpenPorts": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntitiesPortRanges"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "PrivateAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "ProviderType": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "PublicAddress": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringResults"
+ }
+ }
+ },
+ "Read": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/GetLeadershipSettingsBulkResults"
+ }
+ }
+ },
+ "ReadRemoteSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnitPairs"
+ },
+ "Result": {
+ "$ref": "#/definitions/SettingsResults"
+ }
+ }
+ },
+ "ReadSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/SettingsResults"
+ }
+ }
+ },
+ "Relation": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/RelationResults"
+ }
+ }
+ },
+ "RelationById": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/RelationResults"
+ }
+ }
+ },
+ "RemoveStorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StorageAttachmentIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "RequestReboot": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Resolved": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ResolvedModeResults"
+ }
+ }
+ },
+ "SetAgentStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetApplicationStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetCharmURL": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntitiesCharmURL"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetUnitStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/SetStatus"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "StorageAttachmentLife": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StorageAttachmentIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/LifeResults"
+ }
+ }
+ },
+ "StorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StorageAttachmentIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/StorageAttachmentResults"
+ }
+ }
+ },
+ "UnitStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StatusResults"
+ }
+ }
+ },
+ "UnitStorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StorageAttachmentIdsResults"
+ }
+ }
+ },
+ "UpdateSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnitsSettings"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Watch": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchAPIHostPorts": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchActionNotifications": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchApplicationRelations": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ },
+ "WatchConfigSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchForModelConfigChanges": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "WatchLeadershipSettings": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchMeterStatus": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchRelationUnits": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/RelationUnits"
+ },
+ "Result": {
+ "$ref": "#/definitions/RelationUnitsWatchResults"
+ }
+ }
+ },
+ "WatchStorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/StorageAttachmentIds"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchUnitAddresses": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ },
+ "WatchUnitStorageAttachments": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/StringsWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "APIHostPortsResult": {
+ "type": "object",
+ "properties": {
+ "Servers": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/HostPort"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Servers"
+ ]
+ },
+ "Action": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "parameters": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "receiver": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "tag",
+ "receiver",
+ "name"
+ ]
+ },
+ "ActionExecutionResult": {
+ "type": "object",
+ "properties": {
+ "actiontag": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ },
+ "results": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "actiontag",
+ "status"
+ ]
+ },
+ "ActionExecutionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionExecutionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionResult": {
+ "type": "object",
+ "properties": {
+ "action": {
+ "$ref": "#/definitions/Action"
+ },
+ "completed": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "enqueued": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "message": {
+ "type": "string"
+ },
+ "output": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActionResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ActionResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "Address": {
+ "type": "object",
+ "properties": {
+ "Scope": {
+ "type": "string"
+ },
+ "SpaceName": {
+ "type": "string"
+ },
+ "Type": {
+ "type": "string"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Value",
+ "Type",
+ "Scope"
+ ]
+ },
+ "ApplicationStatusResult": {
+ "type": "object",
+ "properties": {
+ "Application": {
+ "$ref": "#/definitions/StatusResult"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Units": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/StatusResult"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Application",
+ "Units",
+ "Error"
+ ]
+ },
+ "ApplicationStatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ApplicationStatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "BoolResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "BoolResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/BoolResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "BytesResult": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Result"
+ ]
+ },
+ "CharmURL": {
+ "type": "object",
+ "properties": {
+ "URL": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "URL"
+ ]
+ },
+ "CharmURLs": {
+ "type": "object",
+ "properties": {
+ "URLs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/CharmURL"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "URLs"
+ ]
+ },
+ "ConfigSettingsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Settings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Settings"
+ ]
+ },
+ "ConfigSettingsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ConfigSettingsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Endpoint": {
+ "type": "object",
+ "properties": {
+ "ApplicationName": {
+ "type": "string"
+ },
+ "Relation": {
+ "$ref": "#/definitions/Relation"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationName",
+ "Relation"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "EntitiesCharmURL": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityCharmURL"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "EntitiesPortRanges": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityPortRange"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityCharmURL": {
+ "type": "object",
+ "properties": {
+ "CharmURL": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "CharmURL"
+ ]
+ },
+ "EntityPortRange": {
+ "type": "object",
+ "properties": {
+ "FromPort": {
+ "type": "integer"
+ },
+ "Protocol": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ },
+ "ToPort": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Protocol",
+ "FromPort",
+ "ToPort"
+ ]
+ },
+ "EntityStatusArgs": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Status": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Status",
+ "Info",
+ "Data"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "GetLeadershipSettingsBulkResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/GetLeadershipSettingsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "GetLeadershipSettingsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Settings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Settings",
+ "Error"
+ ]
+ },
+ "HostPort": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "$ref": "#/definitions/Address"
+ },
+ "Port": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Address",
+ "Port"
+ ]
+ },
+ "IntResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "IntResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/IntResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "LifeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Life",
+ "Error"
+ ]
+ },
+ "LifeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/LifeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachinePortRange": {
+ "type": "object",
+ "properties": {
+ "PortRange": {
+ "$ref": "#/definitions/PortRange"
+ },
+ "RelationTag": {
+ "type": "string"
+ },
+ "UnitTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UnitTag",
+ "RelationTag",
+ "PortRange"
+ ]
+ },
+ "MachinePortsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Ports": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachinePortRange"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Ports"
+ ]
+ },
+ "MachinePortsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachinePortsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "MergeLeadershipSettingsBulkParams": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MergeLeadershipSettingsParam"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Params"
+ ]
+ },
+ "MergeLeadershipSettingsParam": {
+ "type": "object",
+ "properties": {
+ "ApplicationTag": {
+ "type": "string"
+ },
+ "Settings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ApplicationTag",
+ "Settings"
+ ]
+ },
+ "MeterStatusResult": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Info": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Code",
+ "Info",
+ "Error"
+ ]
+ },
+ "MeterStatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MeterStatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Metric": {
+ "type": "object",
+ "properties": {
+ "Key": {
+ "type": "string"
+ },
+ "Time": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Key",
+ "Value",
+ "Time"
+ ]
+ },
+ "MetricBatch": {
+ "type": "object",
+ "properties": {
+ "CharmURL": {
+ "type": "string"
+ },
+ "Created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Metrics": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Metric"
+ }
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UUID",
+ "CharmURL",
+ "Created",
+ "Metrics"
+ ]
+ },
+ "MetricBatchParam": {
+ "type": "object",
+ "properties": {
+ "Batch": {
+ "$ref": "#/definitions/MetricBatch"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Batch"
+ ]
+ },
+ "MetricBatchParams": {
+ "type": "object",
+ "properties": {
+ "Batches": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MetricBatchParam"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Batches"
+ ]
+ },
+ "ModelConfigResult": {
+ "type": "object",
+ "properties": {
+ "Config": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Config"
+ ]
+ },
+ "ModelResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "UUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Name",
+ "UUID"
+ ]
+ },
+ "NetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Address": {
+ "type": "string"
+ },
+ "CIDR": {
+ "type": "string"
+ },
+ "ConfigType": {
+ "type": "string"
+ },
+ "DNSSearchDomains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DNSServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "DeviceIndex": {
+ "type": "integer"
+ },
+ "Disabled": {
+ "type": "boolean"
+ },
+ "GatewayAddress": {
+ "type": "string"
+ },
+ "InterfaceName": {
+ "type": "string"
+ },
+ "InterfaceType": {
+ "type": "string"
+ },
+ "MACAddress": {
+ "type": "string"
+ },
+ "MTU": {
+ "type": "integer"
+ },
+ "NoAutoStart": {
+ "type": "boolean"
+ },
+ "ParentInterfaceName": {
+ "type": "string"
+ },
+ "ProviderAddressId": {
+ "type": "string"
+ },
+ "ProviderId": {
+ "type": "string"
+ },
+ "ProviderSpaceId": {
+ "type": "string"
+ },
+ "ProviderSubnetId": {
+ "type": "string"
+ },
+ "ProviderVLANId": {
+ "type": "string"
+ },
+ "VLANTag": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "DeviceIndex",
+ "MACAddress",
+ "CIDR",
+ "MTU",
+ "ProviderId",
+ "ProviderSubnetId",
+ "ProviderSpaceId",
+ "ProviderAddressId",
+ "ProviderVLANId",
+ "VLANTag",
+ "InterfaceName",
+ "ParentInterfaceName",
+ "InterfaceType",
+ "Disabled"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "PortRange": {
+ "type": "object",
+ "properties": {
+ "FromPort": {
+ "type": "integer"
+ },
+ "Protocol": {
+ "type": "string"
+ },
+ "ToPort": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "FromPort",
+ "ToPort",
+ "Protocol"
+ ]
+ },
+ "Relation": {
+ "type": "object",
+ "properties": {
+ "Interface": {
+ "type": "string"
+ },
+ "Limit": {
+ "type": "integer"
+ },
+ "Name": {
+ "type": "string"
+ },
+ "Optional": {
+ "type": "boolean"
+ },
+ "Role": {
+ "type": "string"
+ },
+ "Scope": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Name",
+ "Role",
+ "Interface",
+ "Optional",
+ "Limit",
+ "Scope"
+ ]
+ },
+ "RelationIds": {
+ "type": "object",
+ "properties": {
+ "RelationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationIds"
+ ]
+ },
+ "RelationResult": {
+ "type": "object",
+ "properties": {
+ "Endpoint": {
+ "$ref": "#/definitions/Endpoint"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Id": {
+ "type": "integer"
+ },
+ "Key": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Life",
+ "Id",
+ "Key",
+ "Endpoint"
+ ]
+ },
+ "RelationResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "RelationUnit": {
+ "type": "object",
+ "properties": {
+ "Relation": {
+ "type": "string"
+ },
+ "Unit": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Relation",
+ "Unit"
+ ]
+ },
+ "RelationUnitPair": {
+ "type": "object",
+ "properties": {
+ "LocalUnit": {
+ "type": "string"
+ },
+ "Relation": {
+ "type": "string"
+ },
+ "RemoteUnit": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Relation",
+ "LocalUnit",
+ "RemoteUnit"
+ ]
+ },
+ "RelationUnitPairs": {
+ "type": "object",
+ "properties": {
+ "RelationUnitPairs": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationUnitPair"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationUnitPairs"
+ ]
+ },
+ "RelationUnitSettings": {
+ "type": "object",
+ "properties": {
+ "Relation": {
+ "type": "string"
+ },
+ "Settings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ },
+ "Unit": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Relation",
+ "Unit",
+ "Settings"
+ ]
+ },
+ "RelationUnits": {
+ "type": "object",
+ "properties": {
+ "RelationUnits": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationUnit"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationUnits"
+ ]
+ },
+ "RelationUnitsChange": {
+ "type": "object",
+ "properties": {
+ "Changed": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "$ref": "#/definitions/UnitSettings"
+ }
+ }
+ },
+ "Departed": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changed",
+ "Departed"
+ ]
+ },
+ "RelationUnitsSettings": {
+ "type": "object",
+ "properties": {
+ "RelationUnits": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationUnitSettings"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationUnits"
+ ]
+ },
+ "RelationUnitsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "$ref": "#/definitions/RelationUnitsChange"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "RelationUnitsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "RelationUnitsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "RelationUnitsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/RelationUnitsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "ResolvedModeResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Mode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Mode"
+ ]
+ },
+ "ResolvedModeResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResolvedModeResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "SetStatus": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityStatusArgs"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "SettingsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Settings": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "string"
+ }
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Settings"
+ ]
+ },
+ "SettingsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SettingsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StatusResult": {
+ "type": "object",
+ "properties": {
+ "Data": {
+ "type": "object",
+ "patternProperties": {
+ ".*": {
+ "type": "object",
+ "additionalProperties": true
+ }
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Id": {
+ "type": "string"
+ },
+ "Info": {
+ "type": "string"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Since": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "Status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Id",
+ "Life",
+ "Status",
+ "Info",
+ "Data",
+ "Since"
+ ]
+ },
+ "StatusResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StatusResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StorageAddParams": {
+ "type": "object",
+ "properties": {
+ "StorageName": {
+ "type": "string"
+ },
+ "storage": {
+ "$ref": "#/definitions/StorageConstraints"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "unit",
+ "StorageName",
+ "storage"
+ ]
+ },
+ "StorageAttachment": {
+ "type": "object",
+ "properties": {
+ "Kind": {
+ "type": "integer"
+ },
+ "Life": {
+ "type": "string"
+ },
+ "Location": {
+ "type": "string"
+ },
+ "OwnerTag": {
+ "type": "string"
+ },
+ "StorageTag": {
+ "type": "string"
+ },
+ "UnitTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StorageTag",
+ "OwnerTag",
+ "UnitTag",
+ "Kind",
+ "Location",
+ "Life"
+ ]
+ },
+ "StorageAttachmentId": {
+ "type": "object",
+ "properties": {
+ "storagetag": {
+ "type": "string"
+ },
+ "unittag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "storagetag",
+ "unittag"
+ ]
+ },
+ "StorageAttachmentIds": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAttachmentId"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ids"
+ ]
+ },
+ "StorageAttachmentIdsResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/StorageAttachmentIds"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "StorageAttachmentIdsResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAttachmentIdsResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageAttachmentResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/StorageAttachment"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "result"
+ ]
+ },
+ "StorageAttachmentResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAttachmentResult"
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "StorageConstraints": {
+ "type": "object",
+ "properties": {
+ "Count": {
+ "type": "integer"
+ },
+ "Pool": {
+ "type": "string"
+ },
+ "Size": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Pool",
+ "Size",
+ "Count"
+ ]
+ },
+ "StoragesAddParams": {
+ "type": "object",
+ "properties": {
+ "storages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StorageAddParams"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "storages"
+ ]
+ },
+ "StringBoolResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Ok": {
+ "type": "boolean"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result",
+ "Ok"
+ ]
+ },
+ "StringBoolResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringBoolResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Result": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Result"
+ ]
+ },
+ "StringsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "StringsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "StringsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "StringsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "StringsWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/StringsWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "UnitNetworkConfig": {
+ "type": "object",
+ "properties": {
+ "BindingName": {
+ "type": "string"
+ },
+ "UnitTag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "UnitTag",
+ "BindingName"
+ ]
+ },
+ "UnitNetworkConfigResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Info": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NetworkConfig"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error",
+ "Info"
+ ]
+ },
+ "UnitNetworkConfigResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UnitNetworkConfigResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "UnitSettings": {
+ "type": "object",
+ "properties": {
+ "Version": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version"
+ ]
+ },
+ "UnitsNetworkConfig": {
+ "type": "object",
+ "properties": {
+ "Args": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UnitNetworkConfig"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Args"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "Upgrader",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "DesiredVersion": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/VersionResults"
+ }
+ }
+ },
+ "SetTools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntitiesVersion"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "Tools": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ToolsResults"
+ }
+ }
+ },
+ "WatchAPIVersion": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/NotifyWatchResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "Binary": {
+ "type": "object",
+ "properties": {
+ "Arch": {
+ "type": "string"
+ },
+ "Number": {
+ "$ref": "#/definitions/Number"
+ },
+ "Series": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Number",
+ "Series",
+ "Arch"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "EntitiesVersion": {
+ "type": "object",
+ "properties": {
+ "AgentTools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityVersion"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "AgentTools"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityVersion": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ },
+ "Tools": {
+ "$ref": "#/definitions/Version"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Tools"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "NotifyWatchResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "NotifyWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "NotifyWatcherId",
+ "Error"
+ ]
+ },
+ "NotifyWatchResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/NotifyWatchResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Number": {
+ "type": "object",
+ "properties": {
+ "Build": {
+ "type": "integer"
+ },
+ "Major": {
+ "type": "integer"
+ },
+ "Minor": {
+ "type": "integer"
+ },
+ "Patch": {
+ "type": "integer"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Major",
+ "Minor",
+ "Tag",
+ "Patch",
+ "Build"
+ ]
+ },
+ "Tools": {
+ "type": "object",
+ "properties": {
+ "sha256": {
+ "type": "string"
+ },
+ "size": {
+ "type": "integer"
+ },
+ "url": {
+ "type": "string"
+ },
+ "version": {
+ "$ref": "#/definitions/Binary"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "version",
+ "url",
+ "size"
+ ]
+ },
+ "ToolsResult": {
+ "type": "object",
+ "properties": {
+ "DisableSSLHostnameVerification": {
+ "type": "boolean"
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "ToolsList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Tools"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "ToolsList",
+ "DisableSSLHostnameVerification",
+ "Error"
+ ]
+ },
+ "ToolsResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ToolsResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Version": {
+ "type": "object",
+ "properties": {
+ "Version": {
+ "$ref": "#/definitions/Binary"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version"
+ ]
+ },
+ "VersionResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "Version": {
+ "$ref": "#/definitions/Number"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Version",
+ "Error"
+ ]
+ },
+ "VersionResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/VersionResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "UserManager",
+ "Version": 1,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "AddUser": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/AddUsers"
+ },
+ "Result": {
+ "$ref": "#/definitions/AddUserResults"
+ }
+ }
+ },
+ "CreateLocalLoginMacaroon": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/MacaroonResults"
+ }
+ }
+ },
+ "DisableUser": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "EnableUser": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/Entities"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "SetPassword": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/EntityPasswords"
+ },
+ "Result": {
+ "$ref": "#/definitions/ErrorResults"
+ }
+ }
+ },
+ "UserInfo": {
+ "type": "object",
+ "properties": {
+ "Params": {
+ "$ref": "#/definitions/UserInfoRequest"
+ },
+ "Result": {
+ "$ref": "#/definitions/UserInfoResults"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "AddUser": {
+ "type": "object",
+ "properties": {
+ "display-name": {
+ "type": "string"
+ },
+ "model-access-permission": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "shared-model-tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "username",
+ "display-name",
+ "shared-model-tags"
+ ]
+ },
+ "AddUserResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "secret-key": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "AddUserResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddUserResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "AddUsers": {
+ "type": "object",
+ "properties": {
+ "users": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/AddUser"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "users"
+ ]
+ },
+ "Entities": {
+ "type": "object",
+ "properties": {
+ "Entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Entities"
+ ]
+ },
+ "Entity": {
+ "type": "object",
+ "properties": {
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag"
+ ]
+ },
+ "EntityPassword": {
+ "type": "object",
+ "properties": {
+ "Password": {
+ "type": "string"
+ },
+ "Tag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Tag",
+ "Password"
+ ]
+ },
+ "EntityPasswords": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/EntityPassword"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Changes"
+ ]
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ErrorResult": {
+ "type": "object",
+ "properties": {
+ "Error": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Error"
+ ]
+ },
+ "ErrorResults": {
+ "type": "object",
+ "properties": {
+ "Results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ErrorResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Results"
+ ]
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MacaroonResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/Macaroon"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MacaroonResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MacaroonResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "UserInfo": {
+ "type": "object",
+ "properties": {
+ "created-by": {
+ "type": "string"
+ },
+ "date-created": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "disabled": {
+ "type": "boolean"
+ },
+ "display-name": {
+ "type": "string"
+ },
+ "last-connection": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "username": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "username",
+ "display-name",
+ "created-by",
+ "date-created",
+ "disabled"
+ ]
+ },
+ "UserInfoRequest": {
+ "type": "object",
+ "properties": {
+ "entities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Entity"
+ }
+ },
+ "include-disabled": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "entities",
+ "include-disabled"
+ ]
+ },
+ "UserInfoResult": {
+ "type": "object",
+ "properties": {
+ "error": {
+ "$ref": "#/definitions/Error"
+ },
+ "result": {
+ "$ref": "#/definitions/UserInfo"
+ }
+ },
+ "additionalProperties": false
+ },
+ "UserInfoResults": {
+ "type": "object",
+ "properties": {
+ "results": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/UserInfoResult"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "results"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ },
+ {
+ "Name": "VolumeAttachmentsWatcher",
+ "Version": 2,
+ "Schema": {
+ "type": "object",
+ "properties": {
+ "Next": {
+ "type": "object",
+ "properties": {
+ "Result": {
+ "$ref": "#/definitions/MachineStorageIdsWatchResult"
+ }
+ }
+ },
+ "Stop": {
+ "type": "object"
+ }
+ },
+ "definitions": {
+ "Error": {
+ "type": "object",
+ "properties": {
+ "Code": {
+ "type": "string"
+ },
+ "Info": {
+ "$ref": "#/definitions/ErrorInfo"
+ },
+ "Message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Message",
+ "Code"
+ ]
+ },
+ "ErrorInfo": {
+ "type": "object",
+ "properties": {
+ "Macaroon": {
+ "$ref": "#/definitions/Macaroon"
+ },
+ "MacaroonPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Macaroon": {
+ "type": "object",
+ "properties": {
+ "caveats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/caveat"
+ }
+ },
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ },
+ "id": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "sig": {
+ "type": "array",
+ "items": {
+ "type": "integer"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "location",
+ "id",
+ "caveats",
+ "sig"
+ ]
+ },
+ "MachineStorageId": {
+ "type": "object",
+ "properties": {
+ "attachmenttag": {
+ "type": "string"
+ },
+ "machinetag": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "machinetag",
+ "attachmenttag"
+ ]
+ },
+ "MachineStorageIdsWatchResult": {
+ "type": "object",
+ "properties": {
+ "Changes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MachineStorageId"
+ }
+ },
+ "Error": {
+ "$ref": "#/definitions/Error"
+ },
+ "MachineStorageIdsWatcherId": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "MachineStorageIdsWatcherId",
+ "Changes",
+ "Error"
+ ]
+ },
+ "caveat": {
+ "type": "object",
+ "properties": {
+ "caveatId": {
+ "$ref": "#/definitions/packet"
+ },
+ "location": {
+ "$ref": "#/definitions/packet"
+ },
+ "verificationId": {
+ "$ref": "#/definitions/packet"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "location",
+ "caveatId",
+ "verificationId"
+ ]
+ },
+ "packet": {
+ "type": "object",
+ "properties": {
+ "headerLen": {
+ "type": "integer"
+ },
+ "start": {
+ "type": "integer"
+ },
+ "totalLen": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "start",
+ "totalLen",
+ "headerLen"
+ ]
+ }
+ }
+ }
+ }
+]