from juju.client.facade import ReturnMapping, Type
+class ActionPrunerFacade(Type):
+ name = 'ActionPruner'
+ version = 1
+ schema = {'definitions': {'ActionPruneArgs': {'additionalProperties': False,
+ 'properties': {'max-history-mb': {'type': 'integer'},
+ 'max-history-time': {'type': 'integer'}},
+ 'required': ['max-history-time',
+ 'max-history-mb'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'}},
+ 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
+ 'type': 'object'},
+ 'Prune': {'properties': {'Params': {'$ref': '#/definitions/ActionPruneArgs'}},
+ 'type': 'object'},
+ 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ModelConfigResult)
+ async def ModelConfig(self):
+ '''
+
+ Returns -> typing.Mapping[str, typing.Any]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ActionPruner',
+ request='ModelConfig',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Prune(self, max_history_mb, max_history_time):
+ '''
+ max_history_mb : int
+ max_history_time : int
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ActionPruner',
+ request='Prune',
+ version=1,
+ params=_params)
+ _params['max-history-mb'] = max_history_mb
+ _params['max-history-time'] = max_history_time
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForModelConfigChanges(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ActionPruner',
+ request='WatchForModelConfigChanges',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class AgentToolsFacade(Type):
name = 'AgentTools'
version = 1
schema = {'properties': {'UpdateToolsAvailable': {'type': 'object'}}, 'type': 'object'}
-
+
@ReturnMapping(None)
async def UpdateToolsAvailable(self):
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='AgentTools', request='UpdateToolsAvailable', version=1, params=_params)
+ msg = dict(type='AgentTools',
+ request='UpdateToolsAvailable',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'type': 'object'},
'Stop': {'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(AllWatcherNextResults)
async def Next(self):
'''
- Returns -> typing.Sequence<+T_co>[~Delta]<~Delta>
+ Returns -> typing.Sequence[~Delta]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='AllWatcher', request='Next', version=1, params=_params)
+ msg = dict(type='AllWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='AllWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='AllWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'type': 'object'},
'Stop': {'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(ApplicationRelationsWatchResult)
async def Next(self):
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ApplicationRelationsWatcher', request='Next', version=1, params=_params)
+ msg = dict(type='ApplicationRelationsWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ApplicationRelationsWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='ApplicationRelationsWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'Watch': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(ErrorResults)
async def Rescale(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ApplicationScaler', request='Rescale', version=1, params=_params)
+ msg = dict(type='ApplicationScaler',
+ request='Rescale',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
async def Watch(self):
'''
- Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')]
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ApplicationScaler', request='Watch', version=1, params=_params)
+ msg = dict(type='ApplicationScaler',
+ request='Watch',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}},
'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(BackupsMetadataResult)
async def Create(self, notes):
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='Create', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='Create',
+ version=1,
+ params=_params)
_params['notes'] = notes
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='FinishRestore', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='FinishRestore',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='Info', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='Info',
+ version=1,
+ params=_params)
_params['id'] = id_
reply = await self.rpc(msg)
return reply
async def List(self):
'''
- Returns -> typing.Sequence<+T_co>[~BackupsMetadataResult]<~BackupsMetadataResult>
+ Returns -> typing.Sequence[~BackupsMetadataResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='List', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='List',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='PrepareRestore', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='PrepareRestore',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='Remove', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='Remove',
+ version=1,
+ params=_params)
_params['id'] = id_
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Backups', request='Restore', version=1, params=_params)
+ msg = dict(type='Backups',
+ request='Restore',
+ version=1,
+ params=_params)
_params['backup-id'] = backup_id
reply = await self.rpc(msg)
return reply
'Result': {'$ref': '#/definitions/BundleChangesResults'}},
'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(BundleChangesResults)
async def GetChanges(self, yaml):
'''
yaml : str
- Returns -> typing.Sequence<+T_co>[~BundleChange]<~BundleChange>
+ Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Bundle', request='GetChanges', version=1, params=_params)
+ msg = dict(type='Bundle',
+ request='GetChanges',
+ version=1,
+ params=_params)
_params['yaml'] = yaml
reply = await self.rpc(msg)
return reply
-class ClientFacade(Type):
- name = 'Client'
+class CAASAgentFacade(Type):
+ name = 'CAASAgent'
version = 1
- schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
- 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
- 'type': 'array'},
- 'type': 'array'}},
- 'required': ['servers'],
- 'type': 'object'},
- 'AddCharm': {'additionalProperties': False,
- 'properties': {'channel': {'type': 'string'},
- 'url': {'type': 'string'}},
- 'required': ['url', 'channel'],
- 'type': 'object'},
- 'AddCharmWithAuthorization': {'additionalProperties': False,
- 'properties': {'channel': {'type': 'string'},
- 'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'url': {'type': 'string'}},
- 'required': ['url',
- 'channel',
- 'macaroon'],
- 'type': 'object'},
- 'AddMachineParams': {'additionalProperties': False,
- 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
- 'type': 'array'},
- 'constraints': {'$ref': '#/definitions/Value'},
- 'container-type': {'type': 'string'},
- 'disks': {'items': {'$ref': '#/definitions/Constraints'},
- 'type': 'array'},
- 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'},
- 'instance-id': {'type': 'string'},
- 'jobs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'nonce': {'type': 'string'},
- 'parent-id': {'type': 'string'},
- 'placement': {'$ref': '#/definitions/Placement'},
- 'series': {'type': 'string'}},
- 'required': ['series',
- 'constraints',
- 'jobs',
- 'parent-id',
- 'container-type',
- 'instance-id',
- 'nonce',
- 'hardware-characteristics',
- 'addresses'],
- 'type': 'object'},
- 'AddMachines': {'additionalProperties': False,
- 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'},
- 'type': 'array'}},
- 'required': ['params'],
- 'type': 'object'},
- 'AddMachinesResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'machine': {'type': 'string'}},
- 'required': ['machine'],
- 'type': 'object'},
- 'AddMachinesResults': {'additionalProperties': False,
- 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'},
- 'type': 'array'}},
- 'required': ['machines'],
- 'type': 'object'},
- 'Address': {'additionalProperties': False,
- 'properties': {'scope': {'type': 'string'},
- 'space-name': {'type': 'string'},
- 'type': {'type': 'string'},
- 'value': {'type': 'string'}},
- 'required': ['value', 'type', 'scope'],
- 'type': 'object'},
- 'AgentVersionResult': {'additionalProperties': False,
- 'properties': {'version': {'$ref': '#/definitions/Number'}},
- 'required': ['version'],
- 'type': 'object'},
- 'AllWatcherId': {'additionalProperties': False,
- 'properties': {'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id'],
- 'type': 'object'},
- 'ApplicationStatus': {'additionalProperties': False,
- 'properties': {'can-upgrade-to': {'type': 'string'},
- 'charm': {'type': 'string'},
- 'err': {'additionalProperties': True,
+ schema = {'definitions': {'CloudCredential': {'additionalProperties': False,
+ 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}},
'type': 'object'},
- 'exposed': {'type': 'boolean'},
- 'life': {'type': 'string'},
- 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}},
- 'type': 'object'},
- 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'series': {'type': 'string'},
- 'status': {'$ref': '#/definitions/DetailedStatus'},
- 'subordinate-to': {'items': {'type': 'string'},
- 'type': 'array'},
- 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
- 'type': 'object'},
- 'workload-version': {'type': 'string'}},
- 'required': ['charm',
- 'series',
- 'exposed',
- 'life',
- 'relations',
- 'can-upgrade-to',
- 'subordinate-to',
- 'units',
- 'meter-statuses',
- 'status',
- 'workload-version'],
- 'type': 'object'},
- 'Binary': {'additionalProperties': False,
- 'properties': {'Arch': {'type': 'string'},
- 'Number': {'$ref': '#/definitions/Number'},
- 'Series': {'type': 'string'}},
- 'required': ['Number', 'Series', 'Arch'],
+ 'auth-type': {'type': 'string'},
+ 'redacted': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['auth-type'],
+ 'type': 'object'},
+ 'CloudSpec': {'additionalProperties': False,
+ 'properties': {'cacertificates': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'credential': {'$ref': '#/definitions/CloudCredential'},
+ 'endpoint': {'type': 'string'},
+ 'identity-endpoint': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'region': {'type': 'string'},
+ 'storage-endpoint': {'type': 'string'},
+ 'type': {'type': 'string'}},
+ 'required': ['type', 'name'],
+ 'type': 'object'},
+ 'CloudSpecResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/CloudSpec'}},
+ 'type': 'object'},
+ 'CloudSpecResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
'type': 'object'},
- 'BundleChange': {'additionalProperties': False,
- 'properties': {'args': {'items': {'additionalProperties': True,
- 'type': 'object'},
- 'type': 'array'},
- 'id': {'type': 'string'},
- 'method': {'type': 'string'},
- 'requires': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['id',
- 'method',
- 'args',
- 'requires'],
- 'type': 'object'},
- 'BundleChangesParams': {'additionalProperties': False,
- 'properties': {'yaml': {'type': 'string'}},
- 'required': ['yaml'],
- 'type': 'object'},
- 'BundleChangesResults': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'},
- 'type': 'array'},
- 'errors': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'BytesResult': {'additionalProperties': False,
- 'properties': {'result': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['result'],
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelTag': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'}},
+ 'properties': {'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/CloudSpecResults'}},
+ 'type': 'object'},
+ 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'},
+ 'Result': {'$ref': '#/definitions/CloudSpecResult'}},
'type': 'object'},
- 'ConfigValue': {'additionalProperties': False,
- 'properties': {'source': {'type': 'string'},
- 'value': {'additionalProperties': True,
- 'type': 'object'}},
- 'required': ['value', 'source'],
- 'type': 'object'},
- 'Constraints': {'additionalProperties': False,
- 'properties': {'Count': {'type': 'integer'},
- 'Pool': {'type': 'string'},
- 'Size': {'type': 'integer'}},
- 'required': ['Pool', 'Size', 'Count'],
+ 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
+ 'type': 'object'},
+ 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(CloudSpecResults)
+ async def CloudSpec(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudSpecResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASAgent',
+ request='CloudSpec',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(CloudSpecResult)
+ async def GetCloudSpec(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASAgent',
+ request='GetCloudSpec',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelConfigResult)
+ async def ModelConfig(self):
+ '''
+
+ Returns -> typing.Mapping[str, typing.Any]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASAgent',
+ request='ModelConfig',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForModelConfigChanges(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASAgent',
+ request='WatchForModelConfigChanges',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CAASFirewallerFacade(Type):
+ name = 'CAASFirewaller'
+ version = 1
+ schema = {'definitions': {'ApplicationGetConfigResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'BoolResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'boolean'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'BoolResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
'type': 'object'},
- 'DestroyMachines': {'additionalProperties': False,
- 'properties': {'force': {'type': 'boolean'},
- 'machine-names': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['machine-names', 'force'],
- 'type': 'object'},
- 'DetailedStatus': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'ConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
'type': 'object'}},
'type': 'object'},
- 'err': {'additionalProperties': True,
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'kind': {'type': 'string'},
- 'life': {'type': 'string'},
- 'since': {'format': 'date-time',
- 'type': 'string'},
- 'status': {'type': 'string'},
- 'version': {'type': 'string'}},
- 'required': ['status',
- 'info',
- 'data',
- 'since',
- 'kind',
- 'version',
- 'life'],
- 'type': 'object'},
- 'EndpointStatus': {'additionalProperties': False,
- 'properties': {'application': {'type': 'string'},
- 'name': {'type': 'string'},
- 'role': {'type': 'string'},
- 'subordinate': {'type': 'boolean'}},
- 'required': ['application',
- 'name',
- 'role',
- 'subordinate'],
- 'type': 'object'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['config'],
+ 'type': 'object'},
'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'object'},
- 'EntityStatus': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'since': {'format': 'date-time',
- 'type': 'string'},
- 'status': {'type': 'string'}},
- 'required': ['status', 'info', 'since'],
- 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'FindToolsParams': {'additionalProperties': False,
- 'properties': {'arch': {'type': 'string'},
- 'major': {'type': 'integer'},
- 'minor': {'type': 'integer'},
- 'number': {'$ref': '#/definitions/Number'},
- 'series': {'type': 'string'}},
- 'required': ['number',
- 'major',
- 'minor',
- 'arch',
- 'series'],
- 'type': 'object'},
- 'FindToolsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'list': {'items': {'$ref': '#/definitions/Tools'},
- 'type': 'array'}},
- 'required': ['list'],
- 'type': 'object'},
- 'FullStatus': {'additionalProperties': False,
- 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}},
- 'type': 'object'},
- 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
- 'type': 'object'},
- 'model': {'$ref': '#/definitions/ModelStatusInfo'},
- 'relations': {'items': {'$ref': '#/definitions/RelationStatus'},
- 'type': 'array'},
- 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}},
- 'type': 'object'}},
- 'required': ['model',
- 'machines',
- 'applications',
- 'remote-applications',
- 'relations'],
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
'type': 'object'},
- 'GetConstraintsResults': {'additionalProperties': False,
- 'properties': {'constraints': {'$ref': '#/definitions/Value'}},
- 'required': ['constraints'],
- 'type': 'object'},
- 'HardwareCharacteristics': {'additionalProperties': False,
- 'properties': {'arch': {'type': 'string'},
- 'availability-zone': {'type': 'string'},
- 'cpu-cores': {'type': 'integer'},
- 'cpu-power': {'type': 'integer'},
- 'mem': {'type': 'integer'},
- 'root-disk': {'type': 'integer'},
- 'tags': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'History': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'},
- 'type': 'array'}},
- 'required': ['statuses'],
- 'type': 'object'},
- 'HostPort': {'additionalProperties': False,
- 'properties': {'Address': {'$ref': '#/definitions/Address'},
- 'port': {'type': 'integer'}},
- 'required': ['Address', 'port'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'MachineHardware': {'additionalProperties': False,
- 'properties': {'arch': {'type': 'string'},
- 'availability-zone': {'type': 'string'},
- 'cores': {'type': 'integer'},
- 'cpu-power': {'type': 'integer'},
- 'mem': {'type': 'integer'},
- 'root-disk': {'type': 'integer'},
- 'tags': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'MachineStatus': {'additionalProperties': False,
- 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'},
- 'constraints': {'type': 'string'},
- 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
- 'type': 'object'},
- 'dns-name': {'type': 'string'},
- 'hardware': {'type': 'string'},
- 'has-vote': {'type': 'boolean'},
- 'id': {'type': 'string'},
- 'instance-id': {'type': 'string'},
- 'instance-status': {'$ref': '#/definitions/DetailedStatus'},
- 'ip-addresses': {'items': {'type': 'string'},
- 'type': 'array'},
- 'jobs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}},
- 'type': 'object'},
- 'series': {'type': 'string'},
- 'wants-vote': {'type': 'boolean'}},
- 'required': ['agent-status',
- 'instance-status',
- 'dns-name',
- 'instance-id',
- 'series',
- 'id',
- 'containers',
- 'constraints',
- 'hardware',
- 'jobs',
- 'has-vote',
- 'wants-vote'],
- 'type': 'object'},
- 'MeterStatus': {'additionalProperties': False,
- 'properties': {'color': {'type': 'string'},
- 'message': {'type': 'string'}},
- 'required': ['color', 'message'],
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
'type': 'object'},
- 'ModelConfigResults': {'additionalProperties': False,
- 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
- 'type': 'object'}},
- 'required': ['config'],
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
'type': 'object'},
- 'ModelInfo': {'additionalProperties': False,
- 'properties': {'agent-version': {'$ref': '#/definitions/Number'},
- 'cloud-credential-tag': {'type': 'string'},
- 'cloud-region': {'type': 'string'},
- 'cloud-tag': {'type': 'string'},
- 'controller-uuid': {'type': 'string'},
- 'default-series': {'type': 'string'},
- 'life': {'type': 'string'},
- 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'},
- 'type': 'array'},
- 'migration': {'$ref': '#/definitions/ModelMigrationStatus'},
- 'name': {'type': 'string'},
- 'owner-tag': {'type': 'string'},
- 'provider-type': {'type': 'string'},
- 'sla': {'$ref': '#/definitions/ModelSLAInfo'},
- 'status': {'$ref': '#/definitions/EntityStatus'},
- 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'},
- 'type': 'array'},
- 'uuid': {'type': 'string'}},
- 'required': ['name',
- 'uuid',
- 'controller-uuid',
- 'cloud-tag',
- 'owner-tag',
- 'life',
- 'users',
- 'machines',
- 'sla',
- 'agent-version'],
- 'type': 'object'},
- 'ModelMachineInfo': {'additionalProperties': False,
- 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'},
- 'has-vote': {'type': 'boolean'},
- 'id': {'type': 'string'},
- 'instance-id': {'type': 'string'},
- 'status': {'type': 'string'},
- 'wants-vote': {'type': 'boolean'}},
- 'required': ['id'],
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'}},
+ 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}},
+ 'type': 'object'},
+ 'IsExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/BoolResults'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'},
+ 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ApplicationGetConfigResults)
+ async def ApplicationsConfig(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ConfigResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASFirewaller',
+ request='ApplicationsConfig',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BoolResults)
+ async def IsExposed(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~BoolResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASFirewaller',
+ request='IsExposed',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASFirewaller',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def Watch(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASFirewaller',
+ request='Watch',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResult)
+ async def WatchApplications(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASFirewaller',
+ request='WatchApplications',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CAASOperatorFacade(Type):
+ name = 'CAASOperator'
+ version = 1
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'ApplicationCharm': {'additionalProperties': False,
+ 'properties': {'charm-modified-version': {'type': 'integer'},
+ 'force-upgrade': {'type': 'boolean'},
+ 'sha256': {'type': 'string'},
+ 'url': {'type': 'string'}},
+ 'required': ['url',
+ 'sha256',
+ 'charm-modified-version'],
'type': 'object'},
- 'ModelMigrationStatus': {'additionalProperties': False,
- 'properties': {'end': {'format': 'date-time',
- 'type': 'string'},
- 'start': {'format': 'date-time',
- 'type': 'string'},
- 'status': {'type': 'string'}},
- 'required': ['status', 'start'],
- 'type': 'object'},
- 'ModelSLA': {'additionalProperties': False,
- 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
- 'creds': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['ModelSLAInfo', 'creds'],
+ 'ApplicationCharmResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/ApplicationCharm'}},
+ 'type': 'object'},
+ 'ApplicationCharmResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationCharmResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Binary': {'additionalProperties': False,
+ 'properties': {'Arch': {'type': 'string'},
+ 'Number': {'$ref': '#/definitions/Number'},
+ 'Series': {'type': 'string'}},
+ 'required': ['Number', 'Series', 'Arch'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
'type': 'object'},
- 'ModelSLAInfo': {'additionalProperties': False,
- 'properties': {'level': {'type': 'string'},
- 'owner': {'type': 'string'}},
- 'required': ['level', 'owner'],
+ 'EntitiesVersion': {'additionalProperties': False,
+ 'properties': {'agent-tools': {'items': {'$ref': '#/definitions/EntityVersion'},
+ 'type': 'array'}},
+ 'required': ['agent-tools'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
+ 'EntityString': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['tag', 'value'],
'type': 'object'},
- 'ModelSet': {'additionalProperties': False,
- 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'}},
- 'required': ['config'],
+ 'EntityVersion': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'},
+ 'tools': {'$ref': '#/definitions/Version'}},
+ 'required': ['tag', 'tools'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
'type': 'object'},
- 'ModelStatusInfo': {'additionalProperties': False,
- 'properties': {'available-version': {'type': 'string'},
- 'cloud-tag': {'type': 'string'},
- 'meter-status': {'$ref': '#/definitions/MeterStatus'},
- 'model-status': {'$ref': '#/definitions/DetailedStatus'},
- 'name': {'type': 'string'},
- 'region': {'type': 'string'},
- 'sla': {'type': 'string'},
- 'version': {'type': 'string'}},
- 'required': ['name',
- 'cloud-tag',
- 'version',
- 'available-version',
- 'model-status',
- 'meter-status',
- 'sla'],
- 'type': 'object'},
- 'ModelUnset': {'additionalProperties': False,
- 'properties': {'keys': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['keys'],
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
'type': 'object'},
- 'ModelUserInfo': {'additionalProperties': False,
- 'properties': {'access': {'type': 'string'},
- 'display-name': {'type': 'string'},
- 'last-connection': {'format': 'date-time',
- 'type': 'string'},
- 'user': {'type': 'string'}},
- 'required': ['user',
- 'display-name',
- 'last-connection',
- 'access'],
- 'type': 'object'},
- 'ModelUserInfoResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'$ref': '#/definitions/ModelUserInfo'}},
- 'type': 'object'},
- 'ModelUserInfoResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'NetworkInterface': {'additionalProperties': False,
- 'properties': {'dns-nameservers': {'items': {'type': 'string'},
- 'type': 'array'},
- 'gateway': {'type': 'string'},
- 'ip-addresses': {'items': {'type': 'string'},
- 'type': 'array'},
- 'is-up': {'type': 'boolean'},
- 'mac-address': {'type': 'string'},
- 'space': {'type': 'string'}},
- 'required': ['ip-addresses',
- 'mac-address',
- 'is-up'],
- 'type': 'object'},
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'uuid': {'type': 'string'}},
+ 'required': ['name', 'uuid', 'type'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'Number': {'additionalProperties': False,
'properties': {'Build': {'type': 'integer'},
'Major': {'type': 'integer'},
'Patch',
'Build'],
'type': 'object'},
- 'Placement': {'additionalProperties': False,
- 'properties': {'directive': {'type': 'string'},
- 'scope': {'type': 'string'}},
- 'required': ['scope', 'directive'],
+ 'SetPodSpecParams': {'additionalProperties': False,
+ 'properties': {'specs': {'items': {'$ref': '#/definitions/EntityString'},
+ 'type': 'array'}},
+ 'required': ['specs'],
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
'type': 'object'},
- 'PrivateAddress': {'additionalProperties': False,
- 'properties': {'target': {'type': 'string'}},
- 'required': ['target'],
- 'type': 'object'},
- 'PrivateAddressResults': {'additionalProperties': False,
- 'properties': {'private-address': {'type': 'string'}},
- 'required': ['private-address'],
- 'type': 'object'},
- 'ProvisioningScriptParams': {'additionalProperties': False,
- 'properties': {'data-dir': {'type': 'string'},
- 'disable-package-commands': {'type': 'boolean'},
- 'machine-id': {'type': 'string'},
- 'nonce': {'type': 'string'}},
- 'required': ['machine-id',
- 'nonce',
- 'data-dir',
- 'disable-package-commands'],
- 'type': 'object'},
- 'ProvisioningScriptResult': {'additionalProperties': False,
- 'properties': {'script': {'type': 'string'}},
- 'required': ['script'],
- 'type': 'object'},
- 'PublicAddress': {'additionalProperties': False,
- 'properties': {'target': {'type': 'string'}},
- 'required': ['target'],
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
'type': 'object'},
- 'PublicAddressResults': {'additionalProperties': False,
- 'properties': {'public-address': {'type': 'string'}},
- 'required': ['public-address'],
- 'type': 'object'},
- 'RelationStatus': {'additionalProperties': False,
- 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'},
- 'type': 'array'},
- 'id': {'type': 'integer'},
- 'interface': {'type': 'string'},
- 'key': {'type': 'string'},
- 'scope': {'type': 'string'}},
- 'required': ['id',
- 'key',
- 'interface',
- 'scope',
- 'endpoints'],
- 'type': 'object'},
- 'RemoteApplicationStatus': {'additionalProperties': False,
- 'properties': {'application-name': {'type': 'string'},
- 'application-url': {'type': 'string'},
- 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'},
- 'type': 'array'},
- 'err': {'additionalProperties': True,
- 'type': 'object'},
- 'life': {'type': 'string'},
- 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'status': {'$ref': '#/definitions/DetailedStatus'}},
- 'required': ['application-url',
- 'application-name',
- 'endpoints',
- 'life',
- 'relations',
- 'status'],
- 'type': 'object'},
- 'RemoteEndpoint': {'additionalProperties': False,
- 'properties': {'interface': {'type': 'string'},
- 'limit': {'type': 'integer'},
- 'name': {'type': 'string'},
- 'role': {'type': 'string'},
- 'scope': {'type': 'string'}},
- 'required': ['name',
- 'role',
- 'interface',
- 'limit',
- 'scope'],
- 'type': 'object'},
- 'ResolveCharmResult': {'additionalProperties': False,
- 'properties': {'error': {'type': 'string'},
- 'url': {'type': 'string'}},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
'type': 'object'},
- 'ResolveCharmResults': {'additionalProperties': False,
- 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'},
- 'type': 'array'}},
- 'required': ['urls'],
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
'type': 'object'},
- 'ResolveCharms': {'additionalProperties': False,
- 'properties': {'references': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['references'],
- 'type': 'object'},
- 'Resolved': {'additionalProperties': False,
- 'properties': {'retry': {'type': 'boolean'},
- 'unit-name': {'type': 'string'}},
- 'required': ['unit-name', 'retry'],
+ 'Version': {'additionalProperties': False,
+ 'properties': {'version': {'$ref': '#/definitions/Binary'}},
+ 'required': ['version'],
+ 'type': 'object'}},
+ 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
+ 'type': 'object'},
+ 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'Charm': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ApplicationCharmResults'}},
+ 'type': 'object'},
+ 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
'type': 'object'},
- 'SetConstraints': {'additionalProperties': False,
- 'properties': {'application': {'type': 'string'},
- 'constraints': {'$ref': '#/definitions/Value'}},
- 'required': ['application', 'constraints'],
- 'type': 'object'},
- 'SetModelAgentVersion': {'additionalProperties': False,
- 'properties': {'version': {'$ref': '#/definitions/Number'}},
- 'required': ['version'],
- 'type': 'object'},
- 'StatusHistoryFilter': {'additionalProperties': False,
- 'properties': {'date': {'format': 'date-time',
- 'type': 'string'},
- 'delta': {'type': 'integer'},
- 'exclude': {'items': {'type': 'string'},
- 'type': 'array'},
- 'size': {'type': 'integer'}},
- 'required': ['size',
- 'date',
- 'delta',
- 'exclude'],
- 'type': 'object'},
- 'StatusHistoryRequest': {'additionalProperties': False,
- 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'},
- 'historyKind': {'type': 'string'},
- 'size': {'type': 'integer'},
- 'tag': {'type': 'string'}},
- 'required': ['historyKind',
- 'size',
- 'filter',
- 'tag'],
- 'type': 'object'},
- 'StatusHistoryRequests': {'additionalProperties': False,
- 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'},
- 'type': 'array'}},
- 'required': ['requests'],
+ 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetPodSpec': {'properties': {'Params': {'$ref': '#/definitions/SetPodSpecParams'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetTools': {'properties': {'Params': {'$ref': '#/definitions/EntitiesVersion'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'},
+ 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'},
+ 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(StringsResult)
+ async def APIAddresses(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='APIAddresses',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
+ '''
+
+ Returns -> typing.Sequence[~HostPort]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='APIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ApplicationCharmResults)
+ async def Charm(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ApplicationCharmResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='Charm',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelResult)
+ async def CurrentModel(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='CurrentModel',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResult)
+ async def ModelUUID(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='ModelUUID',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def Remove(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='Remove',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetPodSpec(self, specs):
+ '''
+ specs : typing.Sequence[~EntityString]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='SetPodSpec',
+ version=1,
+ params=_params)
+ _params['specs'] = specs
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetStatus(self, entities):
+ '''
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='SetStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetTools(self, agent_tools):
+ '''
+ agent_tools : typing.Sequence[~EntityVersion]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='SetTools',
+ version=1,
+ params=_params)
+ _params['agent-tools'] = agent_tools
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def Watch(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='Watch',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchAPIHostPorts(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='WatchAPIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResults)
+ async def WatchUnits(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperator',
+ request='WatchUnits',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CAASOperatorProvisionerFacade(Type):
+ name = 'CAASOperatorProvisioner'
+ version = 1
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityPassword': {'additionalProperties': False,
+ 'properties': {'password': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'password'],
+ 'type': 'object'},
+ 'EntityPasswords': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'},
+ 'type': 'array'}},
+ 'required': ['changes'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
+ 'type': 'object'},
+ 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False,
+ 'properties': {'mount-point': {'type': 'string'},
+ 'provider': {'type': 'string'},
+ 'read-only': {'type': 'boolean'}},
+ 'required': ['provider'],
+ 'type': 'object'},
+ 'KubernetesFilesystemParams': {'additionalProperties': False,
+ 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'},
+ 'attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'provider': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'storagename': {'type': 'string'},
+ 'tags': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['storagename',
+ 'size',
+ 'provider'],
+ 'type': 'object'},
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
+ 'type': 'object'},
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'Number': {'additionalProperties': False,
+ 'properties': {'Build': {'type': 'integer'},
+ 'Major': {'type': 'integer'},
+ 'Minor': {'type': 'integer'},
+ 'Patch': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['Major',
+ 'Minor',
+ 'Tag',
+ 'Patch',
+ 'Build'],
+ 'type': 'object'},
+ 'OperatorProvisioningInfo': {'additionalProperties': False,
+ 'properties': {'api-addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'charm-storage': {'$ref': '#/definitions/KubernetesFilesystemParams'},
+ 'image-path': {'type': 'string'},
+ 'tags': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['image-path',
+ 'version',
+ 'api-addresses',
+ 'charm-storage'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'}},
+ 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
+ 'type': 'object'},
+ 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'OperatorProvisioningInfo': {'properties': {'Result': {'$ref': '#/definitions/OperatorProvisioningInfo'}},
+ 'type': 'object'},
+ 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'},
+ 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(StringsResult)
+ async def APIAddresses(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='APIAddresses',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
+ '''
+
+ Returns -> typing.Sequence[~HostPort]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='APIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResult)
+ async def ModelUUID(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='ModelUUID',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(OperatorProvisioningInfo)
+ async def OperatorProvisioningInfo(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('KubernetesFilesystemParams'), str, typing.Mapping[str, str], _ForwardRef('Number')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='OperatorProvisioningInfo',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetPasswords(self, changes):
+ '''
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='SetPasswords',
+ version=1,
+ params=_params)
+ _params['changes'] = changes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchAPIHostPorts(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='WatchAPIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResult)
+ async def WatchApplications(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASOperatorProvisioner',
+ request='WatchApplications',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CAASUnitProvisionerFacade(Type):
+ name = 'CAASUnitProvisioner'
+ version = 1
+ schema = {'definitions': {'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'ApplicationGetConfigResults': {'additionalProperties': False,
+ 'properties': {'Results': {'items': {'$ref': '#/definitions/ConfigResult'},
+ 'type': 'array'}},
+ 'required': ['Results'],
+ 'type': 'object'},
+ 'ApplicationUnitParams': {'additionalProperties': False,
+ 'properties': {'address': {'type': 'string'},
+ 'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'filesystem-info': {'items': {'$ref': '#/definitions/KubernetesFilesystemInfo'},
+ 'type': 'array'},
+ 'info': {'type': 'string'},
+ 'ports': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'provider-id': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'unit-tag': {'type': 'string'}},
+ 'required': ['provider-id',
+ 'unit-tag',
+ 'address',
+ 'ports',
+ 'status',
+ 'info'],
+ 'type': 'object'},
+ 'ConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'IntResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'integer'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'IntResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'KubernetesDeviceParams': {'additionalProperties': False,
+ 'properties': {'Attributes': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'Count': {'type': 'integer'},
+ 'Type': {'type': 'string'}},
+ 'required': ['Type',
+ 'Count',
+ 'Attributes'],
+ 'type': 'object'},
+ 'KubernetesFilesystemAttachmentParams': {'additionalProperties': False,
+ 'properties': {'mount-point': {'type': 'string'},
+ 'provider': {'type': 'string'},
+ 'read-only': {'type': 'boolean'}},
+ 'required': ['provider'],
+ 'type': 'object'},
+ 'KubernetesFilesystemInfo': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'filesystem-id': {'type': 'string'},
+ 'info': {'type': 'string'},
+ 'mount-point': {'type': 'string'},
+ 'pool': {'type': 'string'},
+ 'read-only': {'type': 'boolean'},
+ 'size': {'type': 'integer'},
+ 'status': {'type': 'string'},
+ 'storagename': {'type': 'string'},
+ 'volume': {'$ref': '#/definitions/KubernetesVolumeInfo'}},
+ 'required': ['storagename',
+ 'pool',
+ 'size',
+ 'filesystem-id',
+ 'status',
+ 'info',
+ 'volume'],
+ 'type': 'object'},
+ 'KubernetesFilesystemParams': {'additionalProperties': False,
+ 'properties': {'attachment': {'$ref': '#/definitions/KubernetesFilesystemAttachmentParams'},
+ 'attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'provider': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'storagename': {'type': 'string'},
+ 'tags': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['storagename',
+ 'size',
+ 'provider'],
+ 'type': 'object'},
+ 'KubernetesProvisioningInfo': {'additionalProperties': False,
+ 'properties': {'constraints': {'$ref': '#/definitions/Value'},
+ 'devices': {'items': {'$ref': '#/definitions/KubernetesDeviceParams'},
+ 'type': 'array'},
+ 'filesystems': {'items': {'$ref': '#/definitions/KubernetesFilesystemParams'},
+ 'type': 'array'},
+ 'placement': {'type': 'string'},
+ 'pod-spec': {'type': 'string'},
+ 'tags': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'volumes': {'items': {'$ref': '#/definitions/KubernetesVolumeParams'},
+ 'type': 'array'}},
+ 'required': ['pod-spec',
+ 'constraints'],
+ 'type': 'object'},
+ 'KubernetesProvisioningInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/KubernetesProvisioningInfo'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'KubernetesProvisioningInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/KubernetesProvisioningInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'KubernetesVolumeAttachmentParams': {'additionalProperties': False,
+ 'properties': {'provider': {'type': 'string'},
+ 'read-only': {'type': 'boolean'}},
+ 'required': ['provider'],
+ 'type': 'object'},
+ 'KubernetesVolumeInfo': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'persistent': {'type': 'boolean'},
+ 'pool': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'status': {'type': 'string'},
+ 'volume-id': {'type': 'string'}},
+ 'required': ['volume-id',
+ 'size',
+ 'persistent',
+ 'status',
+ 'info'],
+ 'type': 'object'},
+ 'KubernetesVolumeParams': {'additionalProperties': False,
+ 'properties': {'attachment': {'$ref': '#/definitions/KubernetesVolumeAttachmentParams'},
+ 'attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'provider': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'storagename': {'type': 'string'},
+ 'tags': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['storagename',
+ 'size',
+ 'provider'],
+ 'type': 'object'},
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
+ 'type': 'object'},
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'UpdateApplicationServiceArg': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
+ 'type': 'array'},
+ 'application-tag': {'type': 'string'},
+ 'provider-id': {'type': 'string'}},
+ 'required': ['application-tag',
+ 'provider-id',
+ 'addresses'],
+ 'type': 'object'},
+ 'UpdateApplicationServiceArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationServiceArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'UpdateApplicationUnitArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateApplicationUnits'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'UpdateApplicationUnits': {'additionalProperties': False,
+ 'properties': {'application-tag': {'type': 'string'},
+ 'units': {'items': {'$ref': '#/definitions/ApplicationUnitParams'},
+ 'type': 'array'}},
+ 'required': ['application-tag',
+ 'units'],
+ 'type': 'object'},
+ 'Value': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'container': {'type': 'string'},
+ 'cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'instance-type': {'type': 'string'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'spaces': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'virt-type': {'type': 'string'},
+ 'zones': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'properties': {'ApplicationsConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ApplicationGetConfigResults'}},
+ 'type': 'object'},
+ 'ApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/IntResults'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'ProvisioningInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/KubernetesProvisioningInfoResults'}},
+ 'type': 'object'},
+ 'SetOperatorStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UpdateApplicationsService': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationServiceArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UpdateApplicationsUnits': {'properties': {'Params': {'$ref': '#/definitions/UpdateApplicationUnitArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'},
+ 'WatchApplicationsScale': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'},
+ 'WatchPodSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ApplicationGetConfigResults)
+ async def ApplicationsConfig(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ConfigResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='ApplicationsConfig',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(IntResults)
+ async def ApplicationsScale(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~IntResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='ApplicationsScale',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(KubernetesProvisioningInfoResults)
+ async def ProvisioningInfo(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~KubernetesProvisioningInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='ProvisioningInfo',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetOperatorStatus(self, entities):
+ '''
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='SetOperatorStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def UpdateApplicationsService(self, args):
+ '''
+ args : typing.Sequence[~UpdateApplicationServiceArg]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='UpdateApplicationsService',
+ version=1,
+ params=_params)
+ _params['args'] = args
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def UpdateApplicationsUnits(self, args):
+ '''
+ args : typing.Sequence[~UpdateApplicationUnits]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='UpdateApplicationsUnits',
+ version=1,
+ params=_params)
+ _params['args'] = args
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResult)
+ async def WatchApplications(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='WatchApplications',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchApplicationsScale(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='WatchApplicationsScale',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchPodSpec(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CAASUnitProvisioner',
+ request='WatchPodSpec',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class ClientFacade(Type):
+ name = 'Client'
+ version = 1
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'AddCharm': {'additionalProperties': False,
+ 'properties': {'channel': {'type': 'string'},
+ 'url': {'type': 'string'}},
+ 'required': ['url', 'channel'],
+ 'type': 'object'},
+ 'AddCharmWithAuthorization': {'additionalProperties': False,
+ 'properties': {'channel': {'type': 'string'},
+ 'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'url': {'type': 'string'}},
+ 'required': ['url',
+ 'channel',
+ 'macaroon'],
+ 'type': 'object'},
+ 'AddMachineParams': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
+ 'type': 'array'},
+ 'constraints': {'$ref': '#/definitions/Value'},
+ 'container-type': {'type': 'string'},
+ 'disks': {'items': {'$ref': '#/definitions/Constraints'},
+ 'type': 'array'},
+ 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'},
+ 'instance-id': {'type': 'string'},
+ 'jobs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'nonce': {'type': 'string'},
+ 'parent-id': {'type': 'string'},
+ 'placement': {'$ref': '#/definitions/Placement'},
+ 'series': {'type': 'string'}},
+ 'required': ['series',
+ 'constraints',
+ 'jobs',
+ 'parent-id',
+ 'container-type',
+ 'instance-id',
+ 'nonce',
+ 'hardware-characteristics',
+ 'addresses'],
+ 'type': 'object'},
+ 'AddMachines': {'additionalProperties': False,
+ 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'},
+ 'type': 'array'}},
+ 'required': ['params'],
+ 'type': 'object'},
+ 'AddMachinesResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'machine': {'type': 'string'}},
+ 'required': ['machine'],
+ 'type': 'object'},
+ 'AddMachinesResults': {'additionalProperties': False,
+ 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'},
+ 'type': 'array'}},
+ 'required': ['machines'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'AgentVersionResult': {'additionalProperties': False,
+ 'properties': {'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['version'],
+ 'type': 'object'},
+ 'AllWatcherId': {'additionalProperties': False,
+ 'properties': {'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'ApplicationStatus': {'additionalProperties': False,
+ 'properties': {'can-upgrade-to': {'type': 'string'},
+ 'charm': {'type': 'string'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'exposed': {'type': 'boolean'},
+ 'life': {'type': 'string'},
+ 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}},
+ 'type': 'object'},
+ 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'series': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/DetailedStatus'},
+ 'subordinate-to': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
+ 'type': 'object'},
+ 'workload-version': {'type': 'string'}},
+ 'required': ['charm',
+ 'series',
+ 'exposed',
+ 'life',
+ 'relations',
+ 'can-upgrade-to',
+ 'subordinate-to',
+ 'units',
+ 'meter-statuses',
+ 'status',
+ 'workload-version'],
+ 'type': 'object'},
+ 'Binary': {'additionalProperties': False,
+ 'properties': {'Arch': {'type': 'string'},
+ 'Number': {'$ref': '#/definitions/Number'},
+ 'Series': {'type': 'string'}},
+ 'required': ['Number', 'Series', 'Arch'],
+ 'type': 'object'},
+ 'BundleChange': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'additionalProperties': True,
+ 'type': 'object'},
+ 'type': 'array'},
+ 'id': {'type': 'string'},
+ 'method': {'type': 'string'},
+ 'requires': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['id',
+ 'method',
+ 'args',
+ 'requires'],
+ 'type': 'object'},
+ 'BundleChangesParams': {'additionalProperties': False,
+ 'properties': {'yaml': {'type': 'string'}},
+ 'required': ['yaml'],
+ 'type': 'object'},
+ 'BundleChangesResults': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'},
+ 'type': 'array'},
+ 'errors': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'BytesResult': {'additionalProperties': False,
+ 'properties': {'result': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'ConfigValue': {'additionalProperties': False,
+ 'properties': {'source': {'type': 'string'},
+ 'value': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'required': ['value', 'source'],
+ 'type': 'object'},
+ 'Constraints': {'additionalProperties': False,
+ 'properties': {'Count': {'type': 'integer'},
+ 'Pool': {'type': 'string'},
+ 'Size': {'type': 'integer'}},
+ 'required': ['Pool', 'Size', 'Count'],
+ 'type': 'object'},
+ 'DestroyMachines': {'additionalProperties': False,
+ 'properties': {'force': {'type': 'boolean'},
+ 'machine-names': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['machine-names', 'force'],
+ 'type': 'object'},
+ 'DetailedStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'kind': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'},
+ 'version': {'type': 'string'}},
+ 'required': ['status',
+ 'info',
+ 'data',
+ 'since',
+ 'kind',
+ 'version',
+ 'life'],
+ 'type': 'object'},
+ 'EndpointStatus': {'additionalProperties': False,
+ 'properties': {'application': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'},
+ 'subordinate': {'type': 'boolean'}},
+ 'required': ['application',
+ 'name',
+ 'role',
+ 'subordinate'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'info', 'since'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'FindToolsParams': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'major': {'type': 'integer'},
+ 'minor': {'type': 'integer'},
+ 'number': {'$ref': '#/definitions/Number'},
+ 'series': {'type': 'string'}},
+ 'required': ['number',
+ 'major',
+ 'minor',
+ 'arch',
+ 'series'],
+ 'type': 'object'},
+ 'FindToolsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'list': {'items': {'$ref': '#/definitions/Tools'},
+ 'type': 'array'}},
+ 'required': ['list'],
+ 'type': 'object'},
+ 'FullStatus': {'additionalProperties': False,
+ 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}},
+ 'type': 'object'},
+ 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
+ 'type': 'object'},
+ 'model': {'$ref': '#/definitions/ModelStatusInfo'},
+ 'relations': {'items': {'$ref': '#/definitions/RelationStatus'},
+ 'type': 'array'},
+ 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}},
+ 'type': 'object'}},
+ 'required': ['model',
+ 'machines',
+ 'applications',
+ 'remote-applications',
+ 'relations'],
+ 'type': 'object'},
+ 'GetConstraintsResults': {'additionalProperties': False,
+ 'properties': {'constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['constraints'],
+ 'type': 'object'},
+ 'HardwareCharacteristics': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'availability-zone': {'type': 'string'},
+ 'cpu-cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'History': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'},
+ 'type': 'array'}},
+ 'required': ['statuses'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MachineHardware': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'availability-zone': {'type': 'string'},
+ 'cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'MachineStatus': {'additionalProperties': False,
+ 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'constraints': {'type': 'string'},
+ 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
+ 'type': 'object'},
+ 'dns-name': {'type': 'string'},
+ 'hardware': {'type': 'string'},
+ 'has-vote': {'type': 'boolean'},
+ 'id': {'type': 'string'},
+ 'instance-id': {'type': 'string'},
+ 'instance-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'ip-addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'jobs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}},
+ 'type': 'object'},
+ 'series': {'type': 'string'},
+ 'wants-vote': {'type': 'boolean'}},
+ 'required': ['agent-status',
+ 'instance-status',
+ 'dns-name',
+ 'instance-id',
+ 'series',
+ 'id',
+ 'containers',
+ 'constraints',
+ 'hardware',
+ 'jobs',
+ 'has-vote',
+ 'wants-vote'],
+ 'type': 'object'},
+ 'MeterStatus': {'additionalProperties': False,
+ 'properties': {'color': {'type': 'string'},
+ 'message': {'type': 'string'}},
+ 'required': ['color', 'message'],
+ 'type': 'object'},
+ 'ModelConfigResults': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelInfo': {'additionalProperties': False,
+ 'properties': {'agent-version': {'$ref': '#/definitions/Number'},
+ 'cloud-credential-tag': {'type': 'string'},
+ 'cloud-region': {'type': 'string'},
+ 'cloud-tag': {'type': 'string'},
+ 'controller-uuid': {'type': 'string'},
+ 'default-series': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'},
+ 'type': 'array'},
+ 'migration': {'$ref': '#/definitions/ModelMigrationStatus'},
+ 'name': {'type': 'string'},
+ 'owner-tag': {'type': 'string'},
+ 'provider-type': {'type': 'string'},
+ 'sla': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'status': {'$ref': '#/definitions/EntityStatus'},
+ 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'},
+ 'type': 'array'},
+ 'uuid': {'type': 'string'}},
+ 'required': ['name',
+ 'uuid',
+ 'controller-uuid',
+ 'cloud-tag',
+ 'owner-tag',
+ 'life',
+ 'users',
+ 'machines',
+ 'sla',
+ 'agent-version'],
+ 'type': 'object'},
+ 'ModelMachineInfo': {'additionalProperties': False,
+ 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'},
+ 'has-vote': {'type': 'boolean'},
+ 'id': {'type': 'string'},
+ 'instance-id': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'wants-vote': {'type': 'boolean'}},
+ 'required': ['id'],
+ 'type': 'object'},
+ 'ModelMigrationStatus': {'additionalProperties': False,
+ 'properties': {'end': {'format': 'date-time',
+ 'type': 'string'},
+ 'start': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'start'],
+ 'type': 'object'},
+ 'ModelSLA': {'additionalProperties': False,
+ 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'creds': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['ModelSLAInfo', 'creds'],
+ 'type': 'object'},
+ 'ModelSLAInfo': {'additionalProperties': False,
+ 'properties': {'level': {'type': 'string'},
+ 'owner': {'type': 'string'}},
+ 'required': ['level', 'owner'],
+ 'type': 'object'},
+ 'ModelSet': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelStatusInfo': {'additionalProperties': False,
+ 'properties': {'available-version': {'type': 'string'},
+ 'cloud-tag': {'type': 'string'},
+ 'meter-status': {'$ref': '#/definitions/MeterStatus'},
+ 'model-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'name': {'type': 'string'},
+ 'region': {'type': 'string'},
+ 'sla': {'type': 'string'},
+ 'version': {'type': 'string'}},
+ 'required': ['name',
+ 'cloud-tag',
+ 'version',
+ 'available-version',
+ 'model-status',
+ 'meter-status',
+ 'sla'],
+ 'type': 'object'},
+ 'ModelUnset': {'additionalProperties': False,
+ 'properties': {'keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['keys'],
+ 'type': 'object'},
+ 'ModelUserInfo': {'additionalProperties': False,
+ 'properties': {'access': {'type': 'string'},
+ 'display-name': {'type': 'string'},
+ 'last-connection': {'format': 'date-time',
+ 'type': 'string'},
+ 'user': {'type': 'string'}},
+ 'required': ['user',
+ 'display-name',
+ 'last-connection',
+ 'access'],
+ 'type': 'object'},
+ 'ModelUserInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/ModelUserInfo'}},
+ 'type': 'object'},
+ 'ModelUserInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'NetworkInterface': {'additionalProperties': False,
+ 'properties': {'dns-nameservers': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'gateway': {'type': 'string'},
+ 'ip-addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'is-up': {'type': 'boolean'},
+ 'mac-address': {'type': 'string'},
+ 'space': {'type': 'string'}},
+ 'required': ['ip-addresses',
+ 'mac-address',
+ 'is-up'],
+ 'type': 'object'},
+ 'Number': {'additionalProperties': False,
+ 'properties': {'Build': {'type': 'integer'},
+ 'Major': {'type': 'integer'},
+ 'Minor': {'type': 'integer'},
+ 'Patch': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['Major',
+ 'Minor',
+ 'Tag',
+ 'Patch',
+ 'Build'],
+ 'type': 'object'},
+ 'Placement': {'additionalProperties': False,
+ 'properties': {'directive': {'type': 'string'},
+ 'scope': {'type': 'string'}},
+ 'required': ['scope', 'directive'],
+ 'type': 'object'},
+ 'PrivateAddress': {'additionalProperties': False,
+ 'properties': {'target': {'type': 'string'}},
+ 'required': ['target'],
+ 'type': 'object'},
+ 'PrivateAddressResults': {'additionalProperties': False,
+ 'properties': {'private-address': {'type': 'string'}},
+ 'required': ['private-address'],
+ 'type': 'object'},
+ 'ProvisioningScriptParams': {'additionalProperties': False,
+ 'properties': {'data-dir': {'type': 'string'},
+ 'disable-package-commands': {'type': 'boolean'},
+ 'machine-id': {'type': 'string'},
+ 'nonce': {'type': 'string'}},
+ 'required': ['machine-id',
+ 'nonce',
+ 'data-dir',
+ 'disable-package-commands'],
+ 'type': 'object'},
+ 'ProvisioningScriptResult': {'additionalProperties': False,
+ 'properties': {'script': {'type': 'string'}},
+ 'required': ['script'],
+ 'type': 'object'},
+ 'PublicAddress': {'additionalProperties': False,
+ 'properties': {'target': {'type': 'string'}},
+ 'required': ['target'],
+ 'type': 'object'},
+ 'PublicAddressResults': {'additionalProperties': False,
+ 'properties': {'public-address': {'type': 'string'}},
+ 'required': ['public-address'],
+ 'type': 'object'},
+ 'RelationStatus': {'additionalProperties': False,
+ 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'},
+ 'type': 'array'},
+ 'id': {'type': 'integer'},
+ 'interface': {'type': 'string'},
+ 'key': {'type': 'string'},
+ 'scope': {'type': 'string'}},
+ 'required': ['id',
+ 'key',
+ 'interface',
+ 'scope',
+ 'endpoints'],
+ 'type': 'object'},
+ 'RemoteApplicationStatus': {'additionalProperties': False,
+ 'properties': {'application-name': {'type': 'string'},
+ 'application-url': {'type': 'string'},
+ 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'type': 'array'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'life': {'type': 'string'},
+ 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'status': {'$ref': '#/definitions/DetailedStatus'}},
+ 'required': ['application-url',
+ 'application-name',
+ 'endpoints',
+ 'life',
+ 'relations',
+ 'status'],
+ 'type': 'object'},
+ 'RemoteEndpoint': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'limit': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'},
+ 'scope': {'type': 'string'}},
+ 'required': ['name',
+ 'role',
+ 'interface',
+ 'limit',
+ 'scope'],
+ 'type': 'object'},
+ 'ResolveCharmResult': {'additionalProperties': False,
+ 'properties': {'error': {'type': 'string'},
+ 'url': {'type': 'string'}},
+ 'type': 'object'},
+ 'ResolveCharmResults': {'additionalProperties': False,
+ 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'},
+ 'type': 'array'}},
+ 'required': ['urls'],
+ 'type': 'object'},
+ 'ResolveCharms': {'additionalProperties': False,
+ 'properties': {'references': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['references'],
+ 'type': 'object'},
+ 'Resolved': {'additionalProperties': False,
+ 'properties': {'retry': {'type': 'boolean'},
+ 'unit-name': {'type': 'string'}},
+ 'required': ['unit-name', 'retry'],
+ 'type': 'object'},
+ 'SetConstraints': {'additionalProperties': False,
+ 'properties': {'application': {'type': 'string'},
+ 'constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['application', 'constraints'],
+ 'type': 'object'},
+ 'SetModelAgentVersion': {'additionalProperties': False,
+ 'properties': {'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['version'],
+ 'type': 'object'},
+ 'StatusHistoryFilter': {'additionalProperties': False,
+ 'properties': {'date': {'format': 'date-time',
+ 'type': 'string'},
+ 'delta': {'type': 'integer'},
+ 'exclude': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'size': {'type': 'integer'}},
+ 'required': ['size',
+ 'date',
+ 'delta',
+ 'exclude'],
+ 'type': 'object'},
+ 'StatusHistoryRequest': {'additionalProperties': False,
+ 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'},
+ 'historyKind': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'tag': {'type': 'string'}},
+ 'required': ['historyKind',
+ 'size',
+ 'filter',
+ 'tag'],
+ 'type': 'object'},
+ 'StatusHistoryRequests': {'additionalProperties': False,
+ 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'},
+ 'type': 'array'}},
+ 'required': ['requests'],
+ 'type': 'object'},
+ 'StatusHistoryResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'history': {'$ref': '#/definitions/History'}},
+ 'required': ['history'],
+ 'type': 'object'},
+ 'StatusHistoryResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StatusParams': {'additionalProperties': False,
+ 'properties': {'patterns': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['patterns'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'Tools': {'additionalProperties': False,
+ 'properties': {'sha256': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'url': {'type': 'string'},
+ 'version': {'$ref': '#/definitions/Binary'}},
+ 'required': ['version', 'url', 'size'],
+ 'type': 'object'},
+ 'UnitStatus': {'additionalProperties': False,
+ 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'charm': {'type': 'string'},
+ 'leader': {'type': 'boolean'},
+ 'machine': {'type': 'string'},
+ 'opened-ports': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'public-address': {'type': 'string'},
+ 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
+ 'type': 'object'},
+ 'workload-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'workload-version': {'type': 'string'}},
+ 'required': ['agent-status',
+ 'workload-status',
+ 'workload-version',
+ 'machine',
+ 'opened-ports',
+ 'public-address',
+ 'charm',
+ 'subordinates'],
+ 'type': 'object'},
+ 'Value': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'container': {'type': 'string'},
+ 'cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'instance-type': {'type': 'string'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'spaces': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'virt-type': {'type': 'string'}},
+ 'type': 'object'}},
+ 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'AbortCurrentUpgrade': {'type': 'object'},
+ 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}},
+ 'type': 'object'},
+ 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}},
+ 'type': 'object'},
+ 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}},
+ 'type': 'object'},
+ 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
+ 'type': 'object'},
+ 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}},
+ 'type': 'object'},
+ 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'},
+ 'Result': {'$ref': '#/definitions/FindToolsResult'}},
+ 'type': 'object'},
+ 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'},
+ 'Result': {'$ref': '#/definitions/FullStatus'}},
+ 'type': 'object'},
+ 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'},
+ 'Result': {'$ref': '#/definitions/BundleChangesResults'}},
+ 'type': 'object'},
+ 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}},
+ 'type': 'object'},
+ 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
+ 'type': 'object'},
+ 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}},
+ 'type': 'object'},
+ 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
+ 'type': 'object'},
+ 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
+ 'type': 'object'},
+ 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}},
+ 'type': 'object'},
+ 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'},
+ 'Result': {'$ref': '#/definitions/PrivateAddressResults'}},
+ 'type': 'object'},
+ 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'},
+ 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}},
+ 'type': 'object'},
+ 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'},
+ 'Result': {'$ref': '#/definitions/PublicAddressResults'}},
+ 'type': 'object'},
+ 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'},
+ 'Result': {'$ref': '#/definitions/ResolveCharmResults'}},
+ 'type': 'object'},
+ 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}},
+ 'type': 'object'},
+ 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}},
+ 'type': 'object'},
+ 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
+ 'type': 'object'},
+ 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
+ 'type': 'object'},
+ 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'},
+ 'Result': {'$ref': '#/definitions/StatusHistoryResults'}},
+ 'type': 'object'},
+ 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
+ '''
+
+ Returns -> typing.Sequence[~HostPort]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='APIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AbortCurrentUpgrade(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AbortCurrentUpgrade',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AddCharm(self, channel, url):
+ '''
+ channel : str
+ url : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddCharm',
+ version=1,
+ params=_params)
+ _params['channel'] = channel
+ _params['url'] = url
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AddCharmWithAuthorization(self, channel, macaroon, url):
+ '''
+ channel : str
+ macaroon : Macaroon
+ url : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddCharmWithAuthorization',
+ version=1,
+ params=_params)
+ _params['channel'] = channel
+ _params['macaroon'] = macaroon
+ _params['url'] = url
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def AddMachines(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddMachines',
+ version=1,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def AddMachinesV2(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddMachinesV2',
+ version=1,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AgentVersionResult)
+ async def AgentVersion(self):
+ '''
+
+ Returns -> Number
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AgentVersion',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BytesResult)
+ async def CACert(self):
+ '''
+
+ Returns -> typing.Sequence[int]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='CACert',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def DestroyMachines(self, force, machine_names):
+ '''
+ force : bool
+ machine_names : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='DestroyMachines',
+ version=1,
+ params=_params)
+ _params['force'] = force
+ _params['machine-names'] = machine_names
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(FindToolsResult)
+ async def FindTools(self, arch, major, minor, number, series):
+ '''
+ arch : str
+ major : int
+ minor : int
+ number : Number
+ series : str
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='FindTools',
+ version=1,
+ params=_params)
+ _params['arch'] = arch
+ _params['major'] = major
+ _params['minor'] = minor
+ _params['number'] = number
+ _params['series'] = series
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(FullStatus)
+ async def FullStatus(self, patterns):
+ '''
+ patterns : typing.Sequence[str]
+ Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='FullStatus',
+ version=1,
+ params=_params)
+ _params['patterns'] = patterns
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BundleChangesResults)
+ async def GetBundleChanges(self, yaml):
+ '''
+ yaml : str
+ Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='GetBundleChanges',
+ version=1,
+ params=_params)
+ _params['yaml'] = yaml
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(GetConstraintsResults)
+ async def GetModelConstraints(self):
+ '''
+
+ Returns -> Value
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='GetModelConstraints',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def InjectMachines(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='InjectMachines',
+ version=1,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelConfigResults)
+ async def ModelGet(self):
+ '''
+
+ Returns -> typing.Mapping[str, ~ConfigValue]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelGet',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelInfo)
+ async def ModelInfo(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelInfo',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelSet(self, config):
+ '''
+ config : typing.Mapping[str, typing.Any]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelSet',
+ version=1,
+ params=_params)
+ _params['config'] = config
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelUnset(self, keys):
+ '''
+ keys : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelUnset',
+ version=1,
+ params=_params)
+ _params['keys'] = keys
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelUserInfoResults)
+ async def ModelUserInfo(self):
+ '''
+
+ Returns -> typing.Sequence[~ModelUserInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelUserInfo',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(PrivateAddressResults)
+ async def PrivateAddress(self, target):
+ '''
+ target : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='PrivateAddress',
+ version=1,
+ params=_params)
+ _params['target'] = target
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ProvisioningScriptResult)
+ async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce):
+ '''
+ data_dir : str
+ disable_package_commands : bool
+ machine_id : str
+ nonce : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ProvisioningScript',
+ version=1,
+ params=_params)
+ _params['data-dir'] = data_dir
+ _params['disable-package-commands'] = disable_package_commands
+ _params['machine-id'] = machine_id
+ _params['nonce'] = nonce
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(PublicAddressResults)
+ async def PublicAddress(self, target):
+ '''
+ target : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='PublicAddress',
+ version=1,
+ params=_params)
+ _params['target'] = target
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ResolveCharmResults)
+ async def ResolveCharms(self, references):
+ '''
+ references : typing.Sequence[str]
+ Returns -> typing.Sequence[~ResolveCharmResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ResolveCharms',
+ version=1,
+ params=_params)
+ _params['references'] = references
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Resolved(self, retry, unit_name):
+ '''
+ retry : bool
+ unit_name : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='Resolved',
+ version=1,
+ params=_params)
+ _params['retry'] = retry
+ _params['unit-name'] = unit_name
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def RetryProvisioning(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='RetryProvisioning',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResult)
+ async def SLALevel(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='SLALevel',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def SetModelAgentVersion(self, version):
+ '''
+ version : Number
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='SetModelAgentVersion',
+ version=1,
+ params=_params)
+ _params['version'] = version
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def SetModelConstraints(self, application, constraints):
+ '''
+ application : str
+ constraints : Value
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='SetModelConstraints',
+ version=1,
+ params=_params)
+ _params['application'] = application
+ _params['constraints'] = constraints
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def SetSLALevel(self, creds, level):
+ '''
+ creds : typing.Sequence[int]
+ level : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='SetSLALevel',
+ version=1,
+ params=_params)
+ _params['creds'] = creds
+ _params['level'] = level
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StatusHistoryResults)
+ async def StatusHistory(self, requests):
+ '''
+ requests : typing.Sequence[~StatusHistoryRequest]
+ Returns -> typing.Sequence[~StatusHistoryResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='StatusHistory',
+ version=1,
+ params=_params)
+ _params['requests'] = requests
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AllWatcherId)
+ async def WatchAll(self):
+ '''
+
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='WatchAll',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CloudFacade(Type):
+ name = 'Cloud'
+ version = 1
+ schema = {'definitions': {'Cloud': {'additionalProperties': False,
+ 'properties': {'auth-types': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'endpoint': {'type': 'string'},
+ 'identity-endpoint': {'type': 'string'},
+ 'regions': {'items': {'$ref': '#/definitions/CloudRegion'},
+ 'type': 'array'},
+ 'storage-endpoint': {'type': 'string'},
+ 'type': {'type': 'string'}},
+ 'required': ['type'],
+ 'type': 'object'},
+ 'CloudCredential': {'additionalProperties': False,
+ 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'auth-type': {'type': 'string'},
+ 'redacted': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['auth-type'],
+ 'type': 'object'},
+ 'CloudCredentialResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/CloudCredential'}},
'type': 'object'},
- 'StatusHistoryResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'history': {'$ref': '#/definitions/History'}},
- 'required': ['history'],
+ 'CloudCredentialResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'CloudInstanceTypesConstraint': {'additionalProperties': False,
+ 'properties': {'cloud-tag': {'type': 'string'},
+ 'constraints': {'$ref': '#/definitions/Value'},
+ 'region': {'type': 'string'}},
+ 'required': ['cloud-tag',
+ 'region'],
+ 'type': 'object'},
+ 'CloudInstanceTypesConstraints': {'additionalProperties': False,
+ 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'},
+ 'type': 'array'}},
+ 'required': ['constraints'],
+ 'type': 'object'},
+ 'CloudRegion': {'additionalProperties': False,
+ 'properties': {'endpoint': {'type': 'string'},
+ 'identity-endpoint': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'storage-endpoint': {'type': 'string'}},
+ 'required': ['name'],
+ 'type': 'object'},
+ 'CloudResult': {'additionalProperties': False,
+ 'properties': {'cloud': {'$ref': '#/definitions/Cloud'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'CloudResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'CloudsResult': {'additionalProperties': False,
+ 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}},
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'InstanceType': {'additionalProperties': False,
+ 'properties': {'arches': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'cost': {'type': 'integer'},
+ 'cpu-cores': {'type': 'integer'},
+ 'deprecated': {'type': 'boolean'},
+ 'memory': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'root-disk': {'type': 'integer'},
+ 'virt-type': {'type': 'string'}},
+ 'required': ['arches', 'cpu-cores', 'memory'],
+ 'type': 'object'},
+ 'InstanceTypesResult': {'additionalProperties': False,
+ 'properties': {'cost-currency': {'type': 'string'},
+ 'cost-divisor': {'type': 'integer'},
+ 'cost-unit': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'},
+ 'type': 'array'}},
'type': 'object'},
- 'StatusHistoryResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'},
+ 'InstanceTypesResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'},
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'StatusParams': {'additionalProperties': False,
- 'properties': {'patterns': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['patterns'],
- 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
'StringResult': {'additionalProperties': False,
'properties': {'error': {'$ref': '#/definitions/Error'},
'result': {'type': 'string'}},
'required': ['result'],
'type': 'object'},
- 'Tools': {'additionalProperties': False,
- 'properties': {'sha256': {'type': 'string'},
- 'size': {'type': 'integer'},
- 'url': {'type': 'string'},
- 'version': {'$ref': '#/definitions/Binary'}},
- 'required': ['version', 'url', 'size'],
- 'type': 'object'},
- 'UnitStatus': {'additionalProperties': False,
- 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'},
- 'charm': {'type': 'string'},
- 'leader': {'type': 'boolean'},
- 'machine': {'type': 'string'},
- 'opened-ports': {'items': {'type': 'string'},
- 'type': 'array'},
- 'public-address': {'type': 'string'},
- 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
- 'type': 'object'},
- 'workload-status': {'$ref': '#/definitions/DetailedStatus'},
- 'workload-version': {'type': 'string'}},
- 'required': ['agent-status',
- 'workload-status',
- 'workload-version',
- 'machine',
- 'opened-ports',
- 'public-address',
- 'charm',
- 'subordinates'],
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'StringsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'UpdateCloudCredential': {'additionalProperties': False,
+ 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'credential'],
+ 'type': 'object'},
+ 'UpdateCloudCredentials': {'additionalProperties': False,
+ 'properties': {'credentials': {'items': {'$ref': '#/definitions/UpdateCloudCredential'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'UserCloud': {'additionalProperties': False,
+ 'properties': {'cloud-tag': {'type': 'string'},
+ 'user-tag': {'type': 'string'}},
+ 'required': ['user-tag', 'cloud-tag'],
+ 'type': 'object'},
+ 'UserClouds': {'additionalProperties': False,
+ 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'},
+ 'type': 'array'}},
'type': 'object'},
'Value': {'additionalProperties': False,
'properties': {'arch': {'type': 'string'},
'type': 'array'},
'virt-type': {'type': 'string'}},
'type': 'object'}},
- 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
- 'type': 'object'},
- 'AbortCurrentUpgrade': {'type': 'object'},
- 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}},
- 'type': 'object'},
- 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}},
- 'type': 'object'},
- 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
- 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
- 'type': 'object'},
- 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
- 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
- 'type': 'object'},
- 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}},
- 'type': 'object'},
- 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
+ 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/CloudResults'}},
+ 'type': 'object'},
+ 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}},
'type': 'object'},
- 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}},
- 'type': 'object'},
- 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'},
- 'Result': {'$ref': '#/definitions/FindToolsResult'}},
- 'type': 'object'},
- 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'},
- 'Result': {'$ref': '#/definitions/FullStatus'}},
- 'type': 'object'},
- 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'},
- 'Result': {'$ref': '#/definitions/BundleChangesResults'}},
- 'type': 'object'},
- 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}},
- 'type': 'object'},
- 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
- 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
- 'type': 'object'},
- 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
- 'type': 'object'},
- 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}},
- 'type': 'object'},
- 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
- 'type': 'object'},
- 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
+ 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/CloudCredentialResults'}},
'type': 'object'},
- 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}},
- 'type': 'object'},
- 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'},
- 'Result': {'$ref': '#/definitions/PrivateAddressResults'}},
- 'type': 'object'},
- 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'},
- 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}},
- 'type': 'object'},
- 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'},
- 'Result': {'$ref': '#/definitions/PublicAddressResults'}},
- 'type': 'object'},
- 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'},
- 'Result': {'$ref': '#/definitions/ResolveCharmResults'}},
- 'type': 'object'},
- 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}},
- 'type': 'object'},
- 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'},
+ 'Result': {'$ref': '#/definitions/InstanceTypesResults'}},
+ 'type': 'object'},
+ 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
'Result': {'$ref': '#/definitions/ErrorResults'}},
'type': 'object'},
- 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}},
- 'type': 'object'},
- 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
- 'type': 'object'},
- 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
- 'type': 'object'},
- 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'},
- 'Result': {'$ref': '#/definitions/StatusHistoryResults'}},
- 'type': 'object'},
- 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}},
- 'type': 'object'}},
+ 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'},
+ 'Result': {'$ref': '#/definitions/StringsResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(APIHostPortsResult)
- async def APIHostPorts(self):
+
+ @ReturnMapping(CloudResults)
+ async def Cloud(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Cloud',
+ request='Cloud',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(CloudsResult)
+ async def Clouds(self):
'''
- Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort>
+ Returns -> typing.Mapping[str, ~Cloud]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='APIHostPorts', version=1, params=_params)
+ msg = dict(type='Cloud',
+ request='Clouds',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def AbortCurrentUpgrade(self):
+ @ReturnMapping(CloudCredentialResults)
+ async def Credential(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudCredentialResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Cloud',
+ request='Credential',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResult)
+ async def DefaultCloud(self):
'''
- Returns -> None
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AbortCurrentUpgrade', version=1, params=_params)
+ msg = dict(type='Cloud',
+ request='DefaultCloud',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def AddCharm(self, channel, url):
+ @ReturnMapping(InstanceTypesResults)
+ async def InstanceTypes(self, constraints):
'''
- channel : str
- url : str
- Returns -> None
+ constraints : typing.Sequence[~CloudInstanceTypesConstraint]
+ Returns -> typing.Sequence[~InstanceTypesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AddCharm', version=1, params=_params)
- _params['channel'] = channel
- _params['url'] = url
+ msg = dict(type='Cloud',
+ request='InstanceTypes',
+ version=1,
+ params=_params)
+ _params['constraints'] = constraints
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def AddCharmWithAuthorization(self, channel, macaroon, url):
+ @ReturnMapping(ErrorResults)
+ async def RevokeCredentials(self, entities):
'''
- channel : str
- macaroon : Macaroon
- url : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AddCharmWithAuthorization', version=1, params=_params)
- _params['channel'] = channel
- _params['macaroon'] = macaroon
- _params['url'] = url
+ msg = dict(type='Cloud',
+ request='RevokeCredentials',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AddMachinesResults)
- async def AddMachines(self, params):
+ @ReturnMapping(ErrorResults)
+ async def UpdateCredentials(self, credentials):
'''
- params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams>
- Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult>
+ credentials : typing.Sequence[~UpdateCloudCredential]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AddMachines', version=1, params=_params)
- _params['params'] = params
+ msg = dict(type='Cloud',
+ request='UpdateCredentials',
+ version=1,
+ params=_params)
+ _params['credentials'] = credentials
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsResults)
+ async def UserCredentials(self, user_clouds):
+ '''
+ user_clouds : typing.Sequence[~UserCloud]
+ Returns -> typing.Sequence[~StringsResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Cloud',
+ request='UserCredentials',
+ version=1,
+ params=_params)
+ _params['user-clouds'] = user_clouds
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CredentialManagerFacade(Type):
+ name = 'CredentialManager'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'InvalidateCredentialArg': {'additionalProperties': False,
+ 'properties': {'reason': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
+ 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'},
+ 'Result': {'$ref': '#/definitions/ErrorResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ErrorResult)
+ async def InvalidateModelCredential(self, reason):
+ '''
+ reason : str
+ Returns -> Error
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CredentialManager',
+ request='InvalidateModelCredential',
+ version=1,
+ params=_params)
+ _params['reason'] = reason
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CrossControllerFacade(Type):
+ name = 'CrossController'
+ version = 1
+ schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'cacert': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['addresses',
+ 'cacert'],
+ 'type': 'object'},
+ 'ControllerAPIInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'ControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}},
+ 'type': 'object'},
+ 'WatchControllerInfo': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ControllerAPIInfoResults)
+ async def ControllerInfo(self):
+ '''
+
+ Returns -> typing.Sequence[~ControllerAPIInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CrossController',
+ request='ControllerInfo',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchControllerInfo(self):
+ '''
+
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CrossController',
+ request='WatchControllerInfo',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AddMachinesResults)
- async def AddMachinesV2(self, params):
+class CrossModelRelationsFacade(Type):
+ name = 'CrossModelRelations'
+ version = 1
+ schema = {'definitions': {'EntityStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'info', 'since'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'IngressNetworksChangeEvent': {'additionalProperties': False,
+ 'properties': {'application-token': {'type': 'string'},
+ 'ingress-required': {'type': 'boolean'},
+ 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'networks': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'relation-token': {'type': 'string'}},
+ 'required': ['relation-token',
+ 'application-token',
+ 'ingress-required'],
+ 'type': 'object'},
+ 'IngressNetworksChanges': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/IngressNetworksChangeEvent'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'OfferArg': {'additionalProperties': False,
+ 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'offer-uuid': {'type': 'string'}},
+ 'required': ['offer-uuid'],
+ 'type': 'object'},
+ 'OfferArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/OfferArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'OfferStatusChange': {'additionalProperties': False,
+ 'properties': {'offer-name': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/EntityStatus'}},
+ 'required': ['offer-name', 'status'],
+ 'type': 'object'},
+ 'OfferStatusWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'},
+ 'OfferStatusWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/OfferStatusWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RegisterRemoteRelationArg': {'additionalProperties': False,
+ 'properties': {'application-token': {'type': 'string'},
+ 'local-endpoint-name': {'type': 'string'},
+ 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'offer-uuid': {'type': 'string'},
+ 'relation-token': {'type': 'string'},
+ 'remote-endpoint': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'remote-space': {'$ref': '#/definitions/RemoteSpace'},
+ 'source-model-tag': {'type': 'string'}},
+ 'required': ['application-token',
+ 'source-model-tag',
+ 'relation-token',
+ 'remote-endpoint',
+ 'remote-space',
+ 'offer-uuid',
+ 'local-endpoint-name'],
+ 'type': 'object'},
+ 'RegisterRemoteRelationArgs': {'additionalProperties': False,
+ 'properties': {'relations': {'items': {'$ref': '#/definitions/RegisterRemoteRelationArg'},
+ 'type': 'array'}},
+ 'required': ['relations'],
+ 'type': 'object'},
+ 'RegisterRemoteRelationResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/RemoteRelationDetails'}},
+ 'type': 'object'},
+ 'RegisterRemoteRelationResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RegisterRemoteRelationResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'RelationLifeSuspendedStatusChange': {'additionalProperties': False,
+ 'properties': {'key': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'suspended': {'type': 'boolean'},
+ 'suspended-reason': {'type': 'string'}},
+ 'required': ['key',
+ 'life',
+ 'suspended',
+ 'suspended-reason'],
+ 'type': 'object'},
+ 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'},
+ 'RelationStatusWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RelationUnitsChange': {'additionalProperties': False,
+ 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
+ 'type': 'object'},
+ 'departed': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['changed'],
+ 'type': 'object'},
+ 'RelationUnitsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'},
+ 'RelationUnitsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RemoteEndpoint': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'limit': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'}},
+ 'required': ['name',
+ 'role',
+ 'interface',
+ 'limit'],
+ 'type': 'object'},
+ 'RemoteEntityArg': {'additionalProperties': False,
+ 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'relation-token': {'type': 'string'}},
+ 'required': ['relation-token'],
+ 'type': 'object'},
+ 'RemoteEntityArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/RemoteEntityArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'RemoteRelationChangeEvent': {'additionalProperties': False,
+ 'properties': {'application-token': {'type': 'string'},
+ 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'},
+ 'type': 'array'},
+ 'departed-units': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'force-cleanup': {'type': 'boolean'},
+ 'life': {'type': 'string'},
+ 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'relation-token': {'type': 'string'},
+ 'suspended': {'type': 'boolean'},
+ 'suspended-reason': {'type': 'string'}},
+ 'required': ['relation-token',
+ 'application-token',
+ 'life'],
+ 'type': 'object'},
+ 'RemoteRelationDetails': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'relation-token': {'type': 'string'}},
+ 'required': ['relation-token'],
+ 'type': 'object'},
+ 'RemoteRelationUnit': {'additionalProperties': False,
+ 'properties': {'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'relation-token': {'type': 'string'},
+ 'unit': {'type': 'string'}},
+ 'required': ['relation-token', 'unit'],
+ 'type': 'object'},
+ 'RemoteRelationUnitChange': {'additionalProperties': False,
+ 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'unit-id': {'type': 'integer'}},
+ 'required': ['unit-id'],
+ 'type': 'object'},
+ 'RemoteRelationUnits': {'additionalProperties': False,
+ 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RemoteRelationUnit'},
+ 'type': 'array'}},
+ 'required': ['relation-units'],
+ 'type': 'object'},
+ 'RemoteRelationsChanges': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'RemoteSpace': {'additionalProperties': False,
+ 'properties': {'cloud-type': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'provider-id': {'type': 'string'},
+ 'subnets': {'items': {'$ref': '#/definitions/Subnet'},
+ 'type': 'array'}},
+ 'required': ['cloud-type',
+ 'name',
+ 'provider-id',
+ 'provider-attributes',
+ 'subnets'],
+ 'type': 'object'},
+ 'SettingsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'settings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['settings'],
+ 'type': 'object'},
+ 'SettingsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Subnet': {'additionalProperties': False,
+ 'properties': {'cidr': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'provider-id': {'type': 'string'},
+ 'provider-network-id': {'type': 'string'},
+ 'provider-space-id': {'type': 'string'},
+ 'space-tag': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'vlan-tag': {'type': 'integer'},
+ 'zones': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['cidr',
+ 'vlan-tag',
+ 'life',
+ 'space-tag',
+ 'zones'],
+ 'type': 'object'},
+ 'UnitSettings': {'additionalProperties': False,
+ 'properties': {'version': {'type': 'integer'}},
+ 'required': ['version'],
+ 'type': 'object'}},
+ 'properties': {'PublishIngressNetworkChanges': {'properties': {'Params': {'$ref': '#/definitions/IngressNetworksChanges'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'PublishRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'RegisterRemoteRelations': {'properties': {'Params': {'$ref': '#/definitions/RegisterRemoteRelationArgs'},
+ 'Result': {'$ref': '#/definitions/RegisterRemoteRelationResults'}},
+ 'type': 'object'},
+ 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationUnits'},
+ 'Result': {'$ref': '#/definitions/SettingsResults'}},
+ 'type': 'object'},
+ 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'},
+ 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'},
+ 'WatchOfferStatus': {'properties': {'Params': {'$ref': '#/definitions/OfferArgs'},
+ 'Result': {'$ref': '#/definitions/OfferStatusWatchResults'}},
+ 'type': 'object'},
+ 'WatchRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'},
+ 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}},
+ 'type': 'object'},
+ 'WatchRelationsSuspendedStatus': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityArgs'},
+ 'Result': {'$ref': '#/definitions/RelationStatusWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ErrorResults)
+ async def PublishIngressNetworkChanges(self, changes):
'''
- params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams>
- Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult>
+ changes : typing.Sequence[~IngressNetworksChangeEvent]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AddMachinesV2', version=1, params=_params)
- _params['params'] = params
+ msg = dict(type='CrossModelRelations',
+ request='PublishIngressNetworkChanges',
+ version=1,
+ params=_params)
+ _params['changes'] = changes
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AgentVersionResult)
- async def AgentVersion(self):
+ @ReturnMapping(ErrorResults)
+ async def PublishRelationChanges(self, changes):
'''
-
- Returns -> Number
+ changes : typing.Sequence[~RemoteRelationChangeEvent]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='AgentVersion', version=1, params=_params)
-
+ msg = dict(type='CrossModelRelations',
+ request='PublishRelationChanges',
+ version=1,
+ params=_params)
+ _params['changes'] = changes
reply = await self.rpc(msg)
return reply
- @ReturnMapping(BytesResult)
- async def CACert(self):
+ @ReturnMapping(RegisterRemoteRelationResults)
+ async def RegisterRemoteRelations(self, relations):
'''
-
- Returns -> typing.Sequence<+T_co>[int]
+ relations : typing.Sequence[~RegisterRemoteRelationArg]
+ Returns -> typing.Sequence[~RegisterRemoteRelationResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='CACert', version=1, params=_params)
-
+ msg = dict(type='CrossModelRelations',
+ request='RegisterRemoteRelations',
+ version=1,
+ params=_params)
+ _params['relations'] = relations
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def DestroyMachines(self, force, machine_names):
+ @ReturnMapping(SettingsResults)
+ async def RelationUnitSettings(self, relation_units):
'''
- force : bool
- machine_names : typing.Sequence<+T_co>[str]
- Returns -> None
+ relation_units : typing.Sequence[~RemoteRelationUnit]
+ Returns -> typing.Sequence[~SettingsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='DestroyMachines', version=1, params=_params)
- _params['force'] = force
- _params['machine-names'] = machine_names
+ msg = dict(type='CrossModelRelations',
+ request='RelationUnitSettings',
+ version=1,
+ params=_params)
+ _params['relation-units'] = relation_units
reply = await self.rpc(msg)
return reply
- @ReturnMapping(FindToolsResult)
- async def FindTools(self, arch, major, minor, number, series):
+ @ReturnMapping(StringsWatchResults)
+ async def WatchEgressAddressesForRelations(self, args):
'''
- arch : str
- major : int
- minor : int
- number : Number
- series : str
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[~Tools]<~Tools>]
+ args : typing.Sequence[~RemoteEntityArg]
+ Returns -> typing.Sequence[~StringsWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='FindTools', version=1, params=_params)
- _params['arch'] = arch
- _params['major'] = major
- _params['minor'] = minor
- _params['number'] = number
- _params['series'] = series
+ msg = dict(type='CrossModelRelations',
+ request='WatchEgressAddressesForRelations',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(FullStatus)
- async def FullStatus(self, patterns):
+ @ReturnMapping(OfferStatusWatchResults)
+ async def WatchOfferStatus(self, args):
'''
- patterns : typing.Sequence<+T_co>[str]
- Returns -> typing.Union[_ForwardRef('ModelStatusInfo'), typing.Sequence<+T_co>[~RelationStatus]<~RelationStatus>, typing.Mapping<~KT, +VT_co>[str, ~RemoteApplicationStatus]<~RemoteApplicationStatus>]
+ args : typing.Sequence[~OfferArg]
+ Returns -> typing.Sequence[~OfferStatusWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='FullStatus', version=1, params=_params)
- _params['patterns'] = patterns
+ msg = dict(type='CrossModelRelations',
+ request='WatchOfferStatus',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(BundleChangesResults)
- async def GetBundleChanges(self, yaml):
+ @ReturnMapping(RelationUnitsWatchResults)
+ async def WatchRelationUnits(self, args):
'''
- yaml : str
- Returns -> typing.Sequence<+T_co>[~BundleChange]<~BundleChange>
+ args : typing.Sequence[~RemoteEntityArg]
+ Returns -> typing.Sequence[~RelationUnitsWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='GetBundleChanges', version=1, params=_params)
- _params['yaml'] = yaml
+ msg = dict(type='CrossModelRelations',
+ request='WatchRelationUnits',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(GetConstraintsResults)
- async def GetModelConstraints(self):
+ @ReturnMapping(RelationStatusWatchResults)
+ async def WatchRelationsSuspendedStatus(self, args):
'''
-
- Returns -> Value
+ args : typing.Sequence[~RemoteEntityArg]
+ Returns -> typing.Sequence[~RelationLifeSuspendedStatusWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='GetModelConstraints', version=1, params=_params)
-
+ msg = dict(type='CrossModelRelations',
+ request='WatchRelationsSuspendedStatus',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AddMachinesResults)
- async def InjectMachines(self, params):
- '''
- params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams>
- Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Client', request='InjectMachines', version=1, params=_params)
- _params['params'] = params
- reply = await self.rpc(msg)
- return reply
-
+class DeployerFacade(Type):
+ name = 'Deployer'
+ version = 1
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'DeployerConnectionValues': {'additionalProperties': False,
+ 'properties': {'api-addresses': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['api-addresses'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityPassword': {'additionalProperties': False,
+ 'properties': {'password': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'password'],
+ 'type': 'object'},
+ 'EntityPasswords': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'},
+ 'type': 'array'}},
+ 'required': ['changes'],
+ 'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
+ 'type': 'object'},
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
+ 'type': 'object'},
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
+ 'type': 'object'},
+ 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'ConnectionInfo': {'properties': {'Result': {'$ref': '#/definitions/DeployerConnectionValues'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'},
+ 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
- @ReturnMapping(ModelConfigResults)
- async def ModelGet(self):
+ @ReturnMapping(StringsResult)
+ async def APIAddresses(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue>
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='ModelGet', version=1, params=_params)
+ msg = dict(type='Deployer',
+ request='APIAddresses',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ModelInfo)
- async def ModelInfo(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('Number'), _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo>]
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
'''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Client', request='ModelInfo', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
-
- @ReturnMapping(None)
- async def ModelSet(self, config):
- '''
- config : typing.Mapping<~KT, +VT_co>[str, typing.Any]
- Returns -> None
+ Returns -> typing.Sequence[~HostPort]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='ModelSet', version=1, params=_params)
- _params['config'] = config
- reply = await self.rpc(msg)
- return reply
-
+ msg = dict(type='Deployer',
+ request='APIHostPorts',
+ version=1,
+ params=_params)
-
- @ReturnMapping(None)
- async def ModelUnset(self, keys):
- '''
- keys : typing.Sequence<+T_co>[str]
- Returns -> None
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Client', request='ModelUnset', version=1, params=_params)
- _params['keys'] = keys
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ModelUserInfoResults)
- async def ModelUserInfo(self):
+ @ReturnMapping(DeployerConnectionValues)
+ async def ConnectionInfo(self):
'''
- Returns -> typing.Sequence<+T_co>[~ModelUserInfoResult]<~ModelUserInfoResult>
+ Returns -> typing.Sequence[str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='ModelUserInfo', version=1, params=_params)
+ msg = dict(type='Deployer',
+ request='ConnectionInfo',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PrivateAddressResults)
- async def PrivateAddress(self, target):
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
'''
- target : str
- Returns -> str
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='PrivateAddress', version=1, params=_params)
- _params['target'] = target
+ msg = dict(type='Deployer',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ProvisioningScriptResult)
- async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce):
+ @ReturnMapping(StringResult)
+ async def ModelUUID(self):
'''
- data_dir : str
- disable_package_commands : bool
- machine_id : str
- nonce : str
- Returns -> str
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='ProvisioningScript', version=1, params=_params)
- _params['data-dir'] = data_dir
- _params['disable-package-commands'] = disable_package_commands
- _params['machine-id'] = machine_id
- _params['nonce'] = nonce
+ msg = dict(type='Deployer',
+ request='ModelUUID',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PublicAddressResults)
- async def PublicAddress(self, target):
+ @ReturnMapping(ErrorResults)
+ async def Remove(self, entities):
'''
- target : str
- Returns -> str
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='PublicAddress', version=1, params=_params)
- _params['target'] = target
+ msg = dict(type='Deployer',
+ request='Remove',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ResolveCharmResults)
- async def ResolveCharms(self, references):
+ @ReturnMapping(ErrorResults)
+ async def SetPasswords(self, changes):
'''
- references : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~ResolveCharmResult]<~ResolveCharmResult>
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='ResolveCharms', version=1, params=_params)
- _params['references'] = references
+ msg = dict(type='Deployer',
+ request='SetPasswords',
+ version=1,
+ params=_params)
+ _params['changes'] = changes
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Resolved(self, retry, unit_name):
+ @ReturnMapping(ErrorResults)
+ async def SetStatus(self, entities):
'''
- retry : bool
- unit_name : str
- Returns -> None
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='Resolved', version=1, params=_params)
- _params['retry'] = retry
- _params['unit-name'] = unit_name
+ msg = dict(type='Deployer',
+ request='SetStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def RetryProvisioning(self, entities):
+ async def UpdateStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='RetryProvisioning', version=1, params=_params)
+ msg = dict(type='Deployer',
+ request='UpdateStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResult)
- async def SLALevel(self):
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchAPIHostPorts(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ Returns -> typing.Union[str, _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='SLALevel', version=1, params=_params)
+ msg = dict(type='Deployer',
+ request='WatchAPIHostPorts',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def SetModelAgentVersion(self, version):
+ @ReturnMapping(StringsWatchResults)
+ async def WatchUnits(self, entities):
'''
- version : Number
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='SetModelAgentVersion', version=1, params=_params)
- _params['version'] = version
+ msg = dict(type='Deployer',
+ request='WatchUnits',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def SetModelConstraints(self, application, constraints):
- '''
- application : str
- constraints : Value
- Returns -> None
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Client', request='SetModelConstraints', version=1, params=_params)
- _params['application'] = application
- _params['constraints'] = constraints
- reply = await self.rpc(msg)
- return reply
-
+class ExternalControllerUpdaterFacade(Type):
+ name = 'ExternalControllerUpdater'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'ExternalControllerInfo': {'additionalProperties': False,
+ 'properties': {'addrs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'ca-cert': {'type': 'string'},
+ 'controller-alias': {'type': 'string'},
+ 'controller-tag': {'type': 'string'}},
+ 'required': ['controller-tag',
+ 'controller-alias',
+ 'addrs',
+ 'ca-cert'],
+ 'type': 'object'},
+ 'ExternalControllerInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/ExternalControllerInfo'}},
+ 'required': ['result',
+ 'error'],
+ 'type': 'object'},
+ 'ExternalControllerInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ExternalControllerInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'SetExternalControllerInfoParams': {'additionalProperties': False,
+ 'properties': {'info': {'$ref': '#/definitions/ExternalControllerInfo'}},
+ 'required': ['info'],
+ 'type': 'object'},
+ 'SetExternalControllersInfoParams': {'additionalProperties': False,
+ 'properties': {'controllers': {'items': {'$ref': '#/definitions/SetExternalControllerInfoParams'},
+ 'type': 'array'}},
+ 'required': ['controllers'],
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'ExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ExternalControllerInfoResults'}},
+ 'type': 'object'},
+ 'SetExternalControllerInfo': {'properties': {'Params': {'$ref': '#/definitions/SetExternalControllersInfoParams'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchExternalControllers': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
- @ReturnMapping(None)
- async def SetSLALevel(self, creds, level):
+ @ReturnMapping(ExternalControllerInfoResults)
+ async def ExternalControllerInfo(self, entities):
'''
- creds : typing.Sequence<+T_co>[int]
- level : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ExternalControllerInfoResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='SetSLALevel', version=1, params=_params)
- _params['creds'] = creds
- _params['level'] = level
+ msg = dict(type='ExternalControllerUpdater',
+ request='ExternalControllerInfo',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StatusHistoryResults)
- async def StatusHistory(self, requests):
+ @ReturnMapping(ErrorResults)
+ async def SetExternalControllerInfo(self, controllers):
'''
- requests : typing.Sequence<+T_co>[~StatusHistoryRequest]<~StatusHistoryRequest>
- Returns -> typing.Sequence<+T_co>[~StatusHistoryResult]<~StatusHistoryResult>
+ controllers : typing.Sequence[~SetExternalControllerInfoParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='StatusHistory', version=1, params=_params)
- _params['requests'] = requests
+ msg = dict(type='ExternalControllerUpdater',
+ request='SetExternalControllerInfo',
+ version=1,
+ params=_params)
+ _params['controllers'] = controllers
reply = await self.rpc(msg)
return reply
- @ReturnMapping(AllWatcherId)
- async def WatchAll(self):
+ @ReturnMapping(StringsWatchResults)
+ async def WatchExternalControllers(self):
'''
- Returns -> str
+ Returns -> typing.Sequence[~StringsWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Client', request='WatchAll', version=1, params=_params)
+ msg = dict(type='ExternalControllerUpdater',
+ request='WatchExternalControllers',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class CloudFacade(Type):
- name = 'Cloud'
+class FanConfigurerFacade(Type):
+ name = 'FanConfigurer'
version = 1
- schema = {'definitions': {'Cloud': {'additionalProperties': False,
- 'properties': {'auth-types': {'items': {'type': 'string'},
- 'type': 'array'},
- 'endpoint': {'type': 'string'},
- 'identity-endpoint': {'type': 'string'},
- 'regions': {'items': {'$ref': '#/definitions/CloudRegion'},
- 'type': 'array'},
- 'storage-endpoint': {'type': 'string'},
- 'type': {'type': 'string'}},
- 'required': ['type'],
- 'type': 'object'},
- 'CloudCredential': {'additionalProperties': False,
- 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}},
- 'type': 'object'},
- 'auth-type': {'type': 'string'},
- 'redacted': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['auth-type'],
- 'type': 'object'},
- 'CloudCredentialResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'$ref': '#/definitions/CloudCredential'}},
- 'type': 'object'},
- 'CloudCredentialResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'CloudInstanceTypesConstraint': {'additionalProperties': False,
- 'properties': {'cloud-tag': {'type': 'string'},
- 'constraints': {'$ref': '#/definitions/Value'},
- 'region': {'type': 'string'}},
- 'required': ['cloud-tag',
- 'region'],
- 'type': 'object'},
- 'CloudInstanceTypesConstraints': {'additionalProperties': False,
- 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'},
- 'type': 'array'}},
- 'required': ['constraints'],
- 'type': 'object'},
- 'CloudRegion': {'additionalProperties': False,
- 'properties': {'endpoint': {'type': 'string'},
- 'identity-endpoint': {'type': 'string'},
- 'name': {'type': 'string'},
- 'storage-endpoint': {'type': 'string'}},
- 'required': ['name'],
- 'type': 'object'},
- 'CloudResult': {'additionalProperties': False,
- 'properties': {'cloud': {'$ref': '#/definitions/Cloud'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'CloudResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'CloudsResult': {'additionalProperties': False,
- 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}},
- 'type': 'object'}},
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'FanConfigEntry': {'additionalProperties': False,
+ 'properties': {'overlay': {'type': 'string'},
+ 'underlay': {'type': 'string'}},
+ 'required': ['underlay', 'overlay'],
+ 'type': 'object'},
+ 'FanConfigResult': {'additionalProperties': False,
+ 'properties': {'fans': {'items': {'$ref': '#/definitions/FanConfigEntry'},
+ 'type': 'array'}},
+ 'required': ['fans'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'}},
+ 'properties': {'FanConfig': {'properties': {'Result': {'$ref': '#/definitions/FanConfigResult'}},
'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
+ 'WatchForFanConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(FanConfigResult)
+ async def FanConfig(self):
+ '''
+
+ Returns -> typing.Sequence[~FanConfigEntry]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='FanConfigurer',
+ request='FanConfig',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchForFanConfigChanges(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='FanConfigurer',
+ request='WatchForFanConfigChanges',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class FirewallRulesFacade(Type):
+ name = 'FirewallRules'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'InstanceType': {'additionalProperties': False,
- 'properties': {'arches': {'items': {'type': 'string'},
- 'type': 'array'},
- 'cost': {'type': 'integer'},
- 'cpu-cores': {'type': 'integer'},
- 'deprecated': {'type': 'boolean'},
- 'memory': {'type': 'integer'},
- 'name': {'type': 'string'},
- 'root-disk': {'type': 'integer'},
- 'virt-type': {'type': 'string'}},
- 'required': ['arches', 'cpu-cores', 'memory'],
- 'type': 'object'},
- 'InstanceTypesResult': {'additionalProperties': False,
- 'properties': {'cost-currency': {'type': 'string'},
- 'cost-divisor': {'type': 'integer'},
- 'cost-unit': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'},
- 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'},
- 'type': 'array'}},
- 'type': 'object'},
- 'InstanceTypesResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'},
+ 'FirewallRule': {'additionalProperties': False,
+ 'properties': {'known-service': {'type': 'string'},
+ 'whitelist-cidrs': {'items': {'type': 'string'},
'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'required': ['result'],
- 'type': 'object'},
- 'StringsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'StringsResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'UpdateCloudCredential': {'additionalProperties': False,
- 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'credential'],
- 'type': 'object'},
- 'UpdateCloudCredentials': {'additionalProperties': False,
- 'properties': {'credentials': {'items': {'$ref': '#/definitions/UpdateCloudCredential'},
- 'type': 'array'}},
- 'type': 'object'},
- 'UserCloud': {'additionalProperties': False,
- 'properties': {'cloud-tag': {'type': 'string'},
- 'user-tag': {'type': 'string'}},
- 'required': ['user-tag', 'cloud-tag'],
- 'type': 'object'},
- 'UserClouds': {'additionalProperties': False,
- 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'},
- 'type': 'array'}},
- 'type': 'object'},
- 'Value': {'additionalProperties': False,
- 'properties': {'arch': {'type': 'string'},
- 'container': {'type': 'string'},
- 'cores': {'type': 'integer'},
- 'cpu-power': {'type': 'integer'},
- 'instance-type': {'type': 'string'},
- 'mem': {'type': 'integer'},
- 'root-disk': {'type': 'integer'},
- 'spaces': {'items': {'type': 'string'},
- 'type': 'array'},
- 'tags': {'items': {'type': 'string'},
- 'type': 'array'},
- 'virt-type': {'type': 'string'}},
- 'type': 'object'}},
- 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/CloudResults'}},
- 'type': 'object'},
- 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}},
- 'type': 'object'},
- 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/CloudCredentialResults'}},
- 'type': 'object'},
- 'DefaultCloud': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'},
- 'Result': {'$ref': '#/definitions/InstanceTypesResults'}},
+ 'required': ['known-service'],
'type': 'object'},
- 'RevokeCredentials': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'FirewallRuleArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/FirewallRule'},
+ 'type': 'array'}},
+ 'required': ['args'],
'type': 'object'},
- 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudCredentials'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'ListFirewallRulesResults': {'additionalProperties': False,
+ 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'},
+ 'type': 'array'}},
+ 'required': ['Rules'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
+ 'properties': {'ListFirewallRules': {'properties': {'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}},
'type': 'object'},
- 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'},
- 'Result': {'$ref': '#/definitions/StringsResults'}},
- 'type': 'object'}},
+ 'SetFirewallRules': {'properties': {'Params': {'$ref': '#/definitions/FirewallRuleArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
-
- @ReturnMapping(CloudResults)
- async def Cloud(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~CloudResult]<~CloudResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Cloud', request='Cloud', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
- @ReturnMapping(CloudsResult)
- async def Clouds(self):
+ @ReturnMapping(ListFirewallRulesResults)
+ async def ListFirewallRules(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, ~Cloud]<~Cloud>
+ Returns -> typing.Sequence[~FirewallRule]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='Clouds', version=1, params=_params)
+ msg = dict(type='FirewallRules',
+ request='ListFirewallRules',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(CloudCredentialResults)
- async def Credential(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SetFirewallRules(self, args):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~CloudCredentialResult]<~CloudCredentialResult>
+ args : typing.Sequence[~FirewallRule]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='Credential', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='FirewallRules',
+ request='SetFirewallRules',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResult)
- async def DefaultCloud(self):
- '''
+class HostKeyReporterFacade(Type):
+ name = 'HostKeyReporter'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'SSHHostKeySet': {'additionalProperties': False,
+ 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'},
+ 'type': 'array'}},
+ 'required': ['entity-keys'],
+ 'type': 'object'},
+ 'SSHHostKeys': {'additionalProperties': False,
+ 'properties': {'public-keys': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'public-keys'],
+ 'type': 'object'}},
+ 'properties': {'ReportKeys': {'properties': {'Params': {'$ref': '#/definitions/SSHHostKeySet'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
- Returns -> typing.Union[_ForwardRef('Error'), str]
+
+ @ReturnMapping(ErrorResults)
+ async def ReportKeys(self, entity_keys):
+ '''
+ entity_keys : typing.Sequence[~SSHHostKeys]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='DefaultCloud', version=1, params=_params)
-
+ msg = dict(type='HostKeyReporter',
+ request='ReportKeys',
+ version=1,
+ params=_params)
+ _params['entity-keys'] = entity_keys
reply = await self.rpc(msg)
return reply
- @ReturnMapping(InstanceTypesResults)
- async def InstanceTypes(self, constraints):
+class KeyManagerFacade(Type):
+ name = 'KeyManager'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'ListSSHKeys': {'additionalProperties': False,
+ 'properties': {'entities': {'$ref': '#/definitions/Entities'},
+ 'mode': {'type': 'boolean'}},
+ 'required': ['entities', 'mode'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModifyUserSSHKeys': {'additionalProperties': False,
+ 'properties': {'ssh-keys': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'user': {'type': 'string'}},
+ 'required': ['user', 'ssh-keys'],
+ 'type': 'object'},
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'StringsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'AddKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'DeleteKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'ImportKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'ListKeys': {'properties': {'Params': {'$ref': '#/definitions/ListSSHKeys'},
+ 'Result': {'$ref': '#/definitions/StringsResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ErrorResults)
+ async def AddKeys(self, ssh_keys, user):
'''
- constraints : typing.Sequence<+T_co>[~CloudInstanceTypesConstraint]<~CloudInstanceTypesConstraint>
- Returns -> typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult>
+ ssh_keys : typing.Sequence[str]
+ user : str
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='InstanceTypes', version=1, params=_params)
- _params['constraints'] = constraints
+ msg = dict(type='KeyManager',
+ request='AddKeys',
+ version=1,
+ params=_params)
+ _params['ssh-keys'] = ssh_keys
+ _params['user'] = user
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def RevokeCredentials(self, entities):
+ async def DeleteKeys(self, ssh_keys, user):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ ssh_keys : typing.Sequence[str]
+ user : str
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='RevokeCredentials', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='KeyManager',
+ request='DeleteKeys',
+ version=1,
+ params=_params)
+ _params['ssh-keys'] = ssh_keys
+ _params['user'] = user
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def UpdateCredentials(self, credentials):
+ async def ImportKeys(self, ssh_keys, user):
'''
- credentials : typing.Sequence<+T_co>[~UpdateCloudCredential]<~UpdateCloudCredential>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ ssh_keys : typing.Sequence[str]
+ user : str
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='UpdateCredentials', version=1, params=_params)
- _params['credentials'] = credentials
+ msg = dict(type='KeyManager',
+ request='ImportKeys',
+ version=1,
+ params=_params)
+ _params['ssh-keys'] = ssh_keys
+ _params['user'] = user
reply = await self.rpc(msg)
return reply
@ReturnMapping(StringsResults)
- async def UserCredentials(self, user_clouds):
+ async def ListKeys(self, entities, mode):
'''
- user_clouds : typing.Sequence<+T_co>[~UserCloud]<~UserCloud>
- Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult>
+ entities : Entities
+ mode : bool
+ Returns -> typing.Sequence[~StringsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cloud', request='UserCredentials', version=1, params=_params)
- _params['user-clouds'] = user_clouds
+ msg = dict(type='KeyManager',
+ request='ListKeys',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ _params['mode'] = mode
reply = await self.rpc(msg)
return reply
-class DeployerFacade(Type):
- name = 'Deployer'
+class KeyUpdaterFacade(Type):
+ name = 'KeyUpdater'
version = 1
- schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
- 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
- 'type': 'array'},
- 'type': 'array'}},
- 'required': ['servers'],
- 'type': 'object'},
- 'Address': {'additionalProperties': False,
- 'properties': {'scope': {'type': 'string'},
- 'space-name': {'type': 'string'},
- 'type': {'type': 'string'},
- 'value': {'type': 'string'}},
- 'required': ['value', 'type', 'scope'],
- 'type': 'object'},
- 'BytesResult': {'additionalProperties': False,
- 'properties': {'result': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['result'],
- 'type': 'object'},
- 'DeployerConnectionValues': {'additionalProperties': False,
- 'properties': {'api-addresses': {'items': {'type': 'string'},
- 'type': 'array'},
- 'state-addresses': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['state-addresses',
- 'api-addresses'],
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'object'},
- 'EntityPassword': {'additionalProperties': False,
- 'properties': {'password': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'password'],
- 'type': 'object'},
- 'EntityPasswords': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'},
- 'type': 'array'}},
- 'required': ['changes'],
- 'type': 'object'},
- 'EntityStatusArgs': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'status': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag',
- 'status',
- 'info',
- 'data'],
- 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'HostPort': {'additionalProperties': False,
- 'properties': {'Address': {'$ref': '#/definitions/Address'},
- 'port': {'type': 'integer'}},
- 'required': ['Address', 'port'],
- 'type': 'object'},
- 'LifeResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'life': {'type': 'string'}},
- 'required': ['life'],
- 'type': 'object'},
- 'LifeResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'required': ['NotifyWatcherId'],
'type': 'object'},
- 'SetStatus': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'required': ['result'],
- 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'StringsResult': {'additionalProperties': False,
'properties': {'error': {'$ref': '#/definitions/Error'},
'result': {'items': {'type': 'string'},
'type': 'array'}},
'type': 'object'},
- 'StringsWatchResult': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id'],
- 'type': 'object'},
- 'StringsWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
- 'type': 'object'},
- 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
- 'type': 'object'},
- 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
- 'type': 'object'},
- 'ConnectionInfo': {'properties': {'Result': {'$ref': '#/definitions/DeployerConnectionValues'}},
- 'type': 'object'},
- 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/LifeResults'}},
- 'type': 'object'},
- 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'SetPasswords': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'StateAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
+ 'StringsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'AuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringsResults'}},
'type': 'object'},
- 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'},
- 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
- 'type': 'object'}},
+ 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
-
- @ReturnMapping(StringsResult)
- async def APIAddresses(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Deployer', request='APIAddresses', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
- @ReturnMapping(APIHostPortsResult)
- async def APIHostPorts(self):
+ @ReturnMapping(StringsResults)
+ async def AuthorisedKeys(self, entities):
'''
-
- Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='APIHostPorts', version=1, params=_params)
-
+ msg = dict(type='KeyUpdater',
+ request='AuthorisedKeys',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(BytesResult)
- async def CACert(self):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchAuthorisedKeys(self, entities):
'''
-
- Returns -> typing.Sequence<+T_co>[int]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='CACert', version=1, params=_params)
-
+ msg = dict(type='KeyUpdater',
+ request='WatchAuthorisedKeys',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(DeployerConnectionValues)
- async def ConnectionInfo(self):
- '''
-
- Returns -> typing.Sequence<+T_co>[str]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Deployer', request='ConnectionInfo', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
+class LifeFlagFacade(Type):
+ name = 'LifeFlag'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'LifeResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'life': {'type': 'string'}},
+ 'required': ['life'],
+ 'type': 'object'},
+ 'LifeResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/LifeResults'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
@ReturnMapping(LifeResults)
async def Life(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='Life', version=1, params=_params)
+ msg = dict(type='LifeFlag',
+ request='Life',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResult)
- async def ModelUUID(self):
+ @ReturnMapping(NotifyWatchResults)
+ async def Watch(self, entities):
'''
-
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='ModelUUID', version=1, params=_params)
-
+ msg = dict(type='LifeFlag',
+ request='Watch',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def Remove(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Deployer', request='Remove', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
+class LogForwardingFacade(Type):
+ name = 'LogForwarding'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'LogForwardingGetLastSentParams': {'additionalProperties': False,
+ 'properties': {'ids': {'items': {'$ref': '#/definitions/LogForwardingID'},
+ 'type': 'array'}},
+ 'required': ['ids'],
+ 'type': 'object'},
+ 'LogForwardingGetLastSentResult': {'additionalProperties': False,
+ 'properties': {'err': {'$ref': '#/definitions/Error'},
+ 'record-id': {'type': 'integer'},
+ 'record-timestamp': {'type': 'integer'}},
+ 'required': ['record-id',
+ 'record-timestamp',
+ 'err'],
+ 'type': 'object'},
+ 'LogForwardingGetLastSentResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/LogForwardingGetLastSentResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'LogForwardingID': {'additionalProperties': False,
+ 'properties': {'model': {'type': 'string'},
+ 'sink': {'type': 'string'}},
+ 'required': ['model', 'sink'],
+ 'type': 'object'},
+ 'LogForwardingSetLastSentParam': {'additionalProperties': False,
+ 'properties': {'LogForwardingID': {'$ref': '#/definitions/LogForwardingID'},
+ 'record-id': {'type': 'integer'},
+ 'record-timestamp': {'type': 'integer'}},
+ 'required': ['LogForwardingID',
+ 'record-id',
+ 'record-timestamp'],
+ 'type': 'object'},
+ 'LogForwardingSetLastSentParams': {'additionalProperties': False,
+ 'properties': {'params': {'items': {'$ref': '#/definitions/LogForwardingSetLastSentParam'},
+ 'type': 'array'}},
+ 'required': ['params'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
+ 'properties': {'GetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingGetLastSentParams'},
+ 'Result': {'$ref': '#/definitions/LogForwardingGetLastSentResults'}},
+ 'type': 'object'},
+ 'SetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingSetLastSentParams'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
- @ReturnMapping(ErrorResults)
- async def SetPasswords(self, changes):
+ @ReturnMapping(LogForwardingGetLastSentResults)
+ async def GetLastSent(self, ids):
'''
- changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ ids : typing.Sequence[~LogForwardingID]
+ Returns -> typing.Sequence[~LogForwardingGetLastSentResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='SetPasswords', version=1, params=_params)
- _params['changes'] = changes
+ msg = dict(type='LogForwarding',
+ request='GetLastSent',
+ version=1,
+ params=_params)
+ _params['ids'] = ids
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetStatus(self, entities):
+ async def SetLastSent(self, params):
'''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ params : typing.Sequence[~LogForwardingSetLastSentParam]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='SetStatus', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='LogForwarding',
+ request='SetLastSent',
+ version=1,
+ params=_params)
+ _params['params'] = params
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsResult)
- async def StateAddresses(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Deployer', request='StateAddresses', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
+class LoggerFacade(Type):
+ name = 'Logger'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'LoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringResults'}},
+ 'type': 'object'},
+ 'WatchLoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
- @ReturnMapping(ErrorResults)
- async def UpdateStatus(self, entities):
+ @ReturnMapping(StringResults)
+ async def LoggingConfig(self, entities):
'''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='UpdateStatus', version=1, params=_params)
+ msg = dict(type='Logger',
+ request='LoggingConfig',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchAPIHostPorts(self):
- '''
-
- Returns -> typing.Union[str, _ForwardRef('Error')]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Deployer', request='WatchAPIHostPorts', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(StringsWatchResults)
- async def WatchUnits(self, entities):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchLoggingConfig(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Deployer', request='WatchUnits', version=1, params=_params)
+ msg = dict(type='Logger',
+ request='WatchLoggingConfig',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class HostKeyReporterFacade(Type):
- name = 'HostKeyReporter'
+class MachineActionsFacade(Type):
+ name = 'MachineActions'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
+ schema = {'definitions': {'Action': {'additionalProperties': False,
+ 'properties': {'name': {'type': 'string'},
+ 'parameters': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'receiver': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'receiver', 'name'],
+ 'type': 'object'},
+ 'ActionExecutionResult': {'additionalProperties': False,
+ 'properties': {'action-tag': {'type': 'string'},
+ 'message': {'type': 'string'},
+ 'results': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'status': {'type': 'string'}},
+ 'required': ['action-tag', 'status'],
+ 'type': 'object'},
+ 'ActionExecutionResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'ActionResult': {'additionalProperties': False,
+ 'properties': {'action': {'$ref': '#/definitions/Action'},
+ 'completed': {'format': 'date-time',
+ 'type': 'string'},
+ 'enqueued': {'format': 'date-time',
+ 'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'message': {'type': 'string'},
+ 'output': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'started': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'SSHHostKeySet': {'additionalProperties': False,
- 'properties': {'entity-keys': {'items': {'$ref': '#/definitions/SSHHostKeys'},
- 'type': 'array'}},
- 'required': ['entity-keys'],
+ 'ActionResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'},
+ 'type': 'array'}},
'type': 'object'},
- 'SSHHostKeys': {'additionalProperties': False,
- 'properties': {'public-keys': {'items': {'type': 'string'},
- 'type': 'array'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'public-keys'],
- 'type': 'object'}},
- 'properties': {'ReportKeys': {'properties': {'Params': {'$ref': '#/definitions/SSHHostKeySet'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(ErrorResults)
- async def ReportKeys(self, entity_keys):
- '''
- entity_keys : typing.Sequence<+T_co>[~SSHHostKeys]<~SSHHostKeys>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='HostKeyReporter', request='ReportKeys', version=1, params=_params)
- _params['entity-keys'] = entity_keys
- reply = await self.rpc(msg)
- return reply
-
-
-
-class KeyManagerFacade(Type):
- name = 'KeyManager'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'ActionsByReceiver': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'receiver': {'type': 'string'}},
+ 'type': 'object'},
+ 'ActionsByReceivers': {'additionalProperties': False,
+ 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'ListSSHKeys': {'additionalProperties': False,
- 'properties': {'entities': {'$ref': '#/definitions/Entities'},
- 'mode': {'type': 'boolean'}},
- 'required': ['entities', 'mode'],
- 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'ModifyUserSSHKeys': {'additionalProperties': False,
- 'properties': {'ssh-keys': {'items': {'type': 'string'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
'type': 'array'},
- 'user': {'type': 'string'}},
- 'required': ['user', 'ssh-keys'],
- 'type': 'object'},
- 'StringsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'StringsResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'AddKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionResults'}},
'type': 'object'},
- 'DeleteKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'ImportKeys': {'properties': {'Params': {'$ref': '#/definitions/ModifyUserSSHKeys'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'ListKeys': {'properties': {'Params': {'$ref': '#/definitions/ListSSHKeys'},
- 'Result': {'$ref': '#/definitions/StringsResults'}},
- 'type': 'object'}},
+ 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'RunningActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
+ 'type': 'object'},
+ 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(ErrorResults)
- async def AddKeys(self, ssh_keys, user):
+
+ @ReturnMapping(ActionResults)
+ async def Actions(self, entities):
'''
- ssh_keys : typing.Sequence<+T_co>[str]
- user : str
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyManager', request='AddKeys', version=1, params=_params)
- _params['ssh-keys'] = ssh_keys
- _params['user'] = user
+ msg = dict(type='MachineActions',
+ request='Actions',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def DeleteKeys(self, ssh_keys, user):
+ async def BeginActions(self, entities):
'''
- ssh_keys : typing.Sequence<+T_co>[str]
- user : str
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyManager', request='DeleteKeys', version=1, params=_params)
- _params['ssh-keys'] = ssh_keys
- _params['user'] = user
+ msg = dict(type='MachineActions',
+ request='BeginActions',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def ImportKeys(self, ssh_keys, user):
+ async def FinishActions(self, results):
'''
- ssh_keys : typing.Sequence<+T_co>[str]
- user : str
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ results : typing.Sequence[~ActionExecutionResult]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyManager', request='ImportKeys', version=1, params=_params)
- _params['ssh-keys'] = ssh_keys
- _params['user'] = user
+ msg = dict(type='MachineActions',
+ request='FinishActions',
+ version=1,
+ params=_params)
+ _params['results'] = results
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsResults)
- async def ListKeys(self, entities, mode):
+ @ReturnMapping(ActionsByReceivers)
+ async def RunningActions(self, entities):
'''
- entities : Entities
- mode : bool
- Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyManager', request='ListKeys', version=1, params=_params)
+ msg = dict(type='MachineActions',
+ request='RunningActions',
+ version=1,
+ params=_params)
_params['entities'] = entities
- _params['mode'] = mode
reply = await self.rpc(msg)
return reply
-class KeyUpdaterFacade(Type):
- name = 'KeyUpdater'
+ @ReturnMapping(StringsWatchResults)
+ async def WatchActionNotifications(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MachineActions',
+ request='WatchActionNotifications',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class MachineUndertakerFacade(Type):
+ name = 'MachineUndertaker'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'type': 'object'},
+ 'EntitiesResult': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'EntitiesResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'Entity': {'additionalProperties': False,
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'StringsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'StringsResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'AuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/StringsResults'}},
- 'type': 'object'},
- 'WatchAuthorisedKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'ProviderInterfaceInfo': {'additionalProperties': False,
+ 'properties': {'interface-name': {'type': 'string'},
+ 'mac-address': {'type': 'string'},
+ 'provider-id': {'type': 'string'}},
+ 'required': ['interface-name',
+ 'mac-address',
+ 'provider-id'],
+ 'type': 'object'},
+ 'ProviderInterfaceInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'interfaces': {'items': {'$ref': '#/definitions/ProviderInterfaceInfo'},
+ 'type': 'array'},
+ 'machine-tag': {'type': 'string'}},
+ 'required': ['machine-tag',
+ 'interfaces'],
+ 'type': 'object'},
+ 'ProviderInterfaceInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderInterfaceInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'AllMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/EntitiesResults'}},
+ 'type': 'object'},
+ 'CompleteMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}},
+ 'type': 'object'},
+ 'GetMachineProviderInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ProviderInterfaceInfoResults'}},
+ 'type': 'object'},
+ 'WatchMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(StringsResults)
- async def AuthorisedKeys(self, entities):
+
+ @ReturnMapping(EntitiesResults)
+ async def AllMachineRemovals(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~EntitiesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MachineUndertaker',
+ request='AllMachineRemovals',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def CompleteMachineRemovals(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MachineUndertaker',
+ request='CompleteMachineRemovals',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ProviderInterfaceInfoResults)
+ async def GetMachineProviderInterfaceInfo(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ProviderInterfaceInfoResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyUpdater', request='AuthorisedKeys', version=1, params=_params)
+ msg = dict(type='MachineUndertaker',
+ request='GetMachineProviderInterfaceInfo',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(NotifyWatchResults)
- async def WatchAuthorisedKeys(self, entities):
+ async def WatchMachineRemovals(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='KeyUpdater', request='WatchAuthorisedKeys', version=1, params=_params)
+ msg = dict(type='MachineUndertaker',
+ request='WatchMachineRemovals',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class LifeFlagFacade(Type):
- name = 'LifeFlag'
+class MachinerFacade(Type):
+ name = 'Machiner'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
+ 'type': 'object'},
+ 'JobsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'jobs': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['jobs'],
+ 'type': 'object'},
+ 'JobsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/JobsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'LifeResult': {'additionalProperties': False,
'properties': {'error': {'$ref': '#/definitions/Error'},
'life': {'type': 'string'}},
'required': ['results'],
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MachineAddresses': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
+ 'type': 'array'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'addresses'],
+ 'type': 'object'},
+ 'NetworkConfig': {'additionalProperties': False,
+ 'properties': {'address': {'type': 'string'},
+ 'cidr': {'type': 'string'},
+ 'config-type': {'type': 'string'},
+ 'device-index': {'type': 'integer'},
+ 'disabled': {'type': 'boolean'},
+ 'dns-search-domains': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'dns-servers': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'gateway-address': {'type': 'string'},
+ 'interface-name': {'type': 'string'},
+ 'interface-type': {'type': 'string'},
+ 'is-default-gateway': {'type': 'boolean'},
+ 'mac-address': {'type': 'string'},
+ 'mtu': {'type': 'integer'},
+ 'no-auto-start': {'type': 'boolean'},
+ 'parent-interface-name': {'type': 'string'},
+ 'provider-address-id': {'type': 'string'},
+ 'provider-id': {'type': 'string'},
+ 'provider-space-id': {'type': 'string'},
+ 'provider-subnet-id': {'type': 'string'},
+ 'provider-vlan-id': {'type': 'string'},
+ 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'},
+ 'type': 'array'},
+ 'vlan-tag': {'type': 'integer'}},
+ 'required': ['device-index',
+ 'mac-address',
+ 'cidr',
+ 'mtu',
+ 'provider-id',
+ 'provider-subnet-id',
+ 'provider-space-id',
+ 'provider-address-id',
+ 'provider-vlan-id',
+ 'vlan-tag',
+ 'interface-name',
+ 'parent-interface-name',
+ 'interface-type',
+ 'disabled'],
+ 'type': 'object'},
+ 'NetworkRoute': {'additionalProperties': False,
+ 'properties': {'destination-cidr': {'type': 'string'},
+ 'gateway-ip': {'type': 'string'},
+ 'metric': {'type': 'integer'}},
+ 'required': ['destination-cidr',
+ 'gateway-ip',
+ 'metric'],
+ 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
'type': 'array'}},
'required': ['results'],
- 'type': 'object'}},
- 'properties': {'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'type': 'object'},
+ 'SetMachineNetworkConfig': {'additionalProperties': False,
+ 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'},
+ 'type': 'array'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'config'],
+ 'type': 'object'},
+ 'SetMachinesAddresses': {'additionalProperties': False,
+ 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'},
+ 'type': 'array'}},
+ 'required': ['machine-addresses'],
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
+ 'type': 'object'},
+ 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Jobs': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/JobsResults'}},
+ 'type': 'object'},
+ 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
'Result': {'$ref': '#/definitions/LifeResults'}},
'type': 'object'},
+ 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'SetMachineAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}},
+ 'type': 'object'},
+ 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'type': 'object'},
+ 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(LifeResults)
- async def Life(self, entities):
+
+ @ReturnMapping(StringsResult)
+ async def APIAddresses(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Machiner',
+ request='APIAddresses',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
+ '''
+
+ Returns -> typing.Sequence[~HostPort]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Machiner',
+ request='APIHostPorts',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def EnsureDead(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LifeFlag', request='Life', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='EnsureDead',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def Watch(self, entities):
+ @ReturnMapping(JobsResults)
+ async def Jobs(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~JobsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LifeFlag', request='Watch', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='Jobs',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class LogForwardingFacade(Type):
- name = 'LogForwarding'
- version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'LogForwardingGetLastSentParams': {'additionalProperties': False,
- 'properties': {'ids': {'items': {'$ref': '#/definitions/LogForwardingID'},
- 'type': 'array'}},
- 'required': ['ids'],
- 'type': 'object'},
- 'LogForwardingGetLastSentResult': {'additionalProperties': False,
- 'properties': {'err': {'$ref': '#/definitions/Error'},
- 'record-id': {'type': 'integer'},
- 'record-timestamp': {'type': 'integer'}},
- 'required': ['record-id',
- 'record-timestamp',
- 'err'],
- 'type': 'object'},
- 'LogForwardingGetLastSentResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/LogForwardingGetLastSentResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'LogForwardingID': {'additionalProperties': False,
- 'properties': {'model': {'type': 'string'},
- 'sink': {'type': 'string'}},
- 'required': ['model', 'sink'],
- 'type': 'object'},
- 'LogForwardingSetLastSentParam': {'additionalProperties': False,
- 'properties': {'LogForwardingID': {'$ref': '#/definitions/LogForwardingID'},
- 'record-id': {'type': 'integer'},
- 'record-timestamp': {'type': 'integer'}},
- 'required': ['LogForwardingID',
- 'record-id',
- 'record-timestamp'],
- 'type': 'object'},
- 'LogForwardingSetLastSentParams': {'additionalProperties': False,
- 'properties': {'params': {'items': {'$ref': '#/definitions/LogForwardingSetLastSentParam'},
- 'type': 'array'}},
- 'required': ['params'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
- 'properties': {'GetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingGetLastSentParams'},
- 'Result': {'$ref': '#/definitions/LogForwardingGetLastSentResults'}},
- 'type': 'object'},
- 'SetLastSent': {'properties': {'Params': {'$ref': '#/definitions/LogForwardingSetLastSentParams'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
+ @ReturnMapping(LifeResults)
+ async def Life(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~LifeResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Machiner',
+ request='Life',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
- @ReturnMapping(LogForwardingGetLastSentResults)
- async def GetLastSent(self, ids):
+ @ReturnMapping(StringResult)
+ async def ModelUUID(self):
'''
- ids : typing.Sequence<+T_co>[~LogForwardingID]<~LogForwardingID>
- Returns -> typing.Sequence<+T_co>[~LogForwardingGetLastSentResult]<~LogForwardingGetLastSentResult>
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LogForwarding', request='GetLastSent', version=1, params=_params)
- _params['ids'] = ids
+ msg = dict(type='Machiner',
+ request='ModelUUID',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetLastSent(self, params):
+ async def SetMachineAddresses(self, machine_addresses):
'''
- params : typing.Sequence<+T_co>[~LogForwardingSetLastSentParam]<~LogForwardingSetLastSentParam>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ machine_addresses : typing.Sequence[~MachineAddresses]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LogForwarding', request='SetLastSent', version=1, params=_params)
- _params['params'] = params
+ msg = dict(type='Machiner',
+ request='SetMachineAddresses',
+ version=1,
+ params=_params)
+ _params['machine-addresses'] = machine_addresses
reply = await self.rpc(msg)
return reply
-class LoggerFacade(Type):
- name = 'Logger'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'required': ['result'],
- 'type': 'object'},
- 'StringResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'LoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/StringResults'}},
- 'type': 'object'},
- 'WatchLoggingConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
+ @ReturnMapping(None)
+ async def SetObservedNetworkConfig(self, config, tag):
+ '''
+ config : typing.Sequence[~NetworkConfig]
+ tag : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Machiner',
+ request='SetObservedNetworkConfig',
+ version=1,
+ params=_params)
+ _params['config'] = config
+ _params['tag'] = tag
+ reply = await self.rpc(msg)
+ return reply
- @ReturnMapping(StringResults)
- async def LoggingConfig(self, entities):
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetProviderNetworkConfig(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Logger', request='LoggingConfig', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='SetProviderNetworkConfig',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchLoggingConfig(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SetStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Logger', request='WatchLoggingConfig', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='SetStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class MachineActionsFacade(Type):
- name = 'MachineActions'
- version = 1
- schema = {'definitions': {'Action': {'additionalProperties': False,
- 'properties': {'name': {'type': 'string'},
- 'parameters': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'receiver': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'receiver', 'name'],
- 'type': 'object'},
- 'ActionExecutionResult': {'additionalProperties': False,
- 'properties': {'action-tag': {'type': 'string'},
- 'message': {'type': 'string'},
- 'results': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'status': {'type': 'string'}},
- 'required': ['action-tag', 'status'],
- 'type': 'object'},
- 'ActionExecutionResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'ActionResult': {'additionalProperties': False,
- 'properties': {'action': {'$ref': '#/definitions/Action'},
- 'completed': {'format': 'date-time',
- 'type': 'string'},
- 'enqueued': {'format': 'date-time',
- 'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'},
- 'message': {'type': 'string'},
- 'output': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'started': {'format': 'date-time',
- 'type': 'string'},
- 'status': {'type': 'string'}},
- 'type': 'object'},
- 'ActionResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'},
- 'type': 'array'}},
- 'type': 'object'},
- 'ActionsByReceiver': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionResult'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'receiver': {'type': 'string'}},
- 'type': 'object'},
- 'ActionsByReceivers': {'additionalProperties': False,
- 'properties': {'actions': {'items': {'$ref': '#/definitions/ActionsByReceiver'},
- 'type': 'array'}},
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'StringsWatchResult': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id'],
- 'type': 'object'},
- 'StringsWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionResults'}},
- 'type': 'object'},
- 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'RunningActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ActionsByReceivers'}},
- 'type': 'object'},
- 'WatchActionNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(ActionResults)
- async def Actions(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def UpdateStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineActions', request='Actions', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='UpdateStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def BeginActions(self, entities):
+ @ReturnMapping(NotifyWatchResults)
+ async def Watch(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineActions', request='BeginActions', version=1, params=_params)
+ msg = dict(type='Machiner',
+ request='Watch',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def FinishActions(self, results):
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchAPIHostPorts(self):
'''
- results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineActions', request='FinishActions', version=1, params=_params)
- _params['results'] = results
+ msg = dict(type='Machiner',
+ request='WatchAPIHostPorts',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ActionsByReceivers)
- async def RunningActions(self, entities):
+class MeterStatusFacade(Type):
+ name = 'MeterStatus'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MeterStatusResult': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'info': {'type': 'string'}},
+ 'required': ['code', 'info'],
+ 'type': 'object'},
+ 'MeterStatusResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/MeterStatusResults'}},
+ 'type': 'object'},
+ 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(MeterStatusResults)
+ async def GetMeterStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~MeterStatusResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineActions', request='RunningActions', version=1, params=_params)
+ msg = dict(type='MeterStatus',
+ request='GetMeterStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResults)
- async def WatchActionNotifications(self, entities):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchMeterStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineActions', request='WatchActionNotifications', version=1, params=_params)
+ msg = dict(type='MeterStatus',
+ request='WatchMeterStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class MachineUndertakerFacade(Type):
- name = 'MachineUndertaker'
+class MetricsManagerFacade(Type):
+ name = 'MetricsManager'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'type': 'object'},
- 'EntitiesResult': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'EntitiesResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
'Entity': {'additionalProperties': False,
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'ProviderInterfaceInfo': {'additionalProperties': False,
- 'properties': {'interface-name': {'type': 'string'},
- 'mac-address': {'type': 'string'},
- 'provider-id': {'type': 'string'}},
- 'required': ['interface-name',
- 'mac-address',
- 'provider-id'],
- 'type': 'object'},
- 'ProviderInterfaceInfoResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'interfaces': {'items': {'$ref': '#/definitions/ProviderInterfaceInfo'},
- 'type': 'array'},
- 'machine-tag': {'type': 'string'}},
- 'required': ['machine-tag',
- 'interfaces'],
- 'type': 'object'},
- 'ProviderInterfaceInfoResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ProviderInterfaceInfoResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'AllMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/EntitiesResults'}},
- 'type': 'object'},
- 'CompleteMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'}},
- 'type': 'object'},
- 'GetMachineProviderInterfaceInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ProviderInterfaceInfoResults'}},
- 'type': 'object'},
- 'WatchMachineRemovals': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
+ 'properties': {'AddJujuMachineMetrics': {'type': 'object'},
+ 'CleanupOldMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SendMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
-
- @ReturnMapping(EntitiesResults)
- async def AllMachineRemovals(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~EntitiesResult]<~EntitiesResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MachineUndertaker', request='AllMachineRemovals', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
@ReturnMapping(None)
- async def CompleteMachineRemovals(self, entities):
+ async def AddJujuMachineMetrics(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
+
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineUndertaker', request='CompleteMachineRemovals', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MetricsManager',
+ request='AddJujuMachineMetrics',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ProviderInterfaceInfoResults)
- async def GetMachineProviderInterfaceInfo(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def CleanupOldMetrics(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ProviderInterfaceInfoResult]<~ProviderInterfaceInfoResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineUndertaker', request='GetMachineProviderInterfaceInfo', version=1, params=_params)
+ msg = dict(type='MetricsManager',
+ request='CleanupOldMetrics',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchMachineRemovals(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SendMetrics(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineUndertaker', request='WatchMachineRemovals', version=1, params=_params)
+ msg = dict(type='MetricsManager',
+ request='SendMetrics',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class MachinerFacade(Type):
- name = 'Machiner'
+class MigrationFlagFacade(Type):
+ name = 'MigrationFlag'
version = 1
- schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
- 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
- 'type': 'array'},
- 'type': 'array'}},
- 'required': ['servers'],
- 'type': 'object'},
- 'Address': {'additionalProperties': False,
- 'properties': {'scope': {'type': 'string'},
- 'space-name': {'type': 'string'},
- 'type': {'type': 'string'},
- 'value': {'type': 'string'}},
- 'required': ['value', 'type', 'scope'],
- 'type': 'object'},
- 'BytesResult': {'additionalProperties': False,
- 'properties': {'result': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['result'],
- 'type': 'object'},
- 'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'EntityStatusArgs': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'status': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag',
- 'status',
- 'info',
- 'data'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'HostPort': {'additionalProperties': False,
- 'properties': {'Address': {'$ref': '#/definitions/Address'},
- 'port': {'type': 'integer'}},
- 'required': ['Address', 'port'],
- 'type': 'object'},
- 'JobsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'jobs': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['jobs'],
- 'type': 'object'},
- 'JobsResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/JobsResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'LifeResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'life': {'type': 'string'}},
- 'required': ['life'],
- 'type': 'object'},
- 'LifeResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'MachineAddresses': {'additionalProperties': False,
- 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
- 'type': 'array'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'addresses'],
- 'type': 'object'},
- 'NetworkConfig': {'additionalProperties': False,
- 'properties': {'address': {'type': 'string'},
- 'cidr': {'type': 'string'},
- 'config-type': {'type': 'string'},
- 'device-index': {'type': 'integer'},
- 'disabled': {'type': 'boolean'},
- 'dns-search-domains': {'items': {'type': 'string'},
- 'type': 'array'},
- 'dns-servers': {'items': {'type': 'string'},
- 'type': 'array'},
- 'gateway-address': {'type': 'string'},
- 'interface-name': {'type': 'string'},
- 'interface-type': {'type': 'string'},
- 'mac-address': {'type': 'string'},
- 'mtu': {'type': 'integer'},
- 'no-auto-start': {'type': 'boolean'},
- 'parent-interface-name': {'type': 'string'},
- 'provider-address-id': {'type': 'string'},
- 'provider-id': {'type': 'string'},
- 'provider-space-id': {'type': 'string'},
- 'provider-subnet-id': {'type': 'string'},
- 'provider-vlan-id': {'type': 'string'},
- 'routes': {'items': {'$ref': '#/definitions/NetworkRoute'},
- 'type': 'array'},
- 'vlan-tag': {'type': 'integer'}},
- 'required': ['device-index',
- 'mac-address',
- 'cidr',
- 'mtu',
- 'provider-id',
- 'provider-subnet-id',
- 'provider-space-id',
- 'provider-address-id',
- 'provider-vlan-id',
- 'vlan-tag',
- 'interface-name',
- 'parent-interface-name',
- 'interface-type',
- 'disabled'],
- 'type': 'object'},
- 'NetworkRoute': {'additionalProperties': False,
- 'properties': {'destination-cidr': {'type': 'string'},
- 'gateway-ip': {'type': 'string'},
- 'metric': {'type': 'integer'}},
- 'required': ['destination-cidr',
- 'gateway-ip',
- 'metric'],
- 'type': 'object'},
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'SetMachineNetworkConfig': {'additionalProperties': False,
- 'properties': {'config': {'items': {'$ref': '#/definitions/NetworkConfig'},
- 'type': 'array'},
- 'tag': {'type': 'string'}},
- 'required': ['tag', 'config'],
- 'type': 'object'},
- 'SetMachinesAddresses': {'additionalProperties': False,
- 'properties': {'machine-addresses': {'items': {'$ref': '#/definitions/MachineAddresses'},
- 'type': 'array'}},
- 'required': ['machine-addresses'],
- 'type': 'object'},
- 'SetStatus': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'required': ['result'],
- 'type': 'object'},
- 'StringsResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'}},
- 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}},
- 'type': 'object'},
- 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'PhaseResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'phase': {'type': 'string'}},
'type': 'object'},
- 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
+ 'PhaseResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/PhaseResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'Phase': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/PhaseResults'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(PhaseResults)
+ async def Phase(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~PhaseResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationFlag',
+ request='Phase',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def Watch(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationFlag',
+ request='Watch',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class MigrationMasterFacade(Type):
+ name = 'MigrationMaster'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
'type': 'object'},
- 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'Jobs': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/JobsResults'}},
- 'type': 'object'},
- 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/LifeResults'}},
- 'type': 'object'},
- 'ModelUUID': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'SetMachineAddresses': {'properties': {'Params': {'$ref': '#/definitions/SetMachinesAddresses'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MasterMigrationStatus': {'additionalProperties': False,
+ 'properties': {'migration-id': {'type': 'string'},
+ 'phase': {'type': 'string'},
+ 'phase-changed-time': {'format': 'date-time',
+ 'type': 'string'},
+ 'spec': {'$ref': '#/definitions/MigrationSpec'}},
+ 'required': ['spec',
+ 'migration-id',
+ 'phase',
+ 'phase-changed-time'],
+ 'type': 'object'},
+ 'MigrationModelInfo': {'additionalProperties': False,
+ 'properties': {'agent-version': {'$ref': '#/definitions/Number'},
+ 'controller-agent-version': {'$ref': '#/definitions/Number'},
+ 'name': {'type': 'string'},
+ 'owner-tag': {'type': 'string'},
+ 'uuid': {'type': 'string'}},
+ 'required': ['uuid',
+ 'name',
+ 'owner-tag',
+ 'agent-version',
+ 'controller-agent-version'],
'type': 'object'},
- 'SetObservedNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/SetMachineNetworkConfig'}},
- 'type': 'object'},
- 'SetProviderNetworkConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'MigrationSpec': {'additionalProperties': False,
+ 'properties': {'model-tag': {'type': 'string'},
+ 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}},
+ 'required': ['model-tag', 'target-info'],
+ 'type': 'object'},
+ 'MigrationTargetInfo': {'additionalProperties': False,
+ 'properties': {'addrs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'auth-tag': {'type': 'string'},
+ 'ca-cert': {'type': 'string'},
+ 'controller-tag': {'type': 'string'},
+ 'macaroons': {'type': 'string'},
+ 'password': {'type': 'string'}},
+ 'required': ['controller-tag',
+ 'addrs',
+ 'ca-cert',
+ 'auth-tag'],
+ 'type': 'object'},
+ 'MinionReports': {'additionalProperties': False,
+ 'properties': {'failed': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'migration-id': {'type': 'string'},
+ 'phase': {'type': 'string'},
+ 'success-count': {'type': 'integer'},
+ 'unknown-count': {'type': 'integer'},
+ 'unknown-sample': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['migration-id',
+ 'phase',
+ 'success-count',
+ 'unknown-count',
+ 'unknown-sample',
+ 'failed'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'Number': {'additionalProperties': False,
+ 'properties': {'Build': {'type': 'integer'},
+ 'Major': {'type': 'integer'},
+ 'Minor': {'type': 'integer'},
+ 'Patch': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['Major',
+ 'Minor',
+ 'Tag',
+ 'Patch',
+ 'Build'],
+ 'type': 'object'},
+ 'SerializedModel': {'additionalProperties': False,
+ 'properties': {'bytes': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'charms': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'},
+ 'type': 'array'},
+ 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'},
+ 'type': 'array'}},
+ 'required': ['bytes',
+ 'charms',
+ 'tools',
+ 'resources'],
+ 'type': 'object'},
+ 'SerializedModelResource': {'additionalProperties': False,
+ 'properties': {'application': {'type': 'string'},
+ 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'},
+ 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'},
+ 'name': {'type': 'string'},
+ 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}},
+ 'type': 'object'}},
+ 'required': ['application',
+ 'name',
+ 'application-revision',
+ 'charmstore-revision',
+ 'unit-revisions'],
'type': 'object'},
- 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'SerializedModelResourceRevision': {'additionalProperties': False,
+ 'properties': {'description': {'type': 'string'},
+ 'fingerprint': {'type': 'string'},
+ 'origin': {'type': 'string'},
+ 'path': {'type': 'string'},
+ 'revision': {'type': 'integer'},
+ 'size': {'type': 'integer'},
+ 'timestamp': {'format': 'date-time',
+ 'type': 'string'},
+ 'type': {'type': 'string'},
+ 'username': {'type': 'string'}},
+ 'required': ['revision',
+ 'type',
+ 'path',
+ 'description',
+ 'origin',
+ 'fingerprint',
+ 'size',
+ 'timestamp'],
+ 'type': 'object'},
+ 'SerializedModelTools': {'additionalProperties': False,
+ 'properties': {'uri': {'type': 'string'},
+ 'version': {'type': 'string'}},
+ 'required': ['version', 'uri'],
+ 'type': 'object'},
+ 'SetMigrationPhaseArgs': {'additionalProperties': False,
+ 'properties': {'phase': {'type': 'string'}},
+ 'required': ['phase'],
+ 'type': 'object'},
+ 'SetMigrationStatusMessageArgs': {'additionalProperties': False,
+ 'properties': {'message': {'type': 'string'}},
+ 'required': ['message'],
+ 'type': 'object'}},
+ 'properties': {'Export': {'properties': {'Result': {'$ref': '#/definitions/SerializedModel'}},
+ 'type': 'object'},
+ 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}},
+ 'type': 'object'},
+ 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}},
+ 'type': 'object'},
+ 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}},
'type': 'object'},
- 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'Prechecks': {'type': 'object'},
+ 'Reap': {'type': 'object'},
+ 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}},
+ 'type': 'object'},
+ 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}},
+ 'type': 'object'},
+ 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
'type': 'object'},
- 'WatchAPIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'}},
+ 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(StringsResult)
- async def APIAddresses(self):
+
+ @ReturnMapping(SerializedModel)
+ async def Export(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]]
+ Returns -> typing.Union[typing.Sequence[int], typing.Sequence[str], typing.Sequence[~SerializedModelTools]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='APIAddresses', version=1, params=_params)
+ msg = dict(type='MigrationMaster',
+ request='Export',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(APIHostPortsResult)
- async def APIHostPorts(self):
+ @ReturnMapping(MasterMigrationStatus)
+ async def MigrationStatus(self):
'''
- Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort>
+ Returns -> typing.Union[str, _ForwardRef('MigrationSpec')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='APIHostPorts', version=1, params=_params)
+ msg = dict(type='MigrationMaster',
+ request='MigrationStatus',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(BytesResult)
- async def CACert(self):
+ @ReturnMapping(MinionReports)
+ async def MinionReports(self):
'''
- Returns -> typing.Sequence<+T_co>[int]
+ Returns -> typing.Union[typing.Sequence[str], str, int]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='CACert', version=1, params=_params)
+ msg = dict(type='MigrationMaster',
+ request='MinionReports',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def EnsureDead(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ @ReturnMapping(MigrationModelInfo)
+ async def ModelInfo(self):
'''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Machiner', request='EnsureDead', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
- @ReturnMapping(JobsResults)
- async def Jobs(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~JobsResult]<~JobsResult>
+ Returns -> typing.Union[_ForwardRef('Number'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='Jobs', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
+ msg = dict(type='MigrationMaster',
+ request='ModelInfo',
+ version=1,
+ params=_params)
-
- @ReturnMapping(LifeResults)
- async def Life(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Machiner', request='Life', version=1, params=_params)
- _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResult)
- async def ModelUUID(self):
+ @ReturnMapping(None)
+ async def Prechecks(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='ModelUUID', version=1, params=_params)
+ msg = dict(type='MigrationMaster',
+ request='Prechecks',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetMachineAddresses(self, machine_addresses):
+ @ReturnMapping(None)
+ async def Reap(self):
'''
- machine_addresses : typing.Sequence<+T_co>[~MachineAddresses]<~MachineAddresses>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='SetMachineAddresses', version=1, params=_params)
- _params['machine-addresses'] = machine_addresses
+ msg = dict(type='MigrationMaster',
+ request='Reap',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
@ReturnMapping(None)
- async def SetObservedNetworkConfig(self, config, tag):
+ async def SetPhase(self, phase):
'''
- config : typing.Sequence<+T_co>[~NetworkConfig]<~NetworkConfig>
- tag : str
+ phase : str
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='SetObservedNetworkConfig', version=1, params=_params)
- _params['config'] = config
- _params['tag'] = tag
+ msg = dict(type='MigrationMaster',
+ request='SetPhase',
+ version=1,
+ params=_params)
+ _params['phase'] = phase
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetProviderNetworkConfig(self, entities):
+ @ReturnMapping(None)
+ async def SetStatusMessage(self, message):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ message : str
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='SetProviderNetworkConfig', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MigrationMaster',
+ request='SetStatusMessage',
+ version=1,
+ params=_params)
+ _params['message'] = message
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetStatus(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ @ReturnMapping(NotifyWatchResult)
+ async def Watch(self):
'''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Machiner', request='SetStatus', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
- @ReturnMapping(ErrorResults)
- async def UpdateStatus(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ Returns -> typing.Union[str, _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='UpdateStatus', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
+ msg = dict(type='MigrationMaster',
+ request='Watch',
+ version=1,
+ params=_params)
- @ReturnMapping(NotifyWatchResults)
- async def Watch(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='Machiner', request='Watch', version=1, params=_params)
- _params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(NotifyWatchResult)
- async def WatchAPIHostPorts(self):
+ async def WatchMinionReports(self):
'''
Returns -> typing.Union[str, _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Machiner', request='WatchAPIHostPorts', version=1, params=_params)
+ msg = dict(type='MigrationMaster',
+ request='WatchMinionReports',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class MeterStatusFacade(Type):
- name = 'MeterStatus'
+class MigrationMinionFacade(Type):
+ name = 'MigrationMinion'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
+ schema = {'definitions': {'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'MeterStatusResult': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'},
- 'info': {'type': 'string'}},
- 'required': ['code', 'info'],
- 'type': 'object'},
- 'MeterStatusResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
+ 'MinionReport': {'additionalProperties': False,
+ 'properties': {'migration-id': {'type': 'string'},
+ 'phase': {'type': 'string'},
+ 'success': {'type': 'boolean'}},
+ 'required': ['migration-id',
+ 'phase',
+ 'success'],
+ 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'required': ['NotifyWatcherId'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/MeterStatusResults'}},
- 'type': 'object'},
- 'WatchMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(MeterStatusResults)
- async def GetMeterStatus(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~MeterStatusResult]<~MeterStatusResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MeterStatus', request='GetMeterStatus', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(NotifyWatchResults)
- async def WatchMeterStatus(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MeterStatus', request='WatchMeterStatus', version=1, params=_params)
- _params['entities'] = entities
- reply = await self.rpc(msg)
- return reply
-
-
-
-class MetricsManagerFacade(Type):
- name = 'MetricsManager'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
+ 'type': 'object'}},
+ 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}},
'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'}},
- 'properties': {'AddJujuMachineMetrics': {'type': 'object'},
- 'CleanupOldMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'SendMetrics': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'}},
+ 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(None)
- async def AddJujuMachineMetrics(self):
+ async def Report(self, migration_id, phase, success):
'''
-
+ migration_id : str
+ phase : str
+ success : bool
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MetricsManager', request='AddJujuMachineMetrics', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(ErrorResults)
- async def CleanupOldMetrics(self, entities):
- '''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MetricsManager', request='CleanupOldMetrics', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MigrationMinion',
+ request='Report',
+ version=1,
+ params=_params)
+ _params['migration-id'] = migration_id
+ _params['phase'] = phase
+ _params['success'] = success
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SendMetrics(self, entities):
+ @ReturnMapping(NotifyWatchResult)
+ async def Watch(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MetricsManager', request='SendMetrics', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MigrationMinion',
+ request='Watch',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class MigrationFlagFacade(Type):
- name = 'MigrationFlag'
+class MigrationStatusWatcherFacade(Type):
+ name = 'MigrationStatusWatcher'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'PhaseResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'phase': {'type': 'string'}},
- 'type': 'object'},
- 'PhaseResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/PhaseResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'Phase': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/PhaseResults'}},
- 'type': 'object'},
- 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ schema = {'definitions': {'MigrationStatus': {'additionalProperties': False,
+ 'properties': {'attempt': {'type': 'integer'},
+ 'migration-id': {'type': 'string'},
+ 'phase': {'type': 'string'},
+ 'source-api-addrs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'source-ca-cert': {'type': 'string'},
+ 'target-api-addrs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'target-ca-cert': {'type': 'string'}},
+ 'required': ['migration-id',
+ 'attempt',
+ 'phase',
+ 'source-api-addrs',
+ 'source-ca-cert',
+ 'target-api-addrs',
+ 'target-ca-cert'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MigrationStatus'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(PhaseResults)
- async def Phase(self, entities):
+
+ @ReturnMapping(MigrationStatus)
+ async def Next(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~PhaseResult]<~PhaseResult>
+
+ Returns -> typing.Union[int, str, typing.Sequence[str]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationFlag', request='Phase', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MigrationStatusWatcher',
+ request='Next',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def Watch(self, entities):
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationFlag', request='Watch', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='MigrationStatusWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class MigrationMasterFacade(Type):
- name = 'MigrationMaster'
+class MigrationTargetFacade(Type):
+ name = 'MigrationTarget'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
+ schema = {'definitions': {'AdoptResourcesArgs': {'additionalProperties': False,
+ 'properties': {'model-tag': {'type': 'string'},
+ 'source-controller-version': {'$ref': '#/definitions/Number'}},
+ 'required': ['model-tag',
+ 'source-controller-version'],
+ 'type': 'object'},
+ 'BytesResult': {'additionalProperties': False,
+ 'properties': {'result': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'MasterMigrationStatus': {'additionalProperties': False,
- 'properties': {'migration-id': {'type': 'string'},
- 'phase': {'type': 'string'},
- 'phase-changed-time': {'format': 'date-time',
- 'type': 'string'},
- 'spec': {'$ref': '#/definitions/MigrationSpec'}},
- 'required': ['spec',
- 'migration-id',
- 'phase',
- 'phase-changed-time'],
- 'type': 'object'},
'MigrationModelInfo': {'additionalProperties': False,
'properties': {'agent-version': {'$ref': '#/definitions/Number'},
'controller-agent-version': {'$ref': '#/definitions/Number'},
'agent-version',
'controller-agent-version'],
'type': 'object'},
- 'MigrationSpec': {'additionalProperties': False,
- 'properties': {'model-tag': {'type': 'string'},
- 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}},
- 'required': ['model-tag', 'target-info'],
- 'type': 'object'},
- 'MigrationTargetInfo': {'additionalProperties': False,
- 'properties': {'addrs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'auth-tag': {'type': 'string'},
- 'ca-cert': {'type': 'string'},
- 'controller-tag': {'type': 'string'},
- 'macaroons': {'type': 'string'},
- 'password': {'type': 'string'}},
- 'required': ['controller-tag',
- 'addrs',
- 'ca-cert',
- 'auth-tag'],
- 'type': 'object'},
- 'MinionReports': {'additionalProperties': False,
- 'properties': {'failed': {'items': {'type': 'string'},
- 'type': 'array'},
- 'migration-id': {'type': 'string'},
- 'phase': {'type': 'string'},
- 'success-count': {'type': 'integer'},
- 'unknown-count': {'type': 'integer'},
- 'unknown-sample': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['migration-id',
- 'phase',
- 'success-count',
- 'unknown-count',
- 'unknown-sample',
- 'failed'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'},
+ 'ModelArgs': {'additionalProperties': False,
+ 'properties': {'model-tag': {'type': 'string'}},
+ 'required': ['model-tag'],
+ 'type': 'object'},
'Number': {'additionalProperties': False,
'properties': {'Build': {'type': 'integer'},
'Major': {'type': 'integer'},
'properties': {'uri': {'type': 'string'},
'version': {'type': 'string'}},
'required': ['version', 'uri'],
- 'type': 'object'},
- 'SetMigrationPhaseArgs': {'additionalProperties': False,
- 'properties': {'phase': {'type': 'string'}},
- 'required': ['phase'],
- 'type': 'object'},
- 'SetMigrationStatusMessageArgs': {'additionalProperties': False,
- 'properties': {'message': {'type': 'string'}},
- 'required': ['message'],
- 'type': 'object'}},
- 'properties': {'Export': {'properties': {'Result': {'$ref': '#/definitions/SerializedModel'}},
+ 'type': 'object'}},
+ 'properties': {'Abort': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}},
+ 'type': 'object'},
+ 'Activate': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}},
+ 'type': 'object'},
+ 'AdoptResources': {'properties': {'Params': {'$ref': '#/definitions/AdoptResourcesArgs'}},
+ 'type': 'object'},
+ 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
+ 'type': 'object'},
+ 'CheckMachines': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Import': {'properties': {'Params': {'$ref': '#/definitions/SerializedModel'}},
+ 'type': 'object'},
+ 'LatestLogTime': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'},
+ 'Result': {'format': 'date-time',
+ 'type': 'string'}},
+ 'type': 'object'},
+ 'Prechecks': {'properties': {'Params': {'$ref': '#/definitions/MigrationModelInfo'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(None)
+ async def Abort(self, model_tag):
+ '''
+ model_tag : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='Abort',
+ version=1,
+ params=_params)
+ _params['model-tag'] = model_tag
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Activate(self, model_tag):
+ '''
+ model_tag : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='Activate',
+ version=1,
+ params=_params)
+ _params['model-tag'] = model_tag
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AdoptResources(self, model_tag, source_controller_version):
+ '''
+ model_tag : str
+ source_controller_version : Number
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='AdoptResources',
+ version=1,
+ params=_params)
+ _params['model-tag'] = model_tag
+ _params['source-controller-version'] = source_controller_version
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BytesResult)
+ async def CACert(self):
+ '''
+
+ Returns -> typing.Sequence[int]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='CACert',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def CheckMachines(self, model_tag):
+ '''
+ model_tag : str
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='CheckMachines',
+ version=1,
+ params=_params)
+ _params['model-tag'] = model_tag
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Import(self, bytes_, charms, tools):
+ '''
+ bytes_ : typing.Sequence[int]
+ charms : typing.Sequence[str]
+ tools : typing.Sequence[~SerializedModelTools]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='Import',
+ version=1,
+ params=_params)
+ _params['bytes'] = bytes_
+ _params['charms'] = charms
+ _params['tools'] = tools
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(str)
+ async def LatestLogTime(self, model_tag):
+ '''
+ model_tag : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='LatestLogTime',
+ version=1,
+ params=_params)
+ _params['model-tag'] = model_tag
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Prechecks(self, agent_version, name, owner_tag, uuid):
+ '''
+ agent_version : Number
+ name : str
+ owner_tag : str
+ uuid : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='MigrationTarget',
+ request='Prechecks',
+ version=1,
+ params=_params)
+ _params['agent-version'] = agent_version
+ _params['name'] = name
+ _params['owner-tag'] = owner_tag
+ _params['uuid'] = uuid
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class ModelConfigFacade(Type):
+ name = 'ModelConfig'
+ version = 1
+ schema = {'definitions': {'ConfigValue': {'additionalProperties': False,
+ 'properties': {'source': {'type': 'string'},
+ 'value': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'required': ['value', 'source'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
'type': 'object'},
- 'MigrationStatus': {'properties': {'Result': {'$ref': '#/definitions/MasterMigrationStatus'}},
- 'type': 'object'},
- 'MinionReports': {'properties': {'Result': {'$ref': '#/definitions/MinionReports'}},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelConfigResults': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelSLA': {'additionalProperties': False,
+ 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'creds': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['ModelSLAInfo', 'creds'],
+ 'type': 'object'},
+ 'ModelSLAInfo': {'additionalProperties': False,
+ 'properties': {'level': {'type': 'string'},
+ 'owner': {'type': 'string'}},
+ 'required': ['level', 'owner'],
'type': 'object'},
- 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/MigrationModelInfo'}},
+ 'ModelSet': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
'type': 'object'},
- 'Prechecks': {'type': 'object'},
- 'Reap': {'type': 'object'},
- 'SetPhase': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationPhaseArgs'}},
+ 'ModelUnset': {'additionalProperties': False,
+ 'properties': {'keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['keys'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'}},
+ 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
'type': 'object'},
- 'SetStatusMessage': {'properties': {'Params': {'$ref': '#/definitions/SetMigrationStatusMessageArgs'}},
- 'type': 'object'},
- 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'},
- 'WatchMinionReports': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'}},
+ 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
+ 'type': 'object'},
+ 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
+ 'type': 'object'},
+ 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(SerializedModel)
- async def Export(self):
+
+ @ReturnMapping(ModelConfigResults)
+ async def ModelGet(self):
'''
- Returns -> typing.Sequence<+T_co>[~SerializedModelTools]<~SerializedModelTools>
+ Returns -> typing.Mapping[str, ~ConfigValue]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='Export', version=1, params=_params)
+ msg = dict(type='ModelConfig',
+ request='ModelGet',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(MasterMigrationStatus)
- async def MigrationStatus(self):
+ @ReturnMapping(None)
+ async def ModelSet(self, config):
'''
-
- Returns -> typing.Union[str, _ForwardRef('MigrationSpec')]
+ config : typing.Mapping[str, typing.Any]
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='MigrationStatus', version=1, params=_params)
+ msg = dict(type='ModelConfig',
+ request='ModelSet',
+ version=1,
+ params=_params)
+ _params['config'] = config
+ reply = await self.rpc(msg)
+ return reply
+
+
+ @ReturnMapping(None)
+ async def ModelUnset(self, keys):
+ '''
+ keys : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='ModelUnset',
+ version=1,
+ params=_params)
+ _params['keys'] = keys
reply = await self.rpc(msg)
return reply
- @ReturnMapping(MinionReports)
- async def MinionReports(self):
+ @ReturnMapping(StringResult)
+ async def SLALevel(self):
'''
- Returns -> typing.Union[typing.Sequence<+T_co>[str], int]
+ Returns -> typing.Union[_ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='MinionReports', version=1, params=_params)
+ msg = dict(type='ModelConfig',
+ request='SLALevel',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(MigrationModelInfo)
- async def ModelInfo(self):
+ @ReturnMapping(None)
+ async def SetSLALevel(self, creds, level):
+ '''
+ creds : typing.Sequence[int]
+ level : str
+ Returns -> None
'''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='SetSLALevel',
+ version=1,
+ params=_params)
+ _params['creds'] = creds
+ _params['level'] = level
+ reply = await self.rpc(msg)
+ return reply
- Returns -> typing.Union[_ForwardRef('Number'), str]
+
+
+class ModelUpgraderFacade(Type):
+ name = 'ModelUpgrader'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'IntResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'integer'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'IntResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'SetModelEnvironVersion': {'additionalProperties': False,
+ 'properties': {'model-tag': {'type': 'string'},
+ 'version': {'type': 'integer'}},
+ 'required': ['model-tag',
+ 'version'],
+ 'type': 'object'},
+ 'SetModelEnvironVersions': {'additionalProperties': False,
+ 'properties': {'models': {'items': {'$ref': '#/definitions/SetModelEnvironVersion'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'}},
+ 'properties': {'ModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/IntResults'}},
+ 'type': 'object'},
+ 'ModelTargetEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/IntResults'}},
+ 'type': 'object'},
+ 'SetModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelEnvironVersions'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetModelStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchModelEnvironVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(IntResults)
+ async def ModelEnvironVersion(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~IntResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='ModelInfo', version=1, params=_params)
-
+ msg = dict(type='ModelUpgrader',
+ request='ModelEnvironVersion',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Prechecks(self):
+ @ReturnMapping(IntResults)
+ async def ModelTargetEnvironVersion(self, entities):
'''
-
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~IntResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='Prechecks', version=1, params=_params)
-
+ msg = dict(type='ModelUpgrader',
+ request='ModelTargetEnvironVersion',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Reap(self):
+ @ReturnMapping(ErrorResults)
+ async def SetModelEnvironVersion(self, models):
'''
-
- Returns -> None
+ models : typing.Sequence[~SetModelEnvironVersion]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='Reap', version=1, params=_params)
-
+ msg = dict(type='ModelUpgrader',
+ request='SetModelEnvironVersion',
+ version=1,
+ params=_params)
+ _params['models'] = models
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def SetPhase(self, phase):
+ @ReturnMapping(ErrorResults)
+ async def SetModelStatus(self, entities):
'''
- phase : str
- Returns -> None
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='SetPhase', version=1, params=_params)
- _params['phase'] = phase
+ msg = dict(type='ModelUpgrader',
+ request='SetModelStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def SetStatusMessage(self, message):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchModelEnvironVersion(self, entities):
'''
- message : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='SetStatusMessage', version=1, params=_params)
- _params['message'] = message
+ msg = dict(type='ModelUpgrader',
+ request='WatchModelEnvironVersion',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def Watch(self):
+class NotifyWatcherFacade(Type):
+ name = 'NotifyWatcher'
+ version = 1
+ schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(None)
+ async def Next(self):
'''
- Returns -> typing.Union[str, _ForwardRef('Error')]
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='Watch', version=1, params=_params)
+ msg = dict(type='NotifyWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResult)
- async def WatchMinionReports(self):
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- Returns -> typing.Union[str, _ForwardRef('Error')]
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationMaster', request='WatchMinionReports', version=1, params=_params)
+ msg = dict(type='NotifyWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class MigrationMinionFacade(Type):
- name = 'MigrationMinion'
+class OfferStatusWatcherFacade(Type):
+ name = 'OfferStatusWatcher'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
+ schema = {'definitions': {'EntityStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'info', 'since'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'MinionReport': {'additionalProperties': False,
- 'properties': {'migration-id': {'type': 'string'},
- 'phase': {'type': 'string'},
- 'success': {'type': 'boolean'}},
- 'required': ['migration-id',
- 'phase',
- 'success'],
- 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'}},
- 'properties': {'Report': {'properties': {'Params': {'$ref': '#/definitions/MinionReport'}},
- 'type': 'object'},
- 'Watch': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(None)
- async def Report(self, migration_id, phase, success):
- '''
- migration_id : str
- phase : str
- success : bool
- Returns -> None
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MigrationMinion', request='Report', version=1, params=_params)
- _params['migration-id'] = migration_id
- _params['phase'] = phase
- _params['success'] = success
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(NotifyWatchResult)
- async def Watch(self):
- '''
-
- Returns -> typing.Union[str, _ForwardRef('Error')]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='MigrationMinion', request='Watch', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
-class MigrationStatusWatcherFacade(Type):
- name = 'MigrationStatusWatcher'
- version = 1
- schema = {'definitions': {'MigrationStatus': {'additionalProperties': False,
- 'properties': {'attempt': {'type': 'integer'},
- 'migration-id': {'type': 'string'},
- 'phase': {'type': 'string'},
- 'source-api-addrs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'source-ca-cert': {'type': 'string'},
- 'target-api-addrs': {'items': {'type': 'string'},
- 'type': 'array'},
- 'target-ca-cert': {'type': 'string'}},
- 'required': ['migration-id',
- 'attempt',
- 'phase',
- 'source-api-addrs',
- 'source-ca-cert',
- 'target-api-addrs',
- 'target-ca-cert'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MigrationStatus'}},
+ 'OfferStatusChange': {'additionalProperties': False,
+ 'properties': {'offer-name': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/EntityStatus'}},
+ 'required': ['offer-name', 'status'],
+ 'type': 'object'},
+ 'OfferStatusWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/OfferStatusChange'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/OfferStatusWatchResult'}},
'type': 'object'},
'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(MigrationStatus)
+
+ @ReturnMapping(OfferStatusWatchResult)
async def Next(self):
'''
- Returns -> typing.Union[int, typing.Sequence<+T_co>[str]]
+ Returns -> typing.Union[typing.Sequence[~OfferStatusChange], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationStatusWatcher', request='Next', version=1, params=_params)
+ msg = dict(type='OfferStatusWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationStatusWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='OfferStatusWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class MigrationTargetFacade(Type):
- name = 'MigrationTarget'
+class PayloadsFacade(Type):
+ name = 'Payloads'
version = 1
- schema = {'definitions': {'AdoptResourcesArgs': {'additionalProperties': False,
- 'properties': {'model-tag': {'type': 'string'},
- 'source-controller-version': {'$ref': '#/definitions/Number'}},
- 'required': ['model-tag',
- 'source-controller-version'],
- 'type': 'object'},
- 'BytesResult': {'additionalProperties': False,
- 'properties': {'result': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['result'],
- 'type': 'object'},
- 'MigrationModelInfo': {'additionalProperties': False,
- 'properties': {'agent-version': {'$ref': '#/definitions/Number'},
- 'controller-agent-version': {'$ref': '#/definitions/Number'},
- 'name': {'type': 'string'},
- 'owner-tag': {'type': 'string'},
- 'uuid': {'type': 'string'}},
- 'required': ['uuid',
- 'name',
- 'owner-tag',
- 'agent-version',
- 'controller-agent-version'],
- 'type': 'object'},
- 'ModelArgs': {'additionalProperties': False,
- 'properties': {'model-tag': {'type': 'string'}},
- 'required': ['model-tag'],
- 'type': 'object'},
- 'Number': {'additionalProperties': False,
- 'properties': {'Build': {'type': 'integer'},
- 'Major': {'type': 'integer'},
- 'Minor': {'type': 'integer'},
- 'Patch': {'type': 'integer'},
- 'Tag': {'type': 'string'}},
- 'required': ['Major',
- 'Minor',
- 'Tag',
- 'Patch',
- 'Build'],
- 'type': 'object'},
- 'SerializedModel': {'additionalProperties': False,
- 'properties': {'bytes': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'charms': {'items': {'type': 'string'},
- 'type': 'array'},
- 'resources': {'items': {'$ref': '#/definitions/SerializedModelResource'},
- 'type': 'array'},
- 'tools': {'items': {'$ref': '#/definitions/SerializedModelTools'},
- 'type': 'array'}},
- 'required': ['bytes',
- 'charms',
- 'tools',
- 'resources'],
- 'type': 'object'},
- 'SerializedModelResource': {'additionalProperties': False,
- 'properties': {'application': {'type': 'string'},
- 'application-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'},
- 'charmstore-revision': {'$ref': '#/definitions/SerializedModelResourceRevision'},
- 'name': {'type': 'string'},
- 'unit-revisions': {'patternProperties': {'.*': {'$ref': '#/definitions/SerializedModelResourceRevision'}},
- 'type': 'object'}},
- 'required': ['application',
- 'name',
- 'application-revision',
- 'charmstore-revision',
- 'unit-revisions'],
- 'type': 'object'},
- 'SerializedModelResourceRevision': {'additionalProperties': False,
- 'properties': {'description': {'type': 'string'},
- 'fingerprint': {'type': 'string'},
- 'origin': {'type': 'string'},
- 'path': {'type': 'string'},
- 'revision': {'type': 'integer'},
- 'size': {'type': 'integer'},
- 'timestamp': {'format': 'date-time',
- 'type': 'string'},
- 'type': {'type': 'string'},
- 'username': {'type': 'string'}},
- 'required': ['revision',
- 'type',
- 'path',
- 'description',
- 'origin',
- 'fingerprint',
- 'size',
- 'timestamp'],
- 'type': 'object'},
- 'SerializedModelTools': {'additionalProperties': False,
- 'properties': {'uri': {'type': 'string'},
- 'version': {'type': 'string'}},
- 'required': ['version', 'uri'],
- 'type': 'object'}},
- 'properties': {'Abort': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}},
- 'type': 'object'},
- 'Activate': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'}},
- 'type': 'object'},
- 'AdoptResources': {'properties': {'Params': {'$ref': '#/definitions/AdoptResourcesArgs'}},
- 'type': 'object'},
- 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
- 'type': 'object'},
- 'Import': {'properties': {'Params': {'$ref': '#/definitions/SerializedModel'}},
- 'type': 'object'},
- 'LatestLogTime': {'properties': {'Params': {'$ref': '#/definitions/ModelArgs'},
- 'Result': {'format': 'date-time',
- 'type': 'string'}},
- 'type': 'object'},
- 'Prechecks': {'properties': {'Params': {'$ref': '#/definitions/MigrationModelInfo'}},
- 'type': 'object'}},
+ schema = {'definitions': {'Payload': {'additionalProperties': False,
+ 'properties': {'class': {'type': 'string'},
+ 'id': {'type': 'string'},
+ 'labels': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'machine': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'unit': {'type': 'string'}},
+ 'required': ['class',
+ 'type',
+ 'id',
+ 'status',
+ 'labels',
+ 'unit',
+ 'machine'],
+ 'type': 'object'},
+ 'PayloadListArgs': {'additionalProperties': False,
+ 'properties': {'patterns': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['patterns'],
+ 'type': 'object'},
+ 'PayloadListResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/Payload'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/PayloadListArgs'},
+ 'Result': {'$ref': '#/definitions/PayloadListResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(None)
- async def Abort(self, model_tag):
+
+ @ReturnMapping(PayloadListResults)
+ async def List(self, patterns):
'''
- model_tag : str
- Returns -> None
+ patterns : typing.Sequence[str]
+ Returns -> typing.Sequence[~Payload]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='Abort', version=1, params=_params)
- _params['model-tag'] = model_tag
+ msg = dict(type='Payloads',
+ request='List',
+ version=1,
+ params=_params)
+ _params['patterns'] = patterns
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Activate(self, model_tag):
+class PayloadsHookContextFacade(Type):
+ name = 'PayloadsHookContext'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'LookUpPayloadArg': {'additionalProperties': False,
+ 'properties': {'id': {'type': 'string'},
+ 'name': {'type': 'string'}},
+ 'required': ['name', 'id'],
+ 'type': 'object'},
+ 'LookUpPayloadArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/LookUpPayloadArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'Payload': {'additionalProperties': False,
+ 'properties': {'class': {'type': 'string'},
+ 'id': {'type': 'string'},
+ 'labels': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'machine': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'unit': {'type': 'string'}},
+ 'required': ['class',
+ 'type',
+ 'id',
+ 'status',
+ 'labels',
+ 'unit',
+ 'machine'],
+ 'type': 'object'},
+ 'PayloadResult': {'additionalProperties': False,
+ 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'not-found': {'type': 'boolean'},
+ 'payload': {'$ref': '#/definitions/Payload'}},
+ 'required': ['Entity',
+ 'payload',
+ 'not-found'],
+ 'type': 'object'},
+ 'PayloadResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/PayloadResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'SetPayloadStatusArg': {'additionalProperties': False,
+ 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
+ 'status': {'type': 'string'}},
+ 'required': ['Entity', 'status'],
+ 'type': 'object'},
+ 'SetPayloadStatusArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'TrackPayloadArgs': {'additionalProperties': False,
+ 'properties': {'payloads': {'items': {'$ref': '#/definitions/Payload'},
+ 'type': 'array'}},
+ 'required': ['payloads'],
+ 'type': 'object'}},
+ 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'type': 'object'},
+ 'LookUp': {'properties': {'Params': {'$ref': '#/definitions/LookUpPayloadArgs'},
+ 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'type': 'object'},
+ 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetPayloadStatusArgs'},
+ 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'type': 'object'},
+ 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'},
+ 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'type': 'object'},
+ 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(PayloadResults)
+ async def List(self, entities):
'''
- model_tag : str
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~PayloadResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='Activate', version=1, params=_params)
- _params['model-tag'] = model_tag
+ msg = dict(type='PayloadsHookContext',
+ request='List',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def AdoptResources(self, model_tag, source_controller_version):
+ @ReturnMapping(PayloadResults)
+ async def LookUp(self, args):
'''
- model_tag : str
- source_controller_version : Number
- Returns -> None
+ args : typing.Sequence[~LookUpPayloadArg]
+ Returns -> typing.Sequence[~PayloadResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='AdoptResources', version=1, params=_params)
- _params['model-tag'] = model_tag
- _params['source-controller-version'] = source_controller_version
+ msg = dict(type='PayloadsHookContext',
+ request='LookUp',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(BytesResult)
- async def CACert(self):
+ @ReturnMapping(PayloadResults)
+ async def SetStatus(self, args):
'''
-
- Returns -> typing.Sequence<+T_co>[int]
+ args : typing.Sequence[~SetPayloadStatusArg]
+ Returns -> typing.Sequence[~PayloadResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='CACert', version=1, params=_params)
-
+ msg = dict(type='PayloadsHookContext',
+ request='SetStatus',
+ version=1,
+ params=_params)
+ _params['args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Import(self, bytes_, charms, tools):
+ @ReturnMapping(PayloadResults)
+ async def Track(self, payloads):
'''
- bytes_ : typing.Sequence<+T_co>[int]
- charms : typing.Sequence<+T_co>[str]
- tools : typing.Sequence<+T_co>[~SerializedModelTools]<~SerializedModelTools>
- Returns -> None
+ payloads : typing.Sequence[~Payload]
+ Returns -> typing.Sequence[~PayloadResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='Import', version=1, params=_params)
- _params['bytes'] = bytes_
- _params['charms'] = charms
- _params['tools'] = tools
+ msg = dict(type='PayloadsHookContext',
+ request='Track',
+ version=1,
+ params=_params)
+ _params['payloads'] = payloads
reply = await self.rpc(msg)
return reply
- @ReturnMapping(str)
- async def LatestLogTime(self, model_tag):
+ @ReturnMapping(PayloadResults)
+ async def Untrack(self, entities):
'''
- model_tag : str
- Returns -> str
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~PayloadResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='LatestLogTime', version=1, params=_params)
- _params['model-tag'] = model_tag
+ msg = dict(type='PayloadsHookContext',
+ request='Untrack',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
+class PingerFacade(Type):
+ name = 'Pinger'
+ version = 1
+ schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
+
@ReturnMapping(None)
- async def Prechecks(self, agent_version, name, owner_tag, uuid):
+ async def Ping(self):
'''
- agent_version : Number
- name : str
- owner_tag : str
- uuid : str
+
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MigrationTarget', request='Prechecks', version=1, params=_params)
- _params['agent-version'] = agent_version
- _params['name'] = name
- _params['owner-tag'] = owner_tag
- _params['uuid'] = uuid
- reply = await self.rpc(msg)
- return reply
-
+ msg = dict(type='Pinger',
+ request='Ping',
+ version=1,
+ params=_params)
+ reply = await self.rpc(msg)
+ return reply
-class ModelConfigFacade(Type):
- name = 'ModelConfig'
- version = 1
- schema = {'definitions': {'ConfigValue': {'additionalProperties': False,
- 'properties': {'source': {'type': 'string'},
- 'value': {'additionalProperties': True,
- 'type': 'object'}},
- 'required': ['value', 'source'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'ModelConfigResults': {'additionalProperties': False,
- 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
- 'type': 'object'}},
- 'required': ['config'],
- 'type': 'object'},
- 'ModelSLA': {'additionalProperties': False,
- 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
- 'creds': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['ModelSLAInfo', 'creds'],
- 'type': 'object'},
- 'ModelSLAInfo': {'additionalProperties': False,
- 'properties': {'level': {'type': 'string'},
- 'owner': {'type': 'string'}},
- 'required': ['level', 'owner'],
- 'type': 'object'},
- 'ModelSet': {'additionalProperties': False,
- 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'}},
- 'required': ['config'],
- 'type': 'object'},
- 'ModelUnset': {'additionalProperties': False,
- 'properties': {'keys': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['keys'],
- 'type': 'object'},
- 'StringResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'type': 'string'}},
- 'required': ['result'],
- 'type': 'object'}},
- 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
- 'type': 'object'},
- 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
- 'type': 'object'},
- 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
- 'type': 'object'},
- 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
- 'type': 'object'},
- 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(ModelConfigResults)
- async def ModelGet(self):
+
+
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, ~ConfigValue]<~ConfigValue>
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelConfig', request='ModelGet', version=1, params=_params)
+ msg = dict(type='Pinger',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def ModelSet(self, config):
+class ProxyUpdaterFacade(Type):
+ name = 'ProxyUpdater'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'ProxyConfig': {'additionalProperties': False,
+ 'properties': {'ftp': {'type': 'string'},
+ 'http': {'type': 'string'},
+ 'https': {'type': 'string'},
+ 'no-proxy': {'type': 'string'}},
+ 'required': ['http',
+ 'https',
+ 'ftp',
+ 'no-proxy'],
+ 'type': 'object'},
+ 'ProxyConfigResult': {'additionalProperties': False,
+ 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'proxy-settings': {'$ref': '#/definitions/ProxyConfig'}},
+ 'required': ['proxy-settings',
+ 'apt-proxy-settings'],
+ 'type': 'object'},
+ 'ProxyConfigResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ProxyConfigResults'}},
+ 'type': 'object'},
+ 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ProxyConfigResults)
+ async def ProxyConfig(self, entities):
'''
- config : typing.Mapping<~KT, +VT_co>[str, typing.Any]
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ProxyConfigResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelConfig', request='ModelSet', version=1, params=_params)
- _params['config'] = config
+ msg = dict(type='ProxyUpdater',
+ request='ProxyConfig',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def ModelUnset(self, keys):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchForProxyConfigAndAPIHostPortChanges(self, entities):
'''
- keys : typing.Sequence<+T_co>[str]
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelConfig', request='ModelUnset', version=1, params=_params)
- _params['keys'] = keys
+ msg = dict(type='ProxyUpdater',
+ request='WatchForProxyConfigAndAPIHostPortChanges',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringResult)
- async def SLALevel(self):
+class RelationStatusWatcherFacade(Type):
+ name = 'RelationStatusWatcher'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'RelationLifeSuspendedStatusChange': {'additionalProperties': False,
+ 'properties': {'key': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'suspended': {'type': 'boolean'},
+ 'suspended-reason': {'type': 'string'}},
+ 'required': ['key',
+ 'life',
+ 'suspended',
+ 'suspended-reason'],
+ 'type': 'object'},
+ 'RelationLifeSuspendedStatusWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/RelationLifeSuspendedStatusChange'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationLifeSuspendedStatusWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(RelationLifeSuspendedStatusWatchResult)
+ async def Next(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), str]
+ Returns -> typing.Union[typing.Sequence[~RelationLifeSuspendedStatusChange], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelConfig', request='SLALevel', version=1, params=_params)
+ msg = dict(type='RelationStatusWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
@ReturnMapping(None)
- async def SetSLALevel(self, creds, level):
+ async def Stop(self):
'''
- creds : typing.Sequence<+T_co>[int]
- level : str
+
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelConfig', request='SetSLALevel', version=1, params=_params)
- _params['creds'] = creds
- _params['level'] = level
+ msg = dict(type='RelationStatusWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class NotifyWatcherFacade(Type):
- name = 'NotifyWatcher'
+class RelationUnitsWatcherFacade(Type):
+ name = 'RelationUnitsWatcher'
version = 1
- schema = {'properties': {'Next': {'type': 'object'}, 'Stop': {'type': 'object'}},
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'RelationUnitsChange': {'additionalProperties': False,
+ 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
+ 'type': 'object'},
+ 'departed': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['changed'],
+ 'type': 'object'},
+ 'RelationUnitsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'},
+ 'UnitSettings': {'additionalProperties': False,
+ 'properties': {'version': {'type': 'integer'}},
+ 'required': ['version'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(None)
+
+ @ReturnMapping(RelationUnitsWatchResult)
async def Next(self):
'''
- Returns -> None
+ Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='NotifyWatcher', request='Next', version=1, params=_params)
+ msg = dict(type='RelationUnitsWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='NotifyWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='RelationUnitsWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class PayloadsFacade(Type):
- name = 'Payloads'
+class RemoteApplicationWatcherFacade(Type):
+ name = 'RemoteApplicationWatcher'
version = 1
- schema = {'definitions': {'Payload': {'additionalProperties': False,
- 'properties': {'class': {'type': 'string'},
- 'id': {'type': 'string'},
- 'labels': {'items': {'type': 'string'},
- 'type': 'array'},
- 'machine': {'type': 'string'},
- 'status': {'type': 'string'},
- 'type': {'type': 'string'},
- 'unit': {'type': 'string'}},
- 'required': ['class',
- 'type',
- 'id',
- 'status',
- 'labels',
- 'unit',
- 'machine'],
- 'type': 'object'},
- 'PayloadListArgs': {'additionalProperties': False,
- 'properties': {'patterns': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['patterns'],
- 'type': 'object'},
- 'PayloadListResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/Payload'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/PayloadListArgs'},
- 'Result': {'$ref': '#/definitions/PayloadListResults'}},
- 'type': 'object'}},
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'RemoteApplicationChange': {'additionalProperties': False,
+ 'properties': {'application-tag': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'relations': {'$ref': '#/definitions/RemoteRelationsChange'}},
+ 'required': ['application-tag',
+ 'life',
+ 'relations'],
+ 'type': 'object'},
+ 'RemoteApplicationWatchResult': {'additionalProperties': False,
+ 'properties': {'change': {'$ref': '#/definitions/RemoteApplicationChange'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'id': {'type': 'string'}},
+ 'required': ['id'],
+ 'type': 'object'},
+ 'RemoteEntityId': {'additionalProperties': False,
+ 'properties': {'model-uuid': {'type': 'string'},
+ 'token': {'type': 'string'}},
+ 'required': ['model-uuid', 'token'],
+ 'type': 'object'},
+ 'RemoteRelationChange': {'additionalProperties': False,
+ 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}},
+ 'type': 'object'},
+ 'departed-units': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'id': {'type': 'integer'},
+ 'life': {'type': 'string'}},
+ 'required': ['id', 'life'],
+ 'type': 'object'},
+ 'RemoteRelationUnitChange': {'additionalProperties': False,
+ 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}},
+ 'required': ['unit-id'],
+ 'type': 'object'},
+ 'RemoteRelationsChange': {'additionalProperties': False,
+ 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'},
+ 'type': 'array'},
+ 'initial': {'type': 'boolean'},
+ 'removed': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['initial'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteApplicationWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(PayloadListResults)
- async def List(self, patterns):
+
+ @ReturnMapping(RemoteApplicationWatchResult)
+ async def Next(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteApplicationWatcher',
+ request='Next',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Stop(self):
'''
- patterns : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~Payload]<~Payload>
+
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Payloads', request='List', version=1, params=_params)
- _params['patterns'] = patterns
+ msg = dict(type='RemoteApplicationWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class PayloadsHookContextFacade(Type):
- name = 'PayloadsHookContext'
+class RemoteRelationsFacade(Type):
+ name = 'RemoteRelations'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
+ schema = {'definitions': {'ControllerAPIInfoResult': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'cacert': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['addresses',
+ 'cacert'],
+ 'type': 'object'},
+ 'ControllerAPIInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'ControllerConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
'required': ['entities'],
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'object'},
+ 'EntityMacaroonArg': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'tag': {'type': 'string'}},
+ 'required': ['macaroon', 'tag'],
+ 'type': 'object'},
+ 'EntityMacaroonArgs': {'additionalProperties': False,
+ 'properties': {'Args': {'items': {'$ref': '#/definitions/EntityMacaroonArg'},
+ 'type': 'array'}},
+ 'required': ['Args'],
+ 'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'LookUpPayloadArg': {'additionalProperties': False,
- 'properties': {'id': {'type': 'string'},
- 'name': {'type': 'string'}},
- 'required': ['name', 'id'],
- 'type': 'object'},
- 'LookUpPayloadArgs': {'additionalProperties': False,
- 'properties': {'args': {'items': {'$ref': '#/definitions/LookUpPayloadArg'},
- 'type': 'array'}},
- 'required': ['args'],
- 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'GetTokenArg': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'GetTokenArgs': {'additionalProperties': False,
+ 'properties': {'Args': {'items': {'$ref': '#/definitions/GetTokenArg'},
+ 'type': 'array'}},
+ 'required': ['Args'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'Payload': {'additionalProperties': False,
- 'properties': {'class': {'type': 'string'},
- 'id': {'type': 'string'},
- 'labels': {'items': {'type': 'string'},
- 'type': 'array'},
- 'machine': {'type': 'string'},
- 'status': {'type': 'string'},
- 'type': {'type': 'string'},
- 'unit': {'type': 'string'}},
- 'required': ['class',
- 'type',
- 'id',
- 'status',
- 'labels',
- 'unit',
- 'machine'],
- 'type': 'object'},
- 'PayloadResult': {'additionalProperties': False,
- 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
- 'error': {'$ref': '#/definitions/Error'},
- 'not-found': {'type': 'boolean'},
- 'payload': {'$ref': '#/definitions/Payload'}},
- 'required': ['Entity',
- 'payload',
- 'not-found'],
+ 'RelationUnit': {'additionalProperties': False,
+ 'properties': {'relation': {'type': 'string'},
+ 'unit': {'type': 'string'}},
+ 'required': ['relation', 'unit'],
+ 'type': 'object'},
+ 'RelationUnits': {'additionalProperties': False,
+ 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'},
+ 'type': 'array'}},
+ 'required': ['relation-units'],
'type': 'object'},
- 'PayloadResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/PayloadResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'SetPayloadStatusArg': {'additionalProperties': False,
- 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
- 'status': {'type': 'string'}},
- 'required': ['Entity', 'status'],
+ 'RelationUnitsChange': {'additionalProperties': False,
+ 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
+ 'type': 'object'},
+ 'departed': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['changed'],
'type': 'object'},
- 'SetPayloadStatusArgs': {'additionalProperties': False,
- 'properties': {'args': {'items': {'$ref': '#/definitions/SetPayloadStatusArg'},
- 'type': 'array'}},
- 'required': ['args'],
+ 'RelationUnitsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'},
+ 'RelationUnitsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RemoteApplication': {'additionalProperties': False,
+ 'properties': {'is-consumer-proxy': {'type': 'boolean'},
+ 'life': {'type': 'string'},
+ 'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'model-uuid': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'offer-uuid': {'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['name',
+ 'offer-uuid',
+ 'model-uuid',
+ 'is-consumer-proxy'],
+ 'type': 'object'},
+ 'RemoteApplicationResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/RemoteApplication'}},
+ 'type': 'object'},
+ 'RemoteApplicationResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'RemoteEndpoint': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'limit': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'}},
+ 'required': ['name',
+ 'role',
+ 'interface',
+ 'limit'],
+ 'type': 'object'},
+ 'RemoteEntityTokenArg': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'},
+ 'token': {'type': 'string'}},
+ 'required': ['tag'],
'type': 'object'},
- 'TrackPayloadArgs': {'additionalProperties': False,
- 'properties': {'payloads': {'items': {'$ref': '#/definitions/Payload'},
- 'type': 'array'}},
- 'required': ['payloads'],
- 'type': 'object'}},
- 'properties': {'List': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/PayloadResults'}},
- 'type': 'object'},
- 'LookUp': {'properties': {'Params': {'$ref': '#/definitions/LookUpPayloadArgs'},
- 'Result': {'$ref': '#/definitions/PayloadResults'}},
- 'type': 'object'},
- 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetPayloadStatusArgs'},
- 'Result': {'$ref': '#/definitions/PayloadResults'}},
+ 'RemoteEntityTokenArgs': {'additionalProperties': False,
+ 'properties': {'Args': {'items': {'$ref': '#/definitions/RemoteEntityTokenArg'},
+ 'type': 'array'}},
+ 'required': ['Args'],
+ 'type': 'object'},
+ 'RemoteRelation': {'additionalProperties': False,
+ 'properties': {'application-name': {'type': 'string'},
+ 'endpoint': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'id': {'type': 'integer'},
+ 'key': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'remote-application-name': {'type': 'string'},
+ 'remote-endpoint-name': {'type': 'string'},
+ 'source-model-uuid': {'type': 'string'},
+ 'suspended': {'type': 'boolean'}},
+ 'required': ['life',
+ 'suspended',
+ 'id',
+ 'key',
+ 'application-name',
+ 'endpoint',
+ 'remote-application-name',
+ 'remote-endpoint-name',
+ 'source-model-uuid'],
+ 'type': 'object'},
+ 'RemoteRelationChangeEvent': {'additionalProperties': False,
+ 'properties': {'application-token': {'type': 'string'},
+ 'changed-units': {'items': {'$ref': '#/definitions/RemoteRelationUnitChange'},
+ 'type': 'array'},
+ 'departed-units': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'force-cleanup': {'type': 'boolean'},
+ 'life': {'type': 'string'},
+ 'macaroons': {'items': {'$ref': '#/definitions/Macaroon'},
+ 'type': 'array'},
+ 'relation-token': {'type': 'string'},
+ 'suspended': {'type': 'boolean'},
+ 'suspended-reason': {'type': 'string'}},
+ 'required': ['relation-token',
+ 'application-token',
+ 'life'],
+ 'type': 'object'},
+ 'RemoteRelationResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/RemoteRelation'}},
+ 'type': 'object'},
+ 'RemoteRelationResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteRelationResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RemoteRelationUnitChange': {'additionalProperties': False,
+ 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'unit-id': {'type': 'integer'}},
+ 'required': ['unit-id'],
+ 'type': 'object'},
+ 'RemoteRelationsChanges': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/RemoteRelationChangeEvent'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'SettingsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'settings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'required': ['settings'],
+ 'type': 'object'},
+ 'SettingsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'StringsWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'TokenResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'token': {'type': 'string'}},
+ 'type': 'object'},
+ 'TokenResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/TokenResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'UnitSettings': {'additionalProperties': False,
+ 'properties': {'version': {'type': 'integer'}},
+ 'required': ['version'],
+ 'type': 'object'}},
+ 'properties': {'ConsumeRemoteRelationChanges': {'properties': {'Params': {'$ref': '#/definitions/RemoteRelationsChanges'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}},
+ 'type': 'object'},
+ 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}},
+ 'type': 'object'},
+ 'ExportEntities': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/TokenResults'}},
+ 'type': 'object'},
+ 'GetTokens': {'properties': {'Params': {'$ref': '#/definitions/GetTokenArgs'},
+ 'Result': {'$ref': '#/definitions/StringResults'}},
'type': 'object'},
- 'Track': {'properties': {'Params': {'$ref': '#/definitions/TrackPayloadArgs'},
- 'Result': {'$ref': '#/definitions/PayloadResults'}},
- 'type': 'object'},
- 'Untrack': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/PayloadResults'}},
- 'type': 'object'}},
+ 'ImportRemoteEntities': {'properties': {'Params': {'$ref': '#/definitions/RemoteEntityTokenArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'RelationUnitSettings': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'},
+ 'Result': {'$ref': '#/definitions/SettingsResults'}},
+ 'type': 'object'},
+ 'Relations': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RemoteRelationResults'}},
+ 'type': 'object'},
+ 'RemoteApplications': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RemoteApplicationResults'}},
+ 'type': 'object'},
+ 'SaveMacaroons': {'properties': {'Params': {'$ref': '#/definitions/EntityMacaroonArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetRemoteApplicationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchLocalRelationUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RelationUnitsWatchResults'}},
+ 'type': 'object'},
+ 'WatchRemoteApplicationRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+ 'type': 'object'},
+ 'WatchRemoteApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'},
+ 'WatchRemoteRelations': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(PayloadResults)
- async def List(self, entities):
+
+ @ReturnMapping(ErrorResults)
+ async def ConsumeRemoteRelationChanges(self, changes):
+ '''
+ changes : typing.Sequence[~RemoteRelationChangeEvent]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='ConsumeRemoteRelationChanges',
+ version=1,
+ params=_params)
+ _params['changes'] = changes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ControllerAPIInfoResults)
+ async def ControllerAPIInfoForModels(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ControllerAPIInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='ControllerAPIInfoForModels',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ControllerConfigResult)
+ async def ControllerConfig(self):
+ '''
+
+ Returns -> typing.Mapping[str, typing.Any]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='ControllerConfig',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(TokenResults)
+ async def ExportEntities(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~TokenResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='ExportEntities',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResults)
+ async def GetTokens(self, args):
+ '''
+ args : typing.Sequence[~GetTokenArg]
+ Returns -> typing.Sequence[~StringResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='GetTokens',
+ version=1,
+ params=_params)
+ _params['Args'] = args
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def ImportRemoteEntities(self, args):
+ '''
+ args : typing.Sequence[~RemoteEntityTokenArg]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='ImportRemoteEntities',
+ version=1,
+ params=_params)
+ _params['Args'] = args
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(SettingsResults)
+ async def RelationUnitSettings(self, relation_units):
+ '''
+ relation_units : typing.Sequence[~RelationUnit]
+ Returns -> typing.Sequence[~SettingsResult]
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult>
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='RelationUnitSettings',
+ version=1,
+ params=_params)
+ _params['relation-units'] = relation_units
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(RemoteRelationResults)
+ async def Relations(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RemoteRelationResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='PayloadsHookContext', request='List', version=1, params=_params)
+ msg = dict(type='RemoteRelations',
+ request='Relations',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PayloadResults)
- async def LookUp(self, args):
+ @ReturnMapping(RemoteApplicationResults)
+ async def RemoteApplications(self, entities):
'''
- args : typing.Sequence<+T_co>[~LookUpPayloadArg]<~LookUpPayloadArg>
- Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RemoteApplicationResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='PayloadsHookContext', request='LookUp', version=1, params=_params)
- _params['args'] = args
+ msg = dict(type='RemoteRelations',
+ request='RemoteApplications',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PayloadResults)
- async def SetStatus(self, args):
+ @ReturnMapping(ErrorResults)
+ async def SaveMacaroons(self, args):
'''
- args : typing.Sequence<+T_co>[~SetPayloadStatusArg]<~SetPayloadStatusArg>
- Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult>
+ args : typing.Sequence[~EntityMacaroonArg]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='PayloadsHookContext', request='SetStatus', version=1, params=_params)
- _params['args'] = args
+ msg = dict(type='RemoteRelations',
+ request='SaveMacaroons',
+ version=1,
+ params=_params)
+ _params['Args'] = args
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PayloadResults)
- async def Track(self, payloads):
+ @ReturnMapping(ErrorResults)
+ async def SetRemoteApplicationsStatus(self, entities):
'''
- payloads : typing.Sequence<+T_co>[~Payload]<~Payload>
- Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='PayloadsHookContext', request='Track', version=1, params=_params)
- _params['payloads'] = payloads
+ msg = dict(type='RemoteRelations',
+ request='SetRemoteApplicationsStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(PayloadResults)
- async def Untrack(self, entities):
+ @ReturnMapping(RelationUnitsWatchResults)
+ async def WatchLocalRelationUnits(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~PayloadResult]<~PayloadResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RelationUnitsWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='PayloadsHookContext', request='Untrack', version=1, params=_params)
+ msg = dict(type='RemoteRelations',
+ request='WatchLocalRelationUnits',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class PingerFacade(Type):
- name = 'Pinger'
+ @ReturnMapping(StringsWatchResults)
+ async def WatchRemoteApplicationRelations(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringsWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='WatchRemoteApplicationRelations',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResult)
+ async def WatchRemoteApplications(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='WatchRemoteApplications',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringsWatchResult)
+ async def WatchRemoteRelations(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='RemoteRelations',
+ request='WatchRemoteRelations',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class RemoteRelationsWatcherFacade(Type):
+ name = 'RemoteRelationsWatcher'
version = 1
- schema = {'properties': {'Ping': {'type': 'object'}, 'Stop': {'type': 'object'}},
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'RemoteEntityId': {'additionalProperties': False,
+ 'properties': {'model-uuid': {'type': 'string'},
+ 'token': {'type': 'string'}},
+ 'required': ['model-uuid', 'token'],
+ 'type': 'object'},
+ 'RemoteRelationChange': {'additionalProperties': False,
+ 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}},
+ 'type': 'object'},
+ 'departed-units': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'id': {'type': 'integer'},
+ 'life': {'type': 'string'}},
+ 'required': ['id', 'life'],
+ 'type': 'object'},
+ 'RemoteRelationUnitChange': {'additionalProperties': False,
+ 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}},
+ 'required': ['unit-id'],
+ 'type': 'object'},
+ 'RemoteRelationsChange': {'additionalProperties': False,
+ 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'},
+ 'type': 'array'},
+ 'initial': {'type': 'boolean'},
+ 'removed': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['initial'],
+ 'type': 'object'},
+ 'RemoteRelationsWatchResult': {'additionalProperties': False,
+ 'properties': {'RemoteRelationsWatcherId': {'type': 'string'},
+ 'change': {'$ref': '#/definitions/RemoteRelationsChange'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['RemoteRelationsWatcherId'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteRelationsWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(None)
- async def Ping(self):
+
+ @ReturnMapping(RemoteRelationsWatchResult)
+ async def Next(self):
'''
- Returns -> None
+ Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Pinger', request='Ping', version=1, params=_params)
+ msg = dict(type='RemoteRelationsWatcher',
+ request='Next',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Pinger', request='Stop', version=1, params=_params)
+ msg = dict(type='RemoteRelationsWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class ProxyUpdaterFacade(Type):
- name = 'ProxyUpdater'
+class ResourcesFacade(Type):
+ name = 'Resources'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
+ schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False,
+ 'properties': {'channel': {'type': 'string'},
+ 'force': {'type': 'boolean'},
+ 'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'url': {'type': 'string'}},
+ 'required': ['url',
+ 'channel',
+ 'macaroon',
+ 'force'],
+ 'type': 'object'},
+ 'AddPendingResourcesArgs': {'additionalProperties': False,
+ 'properties': {'AddCharmWithAuthorization': {'$ref': '#/definitions/AddCharmWithAuthorization'},
+ 'Entity': {'$ref': '#/definitions/Entity'},
+ 'resources': {'items': {'$ref': '#/definitions/CharmResource'},
+ 'type': 'array'}},
+ 'required': ['Entity',
+ 'AddCharmWithAuthorization',
+ 'resources'],
+ 'type': 'object'},
+ 'AddPendingResourcesResult': {'additionalProperties': False,
+ 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
+ 'pending-ids': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['ErrorResult',
+ 'pending-ids'],
+ 'type': 'object'},
+ 'CharmResource': {'additionalProperties': False,
+ 'properties': {'description': {'type': 'string'},
+ 'fingerprint': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'name': {'type': 'string'},
+ 'origin': {'type': 'string'},
+ 'path': {'type': 'string'},
+ 'revision': {'type': 'integer'},
+ 'size': {'type': 'integer'},
+ 'type': {'type': 'string'}},
+ 'required': ['name',
+ 'type',
+ 'path',
+ 'origin',
+ 'revision',
+ 'fingerprint',
+ 'size'],
+ 'type': 'object'},
'Entity': {'additionalProperties': False,
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'NotifyWatchResult': {'additionalProperties': False,
- 'properties': {'NotifyWatcherId': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['NotifyWatcherId'],
- 'type': 'object'},
- 'NotifyWatchResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ListResourcesArgs': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'type': 'array'}},
- 'required': ['results'],
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'Resource': {'additionalProperties': False,
+ 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'},
+ 'application': {'type': 'string'},
+ 'id': {'type': 'string'},
+ 'pending-id': {'type': 'string'},
+ 'timestamp': {'format': 'date-time',
+ 'type': 'string'},
+ 'username': {'type': 'string'}},
+ 'required': ['CharmResource',
+ 'id',
+ 'pending-id',
+ 'application',
+ 'username',
+ 'timestamp'],
+ 'type': 'object'},
+ 'ResourcesResult': {'additionalProperties': False,
+ 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
+ 'charm-store-resources': {'items': {'$ref': '#/definitions/CharmResource'},
+ 'type': 'array'},
+ 'resources': {'items': {'$ref': '#/definitions/Resource'},
+ 'type': 'array'},
+ 'unit-resources': {'items': {'$ref': '#/definitions/UnitResources'},
+ 'type': 'array'}},
+ 'required': ['ErrorResult',
+ 'resources',
+ 'charm-store-resources',
+ 'unit-resources'],
+ 'type': 'object'},
+ 'ResourcesResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ResourcesResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'UnitResources': {'additionalProperties': False,
+ 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
+ 'download-progress': {'patternProperties': {'.*': {'type': 'integer'}},
+ 'type': 'object'},
+ 'resources': {'items': {'$ref': '#/definitions/Resource'},
+ 'type': 'array'}},
+ 'required': ['Entity',
+ 'resources',
+ 'download-progress'],
+ 'type': 'object'}},
+ 'properties': {'AddPendingResources': {'properties': {'Params': {'$ref': '#/definitions/AddPendingResourcesArgs'},
+ 'Result': {'$ref': '#/definitions/AddPendingResourcesResult'}},
'type': 'object'},
- 'ProxyConfig': {'additionalProperties': False,
- 'properties': {'ftp': {'type': 'string'},
- 'http': {'type': 'string'},
- 'https': {'type': 'string'},
- 'no-proxy': {'type': 'string'}},
- 'required': ['http',
- 'https',
- 'ftp',
- 'no-proxy'],
- 'type': 'object'},
- 'ProxyConfigResult': {'additionalProperties': False,
- 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
- 'error': {'$ref': '#/definitions/Error'},
- 'proxy-settings': {'$ref': '#/definitions/ProxyConfig'}},
- 'required': ['proxy-settings',
- 'apt-proxy-settings'],
- 'type': 'object'},
- 'ProxyConfigResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ProxyConfigResults'}},
- 'type': 'object'},
- 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'},
+ 'Result': {'$ref': '#/definitions/ResourcesResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(ProxyConfigResults)
- async def ProxyConfig(self, entities):
+
+ @ReturnMapping(AddPendingResourcesResult)
+ async def AddPendingResources(self, addcharmwithauthorization, entity, resources):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ProxyConfigResult]<~ProxyConfigResult>
+ addcharmwithauthorization : AddCharmWithAuthorization
+ entity : Entity
+ resources : typing.Sequence[~CharmResource]
+ Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[str]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ProxyUpdater', request='ProxyConfig', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='Resources',
+ request='AddPendingResources',
+ version=1,
+ params=_params)
+ _params['AddCharmWithAuthorization'] = addcharmwithauthorization
+ _params['Entity'] = entity
+ _params['Resources'] = resources
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchForProxyConfigAndAPIHostPortChanges(self, entities):
+ @ReturnMapping(ResourcesResults)
+ async def ListResources(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ResourcesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ProxyUpdater', request='WatchForProxyConfigAndAPIHostPortChanges', version=1, params=_params)
+ msg = dict(type='Resources',
+ request='ListResources',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class RelationUnitsWatcherFacade(Type):
- name = 'RelationUnitsWatcher'
+class ResourcesHookContextFacade(Type):
+ name = 'ResourcesHookContext'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
+ schema = {'definitions': {'CharmResource': {'additionalProperties': False,
+ 'properties': {'description': {'type': 'string'},
+ 'fingerprint': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'name': {'type': 'string'},
+ 'origin': {'type': 'string'},
+ 'path': {'type': 'string'},
+ 'revision': {'type': 'integer'},
+ 'size': {'type': 'integer'},
+ 'type': {'type': 'string'}},
+ 'required': ['name',
+ 'type',
+ 'path',
+ 'origin',
+ 'revision',
+ 'fingerprint',
+ 'size'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ListUnitResourcesArgs': {'additionalProperties': False,
+ 'properties': {'resource-names': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['resource-names'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'RelationUnitsChange': {'additionalProperties': False,
- 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}},
- 'type': 'object'},
- 'departed': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['changed'],
- 'type': 'object'},
- 'RelationUnitsWatchResult': {'additionalProperties': False,
- 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'},
- 'error': {'$ref': '#/definitions/Error'},
- 'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id',
- 'changes'],
- 'type': 'object'},
- 'UnitSettings': {'additionalProperties': False,
- 'properties': {'version': {'type': 'integer'}},
- 'required': ['version'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RelationUnitsWatchResult'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
+ 'Resource': {'additionalProperties': False,
+ 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'},
+ 'application': {'type': 'string'},
+ 'id': {'type': 'string'},
+ 'pending-id': {'type': 'string'},
+ 'timestamp': {'format': 'date-time',
+ 'type': 'string'},
+ 'username': {'type': 'string'}},
+ 'required': ['CharmResource',
+ 'id',
+ 'pending-id',
+ 'application',
+ 'username',
+ 'timestamp'],
+ 'type': 'object'},
+ 'UnitResourceResult': {'additionalProperties': False,
+ 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
+ 'resource': {'$ref': '#/definitions/Resource'}},
+ 'required': ['ErrorResult', 'resource'],
+ 'type': 'object'},
+ 'UnitResourcesResult': {'additionalProperties': False,
+ 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
+ 'resources': {'items': {'$ref': '#/definitions/UnitResourceResult'},
+ 'type': 'array'}},
+ 'required': ['ErrorResult',
+ 'resources'],
+ 'type': 'object'}},
+ 'properties': {'GetResourceInfo': {'properties': {'Params': {'$ref': '#/definitions/ListUnitResourcesArgs'},
+ 'Result': {'$ref': '#/definitions/UnitResourcesResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
-
- @ReturnMapping(RelationUnitsWatchResult)
- async def Next(self):
- '''
-
- Returns -> typing.Union[_ForwardRef('RelationUnitsChange'), _ForwardRef('Error'), str]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='RelationUnitsWatcher', request='Next', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
- @ReturnMapping(None)
- async def Stop(self):
+ @ReturnMapping(UnitResourcesResult)
+ async def GetResourceInfo(self, resource_names):
'''
-
- Returns -> None
+ resource_names : typing.Sequence[str]
+ Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence[~UnitResourceResult]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RelationUnitsWatcher', request='Stop', version=1, params=_params)
-
+ msg = dict(type='ResourcesHookContext',
+ request='GetResourceInfo',
+ version=1,
+ params=_params)
+ _params['resource-names'] = resource_names
reply = await self.rpc(msg)
return reply
-class RemoteApplicationWatcherFacade(Type):
- name = 'RemoteApplicationWatcher'
+class RetryStrategyFacade(Type):
+ name = 'RetryStrategy'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'RemoteApplicationChange': {'additionalProperties': False,
- 'properties': {'application-tag': {'type': 'string'},
- 'life': {'type': 'string'},
- 'relations': {'$ref': '#/definitions/RemoteRelationsChange'}},
- 'required': ['application-tag',
- 'life',
- 'relations'],
- 'type': 'object'},
- 'RemoteApplicationWatchResult': {'additionalProperties': False,
- 'properties': {'change': {'$ref': '#/definitions/RemoteApplicationChange'},
- 'error': {'$ref': '#/definitions/Error'},
- 'id': {'type': 'string'}},
- 'required': ['id'],
- 'type': 'object'},
- 'RemoteEntityId': {'additionalProperties': False,
- 'properties': {'model-uuid': {'type': 'string'},
- 'token': {'type': 'string'}},
- 'required': ['model-uuid', 'token'],
- 'type': 'object'},
- 'RemoteRelationChange': {'additionalProperties': False,
- 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}},
- 'type': 'object'},
- 'departed-units': {'items': {'type': 'string'},
- 'type': 'array'},
- 'id': {'type': 'integer'},
- 'life': {'type': 'string'}},
- 'required': ['id', 'life'],
- 'type': 'object'},
- 'RemoteRelationUnitChange': {'additionalProperties': False,
- 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}},
- 'required': ['unit-id'],
- 'type': 'object'},
- 'RemoteRelationsChange': {'additionalProperties': False,
- 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'},
- 'type': 'array'},
- 'initial': {'type': 'boolean'},
- 'removed': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['initial'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteApplicationWatchResult'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RetryStrategy': {'additionalProperties': False,
+ 'properties': {'jitter-retry-time': {'type': 'boolean'},
+ 'max-retry-time': {'type': 'integer'},
+ 'min-retry-time': {'type': 'integer'},
+ 'retry-time-factor': {'type': 'integer'},
+ 'should-retry': {'type': 'boolean'}},
+ 'required': ['should-retry',
+ 'min-retry-time',
+ 'max-retry-time',
+ 'jitter-retry-time',
+ 'retry-time-factor'],
+ 'type': 'object'},
+ 'RetryStrategyResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/RetryStrategy'}},
+ 'type': 'object'},
+ 'RetryStrategyResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RetryStrategyResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/RetryStrategyResults'}},
+ 'type': 'object'},
+ 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(RemoteApplicationWatchResult)
- async def Next(self):
+
+ @ReturnMapping(RetryStrategyResults)
+ async def RetryStrategy(self, entities):
'''
-
- Returns -> typing.Union[_ForwardRef('RemoteApplicationChange'), _ForwardRef('Error'), str]
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RetryStrategyResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RemoteApplicationWatcher', request='Next', version=1, params=_params)
-
+ msg = dict(type='RetryStrategy',
+ request='RetryStrategy',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Stop(self):
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchRetryStrategy(self, entities):
'''
-
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RemoteApplicationWatcher', request='Stop', version=1, params=_params)
-
+ msg = dict(type='RetryStrategy',
+ request='WatchRetryStrategy',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class RemoteRelationsWatcherFacade(Type):
- name = 'RemoteRelationsWatcher'
+class SSHClientFacade(Type):
+ name = 'SSHClient'
version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'RemoteEntityId': {'additionalProperties': False,
- 'properties': {'model-uuid': {'type': 'string'},
- 'token': {'type': 'string'}},
- 'required': ['model-uuid', 'token'],
+ 'SSHAddressResult': {'additionalProperties': False,
+ 'properties': {'address': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'SSHAddressResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'SSHProxyResult': {'additionalProperties': False,
+ 'properties': {'use-proxy': {'type': 'boolean'}},
+ 'required': ['use-proxy'],
'type': 'object'},
- 'RemoteRelationChange': {'additionalProperties': False,
- 'properties': {'changed-units': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteRelationUnitChange'}},
- 'type': 'object'},
- 'departed-units': {'items': {'type': 'string'},
- 'type': 'array'},
- 'id': {'type': 'integer'},
- 'life': {'type': 'string'}},
- 'required': ['id', 'life'],
- 'type': 'object'},
- 'RemoteRelationUnitChange': {'additionalProperties': False,
- 'properties': {'settings': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'unit-id': {'$ref': '#/definitions/RemoteEntityId'}},
- 'required': ['unit-id'],
- 'type': 'object'},
- 'RemoteRelationsChange': {'additionalProperties': False,
- 'properties': {'changed': {'items': {'$ref': '#/definitions/RemoteRelationChange'},
- 'type': 'array'},
- 'initial': {'type': 'boolean'},
- 'removed': {'items': {'type': 'integer'},
- 'type': 'array'}},
- 'required': ['initial'],
- 'type': 'object'},
- 'RemoteRelationsWatchResult': {'additionalProperties': False,
- 'properties': {'RemoteRelationsWatcherId': {'type': 'string'},
- 'change': {'$ref': '#/definitions/RemoteRelationsChange'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'required': ['RemoteRelationsWatcherId'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/RemoteRelationsWatchResult'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
+ 'SSHPublicKeysResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'public-keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'SSHPublicKeysResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
+ 'type': 'object'},
+ 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}},
+ 'type': 'object'},
+ 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
+ 'type': 'object'},
+ 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(RemoteRelationsWatchResult)
- async def Next(self):
+
+ @ReturnMapping(SSHAddressResults)
+ async def PrivateAddress(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='SSHClient',
+ request='PrivateAddress',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(SSHProxyResult)
+ async def Proxy(self):
'''
- Returns -> typing.Union[str, _ForwardRef('RemoteRelationsChange'), _ForwardRef('Error')]
+ Returns -> bool
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RemoteRelationsWatcher', request='Next', version=1, params=_params)
+ msg = dict(type='SSHClient',
+ request='Proxy',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def Stop(self):
+ @ReturnMapping(SSHAddressResults)
+ async def PublicAddress(self, entities):
'''
-
- Returns -> None
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RemoteRelationsWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='SSHClient',
+ request='PublicAddress',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+ @ReturnMapping(SSHPublicKeysResults)
+ async def PublicKeys(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHPublicKeysResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='SSHClient',
+ request='PublicKeys',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class ResourcesFacade(Type):
- name = 'Resources'
- version = 1
- schema = {'definitions': {'AddCharmWithAuthorization': {'additionalProperties': False,
- 'properties': {'channel': {'type': 'string'},
- 'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'url': {'type': 'string'}},
- 'required': ['url',
- 'channel',
- 'macaroon'],
- 'type': 'object'},
- 'AddPendingResourcesArgs': {'additionalProperties': False,
- 'properties': {'AddCharmWithAuthorization': {'$ref': '#/definitions/AddCharmWithAuthorization'},
- 'Entity': {'$ref': '#/definitions/Entity'},
- 'resources': {'items': {'$ref': '#/definitions/CharmResource'},
- 'type': 'array'}},
- 'required': ['Entity',
- 'AddCharmWithAuthorization',
- 'resources'],
- 'type': 'object'},
- 'AddPendingResourcesResult': {'additionalProperties': False,
- 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
- 'pending-ids': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['ErrorResult',
- 'pending-ids'],
- 'type': 'object'},
- 'CharmResource': {'additionalProperties': False,
- 'properties': {'description': {'type': 'string'},
- 'fingerprint': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'name': {'type': 'string'},
- 'origin': {'type': 'string'},
- 'path': {'type': 'string'},
- 'revision': {'type': 'integer'},
- 'size': {'type': 'integer'},
- 'type': {'type': 'string'}},
- 'required': ['name',
- 'type',
- 'path',
- 'origin',
- 'revision',
- 'fingerprint',
- 'size'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ListResourcesArgs': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'Resource': {'additionalProperties': False,
- 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'},
- 'application': {'type': 'string'},
- 'id': {'type': 'string'},
- 'pending-id': {'type': 'string'},
- 'timestamp': {'format': 'date-time',
- 'type': 'string'},
- 'username': {'type': 'string'}},
- 'required': ['CharmResource',
- 'id',
- 'pending-id',
- 'application',
- 'username',
- 'timestamp'],
- 'type': 'object'},
- 'ResourcesResult': {'additionalProperties': False,
- 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
- 'charm-store-resources': {'items': {'$ref': '#/definitions/CharmResource'},
- 'type': 'array'},
- 'resources': {'items': {'$ref': '#/definitions/Resource'},
- 'type': 'array'},
- 'unit-resources': {'items': {'$ref': '#/definitions/UnitResources'},
- 'type': 'array'}},
- 'required': ['ErrorResult',
- 'resources',
- 'charm-store-resources',
- 'unit-resources'],
- 'type': 'object'},
- 'ResourcesResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ResourcesResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'UnitResources': {'additionalProperties': False,
- 'properties': {'Entity': {'$ref': '#/definitions/Entity'},
- 'download-progress': {'patternProperties': {'.*': {'type': 'integer'}},
- 'type': 'object'},
- 'resources': {'items': {'$ref': '#/definitions/Resource'},
- 'type': 'array'}},
- 'required': ['Entity',
- 'resources',
- 'download-progress'],
- 'type': 'object'}},
- 'properties': {'AddPendingResources': {'properties': {'Params': {'$ref': '#/definitions/AddPendingResourcesArgs'},
- 'Result': {'$ref': '#/definitions/AddPendingResourcesResult'}},
- 'type': 'object'},
- 'ListResources': {'properties': {'Params': {'$ref': '#/definitions/ListResourcesArgs'},
- 'Result': {'$ref': '#/definitions/ResourcesResults'}},
- 'type': 'object'}},
+class SingularFacade(Type):
+ name = 'Singular'
+ version = 1
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'SingularClaim': {'additionalProperties': False,
+ 'properties': {'controller-tag': {'type': 'string'},
+ 'duration': {'type': 'integer'},
+ 'model-tag': {'type': 'string'}},
+ 'required': ['model-tag',
+ 'controller-tag',
+ 'duration'],
+ 'type': 'object'},
+ 'SingularClaims': {'additionalProperties': False,
+ 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'},
+ 'type': 'array'}},
+ 'required': ['claims'],
+ 'type': 'object'}},
+ 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(AddPendingResourcesResult)
- async def AddPendingResources(self, addcharmwithauthorization, entity, resources):
+
+ @ReturnMapping(ErrorResults)
+ async def Claim(self, claims):
'''
- addcharmwithauthorization : AddCharmWithAuthorization
- entity : Entity
- resources : typing.Sequence<+T_co>[~CharmResource]<~CharmResource>
- Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence<+T_co>[str]]
+ claims : typing.Sequence[~SingularClaim]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Resources', request='AddPendingResources', version=1, params=_params)
- _params['AddCharmWithAuthorization'] = addcharmwithauthorization
- _params['Entity'] = entity
- _params['Resources'] = resources
+ msg = dict(type='Singular',
+ request='Claim',
+ version=1,
+ params=_params)
+ _params['claims'] = claims
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ResourcesResults)
- async def ListResources(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def Wait(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ResourcesResult]<~ResourcesResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Resources', request='ListResources', version=1, params=_params)
+ msg = dict(type='Singular',
+ request='Wait',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class ResourcesHookContextFacade(Type):
- name = 'ResourcesHookContext'
+class StringsWatcherFacade(Type):
+ name = 'StringsWatcher'
version = 1
- schema = {'definitions': {'CharmResource': {'additionalProperties': False,
- 'properties': {'description': {'type': 'string'},
- 'fingerprint': {'items': {'type': 'integer'},
- 'type': 'array'},
- 'name': {'type': 'string'},
- 'origin': {'type': 'string'},
- 'path': {'type': 'string'},
- 'revision': {'type': 'integer'},
- 'size': {'type': 'integer'},
- 'type': {'type': 'string'}},
- 'required': ['name',
- 'type',
- 'path',
- 'origin',
- 'revision',
- 'fingerprint',
- 'size'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
+ schema = {'definitions': {'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'message': {'type': 'string'}},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ListUnitResourcesArgs': {'additionalProperties': False,
- 'properties': {'resource-names': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'required': ['resource-names'],
- 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'Resource': {'additionalProperties': False,
- 'properties': {'CharmResource': {'$ref': '#/definitions/CharmResource'},
- 'application': {'type': 'string'},
- 'id': {'type': 'string'},
- 'pending-id': {'type': 'string'},
- 'timestamp': {'format': 'date-time',
- 'type': 'string'},
- 'username': {'type': 'string'}},
- 'required': ['CharmResource',
- 'id',
- 'pending-id',
- 'application',
- 'username',
- 'timestamp'],
- 'type': 'object'},
- 'UnitResourceResult': {'additionalProperties': False,
- 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
- 'resource': {'$ref': '#/definitions/Resource'}},
- 'required': ['ErrorResult', 'resource'],
- 'type': 'object'},
- 'UnitResourcesResult': {'additionalProperties': False,
- 'properties': {'ErrorResult': {'$ref': '#/definitions/ErrorResult'},
- 'resources': {'items': {'$ref': '#/definitions/UnitResourceResult'},
- 'type': 'array'}},
- 'required': ['ErrorResult',
- 'resources'],
- 'type': 'object'}},
- 'properties': {'GetResourceInfo': {'properties': {'Params': {'$ref': '#/definitions/ListUnitResourcesArgs'},
- 'Result': {'$ref': '#/definitions/UnitResourcesResult'}},
- 'type': 'object'}},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(UnitResourcesResult)
- async def GetResourceInfo(self, resource_names):
+
+ @ReturnMapping(StringsWatchResult)
+ async def Next(self):
'''
- resource_names : typing.Sequence<+T_co>[str]
- Returns -> typing.Union[_ForwardRef('ErrorResult'), typing.Sequence<+T_co>[~UnitResourceResult]<~UnitResourceResult>]
+
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ResourcesHookContext', request='GetResourceInfo', version=1, params=_params)
- _params['resource-names'] = resource_names
+ msg = dict(type='StringsWatcher',
+ request='Next',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class RetryStrategyFacade(Type):
- name = 'RetryStrategy'
+ @ReturnMapping(None)
+ async def Stop(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='StringsWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class UndertakerFacade(Type):
+ name = 'Undertaker'
version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
+ schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
'macaroon-path': {'type': 'string'}},
'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelConfigResult': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'RetryStrategy': {'additionalProperties': False,
- 'properties': {'jitter-retry-time': {'type': 'boolean'},
- 'max-retry-time': {'type': 'integer'},
- 'min-retry-time': {'type': 'integer'},
- 'retry-time-factor': {'type': 'integer'},
- 'should-retry': {'type': 'boolean'}},
- 'required': ['should-retry',
- 'min-retry-time',
- 'max-retry-time',
- 'jitter-retry-time',
- 'retry-time-factor'],
- 'type': 'object'},
- 'RetryStrategyResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'$ref': '#/definitions/RetryStrategy'}},
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'UndertakerModelInfo': {'additionalProperties': False,
+ 'properties': {'global-name': {'type': 'string'},
+ 'is-system': {'type': 'boolean'},
+ 'life': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'uuid': {'type': 'string'}},
+ 'required': ['uuid',
+ 'name',
+ 'global-name',
+ 'is-system',
+ 'life'],
'type': 'object'},
- 'RetryStrategyResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/RetryStrategyResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'RetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/RetryStrategyResults'}},
- 'type': 'object'},
- 'WatchRetryStrategy': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'UndertakerModelInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/UndertakerModelInfo'}},
+ 'required': ['result'],
+ 'type': 'object'}},
+ 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
+ 'type': 'object'},
+ 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/UndertakerModelInfoResult'}},
+ 'type': 'object'},
+ 'ProcessDyingModel': {'type': 'object'},
+ 'RemoveModel': {'type': 'object'},
+ 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(RetryStrategyResults)
- async def RetryStrategy(self, entities):
+
+ @ReturnMapping(ModelConfigResult)
+ async def ModelConfig(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~RetryStrategyResult]<~RetryStrategyResult>
+
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RetryStrategy', request='RetryStrategy', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='Undertaker',
+ request='ModelConfig',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchRetryStrategy(self, entities):
+ @ReturnMapping(UndertakerModelInfoResult)
+ async def ModelInfo(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+
+ Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='RetryStrategy', request='WatchRetryStrategy', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='Undertaker',
+ request='ModelInfo',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
-class SSHClientFacade(Type):
- name = 'SSHClient'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'SSHAddressResult': {'additionalProperties': False,
- 'properties': {'address': {'type': 'string'},
- 'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'SSHAddressResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/SSHAddressResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'SSHProxyResult': {'additionalProperties': False,
- 'properties': {'use-proxy': {'type': 'boolean'}},
- 'required': ['use-proxy'],
- 'type': 'object'},
- 'SSHPublicKeysResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'},
- 'public-keys': {'items': {'type': 'string'},
- 'type': 'array'}},
- 'type': 'object'},
- 'SSHPublicKeysResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/SSHPublicKeysResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'}},
- 'properties': {'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
- 'type': 'object'},
- 'Proxy': {'properties': {'Result': {'$ref': '#/definitions/SSHProxyResult'}},
- 'type': 'object'},
- 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHAddressResults'}},
- 'type': 'object'},
- 'PublicKeys': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/SSHPublicKeysResults'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(SSHAddressResults)
- async def PrivateAddress(self, entities):
+ @ReturnMapping(None)
+ async def ProcessDyingModel(self):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult>
+
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PrivateAddress', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='Undertaker',
+ request='ProcessDyingModel',
+ version=1,
+ params=_params)
+
reply = await self.rpc(msg)
return reply
- @ReturnMapping(SSHProxyResult)
- async def Proxy(self):
+ @ReturnMapping(None)
+ async def RemoveModel(self):
'''
- Returns -> bool
+ Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='Proxy', version=1, params=_params)
+ msg = dict(type='Undertaker',
+ request='RemoveModel',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(SSHAddressResults)
- async def PublicAddress(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def SetStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PublicAddress', version=1, params=_params)
+ msg = dict(type='Undertaker',
+ request='SetStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(SSHPublicKeysResults)
- async def PublicKeys(self, entities):
+ @ReturnMapping(ErrorResults)
+ async def UpdateStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHPublicKeysResult]<~SSHPublicKeysResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PublicKeys', version=1, params=_params)
+ msg = dict(type='Undertaker',
+ request='UpdateStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class SingularFacade(Type):
- name = 'Singular'
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchModelResources(self):
+ '''
+
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Undertaker',
+ request='WatchModelResources',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class UnitAssignerFacade(Type):
+ name = 'UnitAssigner'
version = 1
schema = {'definitions': {'Entities': {'additionalProperties': False,
'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
'properties': {'tag': {'type': 'string'}},
'required': ['tag'],
'type': 'object'},
+ 'EntityStatusArgs': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag',
+ 'status',
+ 'info',
+ 'data'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'required': ['results'],
'type': 'object'},
'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'SingularClaim': {'additionalProperties': False,
- 'properties': {'controller-tag': {'type': 'string'},
- 'duration': {'type': 'integer'},
- 'model-tag': {'type': 'string'}},
- 'required': ['model-tag',
- 'controller-tag',
- 'duration'],
+ 'SetStatus': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'StringsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'}},
+ 'properties': {'AssignUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
'type': 'object'},
- 'SingularClaims': {'additionalProperties': False,
- 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'},
- 'type': 'array'}},
- 'required': ['claims'],
- 'type': 'object'}},
- 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'}},
+ 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+ 'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(ErrorResults)
- async def Claim(self, claims):
+ async def AssignUnits(self, entities):
'''
- claims : typing.Sequence<+T_co>[~SingularClaim]<~SingularClaim>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Singular', request='Claim', version=1, params=_params)
- _params['claims'] = claims
+ msg = dict(type='UnitAssigner',
+ request='AssignUnits',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def Wait(self, entities):
+ async def SetAgentStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~EntityStatusArgs]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Singular', request='Wait', version=1, params=_params)
+ msg = dict(type='UnitAssigner',
+ request='SetAgentStatus',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class StringsWatcherFacade(Type):
- name = 'StringsWatcher'
- version = 1
- schema = {'definitions': {'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'StringsWatchResult': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id'],
- 'type': 'object'}},
- 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
- 'type': 'object'},
- 'Stop': {'type': 'object'}},
- 'type': 'object'}
-
-
@ReturnMapping(StringsWatchResult)
- async def Next(self):
- '''
-
- Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')]
- '''
- # map input types to rpc msg
- _params = dict()
- msg = dict(type='StringsWatcher', request='Next', version=1, params=_params)
-
- reply = await self.rpc(msg)
- return reply
-
-
-
- @ReturnMapping(None)
- async def Stop(self):
+ async def WatchUnitAssignments(self):
'''
- Returns -> None
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='StringsWatcher', request='Stop', version=1, params=_params)
+ msg = dict(type='UnitAssigner',
+ request='WatchUnitAssignments',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
-class UndertakerFacade(Type):
- name = 'Undertaker'
+class UpgradeSeriesFacade(Type):
+ name = 'UpgradeSeries'
version = 1
- schema = {'definitions': {'EntityStatusArgs': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'status': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag',
- 'status',
- 'info',
- 'data'],
- 'type': 'object'},
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'EntitiesResult': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'EntitiesResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/EntitiesResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
'Error': {'additionalProperties': False,
'properties': {'code': {'type': 'string'},
'info': {'$ref': '#/definitions/ErrorInfo'},
'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
'type': 'array'}},
'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'ModelConfigResult': {'additionalProperties': False,
- 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'}},
- 'required': ['config'],
- 'type': 'object'},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
'NotifyWatchResult': {'additionalProperties': False,
'properties': {'NotifyWatcherId': {'type': 'string'},
'error': {'$ref': '#/definitions/Error'}},
'type': 'array'}},
'required': ['results'],
'type': 'object'},
- 'SetStatus': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'UndertakerModelInfo': {'additionalProperties': False,
- 'properties': {'global-name': {'type': 'string'},
- 'is-system': {'type': 'boolean'},
- 'life': {'type': 'string'},
- 'name': {'type': 'string'},
- 'uuid': {'type': 'string'}},
- 'required': ['uuid',
- 'name',
- 'global-name',
- 'is-system',
- 'life'],
- 'type': 'object'},
- 'UndertakerModelInfoResult': {'additionalProperties': False,
+ 'PinApplicationResult': {'additionalProperties': False,
+ 'properties': {'application-name': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['application-name'],
+ 'type': 'object'},
+ 'PinApplicationsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/PinApplicationResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'PinnedLeadershipResult': {'additionalProperties': False,
+ 'properties': {'result': {'patternProperties': {'.*': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'StringResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'UpdateSeriesArg': {'additionalProperties': False,
+ 'properties': {'force': {'type': 'boolean'},
+ 'series': {'type': 'string'},
+ 'tag': {'$ref': '#/definitions/Entity'}},
+ 'required': ['tag', 'force', 'series'],
+ 'type': 'object'},
+ 'UpdateSeriesArgs': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'},
+ 'type': 'array'}},
+ 'required': ['args'],
+ 'type': 'object'},
+ 'UpgradeSeriesStartUnitCompletionParam': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'},
+ 'message': {'type': 'string'}},
+ 'required': ['entities',
+ 'message'],
+ 'type': 'object'},
+ 'UpgradeSeriesStatusParam': {'additionalProperties': False,
+ 'properties': {'entity': {'$ref': '#/definitions/Entity'},
+ 'message': {'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['entity',
+ 'status',
+ 'message'],
+ 'type': 'object'},
+ 'UpgradeSeriesStatusParams': {'additionalProperties': False,
+ 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusParam'},
+ 'type': 'array'}},
+ 'required': ['params'],
+ 'type': 'object'},
+ 'UpgradeSeriesStatusResult': {'additionalProperties': False,
'properties': {'error': {'$ref': '#/definitions/Error'},
- 'result': {'$ref': '#/definitions/UndertakerModelInfo'}},
- 'required': ['result'],
- 'type': 'object'}},
- 'properties': {'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}},
- 'type': 'object'},
- 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/UndertakerModelInfoResult'}},
- 'type': 'object'},
- 'ProcessDyingModel': {'type': 'object'},
- 'RemoveModel': {'type': 'object'},
- 'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'status': {'type': 'string'}},
+ 'type': 'object'},
+ 'UpgradeSeriesStatusResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/UpgradeSeriesStatusResult'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'properties': {'FinishUpgradeSeries': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'MachineStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}},
+ 'type': 'object'},
+ 'PinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}},
+ 'type': 'object'},
+ 'PinnedLeadership': {'properties': {'Result': {'$ref': '#/definitions/PinnedLeadershipResult'}},
+ 'type': 'object'},
+ 'SetMachineStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SetUpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStatusParams'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'StartUnitCompletion': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesStartUnitCompletionParam'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'TargetSeries': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/StringResults'}},
'type': 'object'},
- 'WatchModelResources': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
- 'type': 'object'}},
+ 'UnitsCompleted': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/EntitiesResults'}},
+ 'type': 'object'},
+ 'UnitsPrepared': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/EntitiesResults'}},
+ 'type': 'object'},
+ 'UnpinMachineApplications': {'properties': {'Result': {'$ref': '#/definitions/PinApplicationsResults'}},
+ 'type': 'object'},
+ 'UpgradeSeriesUnitStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/UpgradeSeriesStatusResults'}},
+ 'type': 'object'},
+ 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
'type': 'object'}
-
- @ReturnMapping(ModelConfigResult)
- async def ModelConfig(self):
- '''
- Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ @ReturnMapping(ErrorResults)
+ async def FinishUpgradeSeries(self, args):
+ '''
+ args : typing.Sequence[~UpdateSeriesArg]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='ModelConfig', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='FinishUpgradeSeries',
+ version=1,
+ params=_params)
+ _params['args'] = args
+ reply = await self.rpc(msg)
+ return reply
+
+
+ @ReturnMapping(UpgradeSeriesStatusResults)
+ async def MachineStatus(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~UpgradeSeriesStatusResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UpgradeSeries',
+ request='MachineStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(UndertakerModelInfoResult)
- async def ModelInfo(self):
+ @ReturnMapping(PinApplicationsResults)
+ async def PinMachineApplications(self):
'''
- Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('UndertakerModelInfo')]
+ Returns -> typing.Sequence[~PinApplicationResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='ModelInfo', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='PinMachineApplications',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def ProcessDyingModel(self):
+ @ReturnMapping(PinnedLeadershipResult)
+ async def PinnedLeadership(self):
'''
- Returns -> None
+ Returns -> typing.Sequence[str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='ProcessDyingModel', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='PinnedLeadership',
+ version=1,
+ params=_params)
reply = await self.rpc(msg)
return reply
- @ReturnMapping(None)
- async def RemoveModel(self):
+ @ReturnMapping(ErrorResults)
+ async def SetMachineStatus(self, params):
'''
-
- Returns -> None
+ params : typing.Sequence[~UpgradeSeriesStatusParam]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='RemoveModel', version=1, params=_params)
-
+ msg = dict(type='UpgradeSeries',
+ request='SetMachineStatus',
+ version=1,
+ params=_params)
+ _params['params'] = params
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def SetStatus(self, entities):
+ async def SetUpgradeSeriesUnitStatus(self, params):
'''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ params : typing.Sequence[~UpgradeSeriesStatusParam]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='SetStatus', version=1, params=_params)
- _params['entities'] = entities
+ msg = dict(type='UpgradeSeries',
+ request='SetUpgradeSeriesUnitStatus',
+ version=1,
+ params=_params)
+ _params['params'] = params
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
- async def UpdateStatus(self, entities):
+ async def StartUnitCompletion(self, entities, message):
'''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ message : str
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='UpdateStatus', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='StartUnitCompletion',
+ version=1,
+ params=_params)
_params['entities'] = entities
+ _params['message'] = message
reply = await self.rpc(msg)
return reply
- @ReturnMapping(NotifyWatchResults)
- async def WatchModelResources(self):
+ @ReturnMapping(StringResults)
+ async def TargetSeries(self, entities):
'''
-
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~StringResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Undertaker', request='WatchModelResources', version=1, params=_params)
-
+ msg = dict(type='UpgradeSeries',
+ request='TargetSeries',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
-class UnitAssignerFacade(Type):
- name = 'UnitAssigner'
- version = 1
- schema = {'definitions': {'Entities': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'Entity': {'additionalProperties': False,
- 'properties': {'tag': {'type': 'string'}},
- 'required': ['tag'],
- 'type': 'object'},
- 'EntityStatusArgs': {'additionalProperties': False,
- 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
- 'type': 'object'}},
- 'type': 'object'},
- 'info': {'type': 'string'},
- 'status': {'type': 'string'},
- 'tag': {'type': 'string'}},
- 'required': ['tag',
- 'status',
- 'info',
- 'data'],
- 'type': 'object'},
- 'Error': {'additionalProperties': False,
- 'properties': {'code': {'type': 'string'},
- 'info': {'$ref': '#/definitions/ErrorInfo'},
- 'message': {'type': 'string'}},
- 'required': ['message', 'code'],
- 'type': 'object'},
- 'ErrorInfo': {'additionalProperties': False,
- 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
- 'macaroon-path': {'type': 'string'}},
- 'type': 'object'},
- 'ErrorResult': {'additionalProperties': False,
- 'properties': {'error': {'$ref': '#/definitions/Error'}},
- 'type': 'object'},
- 'ErrorResults': {'additionalProperties': False,
- 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
- 'type': 'array'}},
- 'required': ['results'],
- 'type': 'object'},
- 'Macaroon': {'additionalProperties': False, 'type': 'object'},
- 'SetStatus': {'additionalProperties': False,
- 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'},
- 'type': 'array'}},
- 'required': ['entities'],
- 'type': 'object'},
- 'StringsWatchResult': {'additionalProperties': False,
- 'properties': {'changes': {'items': {'type': 'string'},
- 'type': 'array'},
- 'error': {'$ref': '#/definitions/Error'},
- 'watcher-id': {'type': 'string'}},
- 'required': ['watcher-id'],
- 'type': 'object'}},
- 'properties': {'AssignUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'SetAgentStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
- 'Result': {'$ref': '#/definitions/ErrorResults'}},
- 'type': 'object'},
- 'WatchUnitAssignments': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
- 'type': 'object'}},
- 'type': 'object'}
-
-
- @ReturnMapping(ErrorResults)
- async def AssignUnits(self, entities):
+ @ReturnMapping(EntitiesResults)
+ async def UnitsCompleted(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~EntitiesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UnitAssigner', request='AssignUnits', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='UnitsCompleted',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(ErrorResults)
- async def SetAgentStatus(self, entities):
+ @ReturnMapping(EntitiesResults)
+ async def UnitsPrepared(self, entities):
'''
- entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~EntitiesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UnitAssigner', request='SetAgentStatus', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='UnitsPrepared',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
- @ReturnMapping(StringsWatchResult)
- async def WatchUnitAssignments(self):
+ @ReturnMapping(PinApplicationsResults)
+ async def UnpinMachineApplications(self):
+ '''
+
+ Returns -> typing.Sequence[~PinApplicationResult]
'''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UpgradeSeries',
+ request='UnpinMachineApplications',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
- Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')]
+
+ @ReturnMapping(UpgradeSeriesStatusResults)
+ async def UpgradeSeriesUnitStatus(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~UpgradeSeriesStatusResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UnitAssigner', request='WatchUnitAssignments', version=1, params=_params)
+ msg = dict(type='UpgradeSeries',
+ request='UpgradeSeriesUnitStatus',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchUpgradeSeriesNotifications(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UpgradeSeries',
+ request='WatchUpgradeSeriesNotifications',
+ version=1,
+ params=_params)
+ _params['entities'] = entities
reply = await self.rpc(msg)
return reply
'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(VersionResults)
async def DesiredVersion(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~VersionResult]<~VersionResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~VersionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Upgrader', request='DesiredVersion', version=1, params=_params)
+ msg = dict(type='Upgrader',
+ request='DesiredVersion',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
async def SetTools(self, agent_tools):
'''
- agent_tools : typing.Sequence<+T_co>[~EntityVersion]<~EntityVersion>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ agent_tools : typing.Sequence[~EntityVersion]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Upgrader', request='SetTools', version=1, params=_params)
+ msg = dict(type='Upgrader',
+ request='SetTools',
+ version=1,
+ params=_params)
_params['agent-tools'] = agent_tools
reply = await self.rpc(msg)
return reply
@ReturnMapping(ToolsResults)
async def Tools(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ToolsResult]<~ToolsResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ToolsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Upgrader', request='Tools', version=1, params=_params)
+ msg = dict(type='Upgrader',
+ request='Tools',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(NotifyWatchResults)
async def WatchAPIVersion(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Upgrader', request='WatchAPIVersion', version=1, params=_params)
+ msg = dict(type='Upgrader',
+ request='WatchAPIVersion',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
'Result': {'$ref': '#/definitions/UserInfoResults'}},
'type': 'object'}},
'type': 'object'}
-
+
@ReturnMapping(AddUserResults)
async def AddUser(self, users):
'''
- users : typing.Sequence<+T_co>[~AddUser]<~AddUser>
- Returns -> typing.Sequence<+T_co>[~AddUserResult]<~AddUserResult>
+ users : typing.Sequence[~AddUser]
+ Returns -> typing.Sequence[~AddUserResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='AddUser', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='AddUser',
+ version=1,
+ params=_params)
_params['users'] = users
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
async def DisableUser(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='DisableUser', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='DisableUser',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
async def EnableUser(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='EnableUser', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='EnableUser',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
async def RemoveUser(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='RemoveUser', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='RemoveUser',
+ version=1,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@ReturnMapping(ErrorResults)
async def SetPassword(self, changes):
'''
- changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='SetPassword', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='SetPassword',
+ version=1,
+ params=_params)
_params['changes'] = changes
reply = await self.rpc(msg)
return reply
@ReturnMapping(UserInfoResults)
async def UserInfo(self, entities, include_disabled):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
+ entities : typing.Sequence[~Entity]
include_disabled : bool
- Returns -> typing.Sequence<+T_co>[~UserInfoResult]<~UserInfoResult>
+ Returns -> typing.Sequence[~UserInfoResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='UserManager', request='UserInfo', version=1, params=_params)
+ msg = dict(type='UserManager',
+ request='UserInfo',
+ version=1,
+ params=_params)
_params['entities'] = entities
_params['include-disabled'] = include_disabled
reply = await self.rpc(msg)
return reply
+
+
+
+class VolumeAttachmentPlansWatcherFacade(Type):
+ name = 'VolumeAttachmentPlansWatcher'
+ version = 1
+ schema = {'definitions': {'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MachineStorageId': {'additionalProperties': False,
+ 'properties': {'attachment-tag': {'type': 'string'},
+ 'machine-tag': {'type': 'string'}},
+ 'required': ['machine-tag',
+ 'attachment-tag'],
+ 'type': 'object'},
+ 'MachineStorageIdsWatchResult': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'},
+ 'type': 'array'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id',
+ 'changes'],
+ 'type': 'object'}},
+ 'properties': {'Next': {'properties': {'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResult'}},
+ 'type': 'object'},
+ 'Stop': {'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(MachineStorageIdsWatchResult)
+ async def Next(self):
+ '''
+
+ Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='VolumeAttachmentPlansWatcher',
+ request='Next',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Stop(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='VolumeAttachmentPlansWatcher',
+ request='Stop',
+ version=1,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply