Squashed 'modules/libjuju/' changes from c50c361..c127833
c127833 Bump version and changelog for release
6aff679 k8s bundles no longer have application placement (#293)
1de9ad1 Add retry for connection if all endpoints fail (#288)
8cb8d75 Support generation of registration string for model sharing. (#279)
a9e2fd6 Add Twine for dist upload on release (#284)
407a6a6 Update and prepare for 0.11.2 release (#282)
d102620 call related update credential cloud facade methods based on facade version (#281)
2acbdc4 Add test case for redirect during connect (#275)
35fb43e Implement App.get_resources and pinned resources in bundles (#278)
b5ba51a Bump version and changelog for release
7a73a0a Fix bundles with subordinates for Juju <2.5 (#277)
a0f950f Bump version and changelog for release
01125e2 Updates for new Juju version (#274)
87d9388 Fix wrong variable name in revoke_model function (#271)
2b43065 Bump version and changelog for release
98ee524 set include_stats to false to reduce request time (#266)
61e1d69 Update version and changelog for 0.10.1
82f9968 Retry ssh in manual provision test (#265)
d64bfff Clean up lint and add lint coverage to travis config (#263)
c7c5c54 Increase the timeout for charmstore connections (#262)
4a6e398 Fix log level of `Driver connected to juju` message (#258)
514e479 Update version and changelog for 0.10.0
ec2c493 Reorder scp parameters (#259) (#260)
26c86c8 Implement set/get model constraints (#253)
c6b4ab4 Update version and changelog for 0.9.1
e863746 Update websockets to 6.0 (#254)
567bc1a Update version and changelog for 0.9.0
b275ced python3.7 compatibility updates (#251)
bc7336a Handle juju not installed in is_bootstrapped. (#250)
1ce8e0b Add app.reset_config(list). (#249)
c620d4f Implement model.get_action_status (#248)
96ea3c4 Fix `make client` in Python 3.6 (#247)
61969ea Update version and changelog for release
ebf6882 Add support for adding a manual (ssh) machine (#240)
18422f4 Backwards compatibility fixes (#213)
40c0211 Implement model.get_action_output (#242)
c6b8ac5 Fix JSON serialization error for bundle with lxd to unit placement (#243)
5014fc3 Fix reference in docs to connect_current (#239)
ebe0193 Wrap machine agent status workaround in version check (#238)
462989b Convert seconds to nanoseconds for juju.unit.run (#237)
0f413e6 Fix spurious intermittent failure in test_machines.py::test_status (#236)
ce36b60 Define an unused juju-zfs lxd storage pool (#235)
dfc2e8d Add support for Application get_actions (#234)
e7e8c13 Update version and changelog for release
499337b Surface errors from bundle plan (#233)
2d94186 Always send auth-tag even with macaroon auth (#217)
000355c Inline jsonfile credential when sending to controller (#231)
9805123 Bump VERSION and changelog for release
27d723b Always parse tags and spaces constraints to lists (#228)
668945a Doc index improvements (#211)
65e6b5e Add doc req to force newer pymacaroons to fix RTD builds
e2abd47 Fix dependency conflict for building docs
2907a6e Bump VERSION and changelog for 0.7.3 release
37a7500 Full macaroon bakery support (#206)
a06e313 Fix regression with deploying local charm, add test case (#209)
75e9a2b Expose a machines series (#208)
46c98f5 Revert non-functional switch to Py3.6, just specify Py3 instead (#205)
8a99ad1 Cherry-pick VERSION and changelog bump from 0.7.2 release branch
88121d6 Support deploying bundle YAML file directly (rather than just directory) (#202)
57c0dbf Cherry-pick #197 into master (#198)
0973edc Update VERSION and changelog for 0.7.0
f5a4108 Add deprecated placeholder for Controller.get_models
17dffa4 JujuData abstract base class (#194)
76f22cc Make Model and Controller connect methods backwardly compatible (#196)
19b5658 Fix race condition in adding relations (#192)
978f35c refactor connections prior to bakery authentication (#187)
77c0f04 sort all imports; lint tests (#188)
4740935 juju.client.gocookies: new module (#186)
2c4de22 all: use pyrfc3339 instead of dateutil (#185)
7133ffe juju/client: factor out JujuData class (#182)
476b832 Fix race condition in connection monitor test (#183)
e64a5d1 Fix example in README (#178)
97355cc Fix rare hang during Unit.run (#177)
ae0b091 #176: Fix licensing quirks
c0d001b Refactor model handling (#171)
ab807c8 Refactor users handling, add get_users (#170)
5270db5 Upload credential to controller when adding model (#168)
16d8390 Support 'applications' key in bundles (#165)
2de3eed Improve handling of thread error handling for loop.run() (#169)
7807023 Fix encoding when using to_json() (#166)
73effb1 Fix intermittent test failures (#167)
46da148 Update VERSION and changelog for release
3dda1dc Fix test failures (#163)
14392af removing cli command to add ssh keys (#161)
ce68170 Make Application.upgrade_charm upgrade resources (#158)
git-subtree-dir: modules/libjuju
git-subtree-split: c12783304945fdff5c28397b82b535a9cc065ca3
diff --git a/juju/client/_client2.py b/juju/client/_client2.py
index 283e803..4b5b518 100644
--- a/juju/client/_client2.py
+++ b/juju/client/_client2.py
@@ -165,12 +165,15 @@
@ReturnMapping(ActionResults)
async def Actions(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='Actions', version=2, params=_params)
+ msg = dict(type='Action',
+ request='Actions',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -180,12 +183,15 @@
@ReturnMapping(ApplicationsCharmActionsResults)
async def ApplicationsCharmsActions(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ApplicationCharmActionsResult]<~ApplicationCharmActionsResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ApplicationCharmActionsResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='ApplicationsCharmsActions', version=2, params=_params)
+ msg = dict(type='Action',
+ request='ApplicationsCharmsActions',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -195,12 +201,15 @@
@ReturnMapping(ActionResults)
async def Cancel(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='Cancel', version=2, params=_params)
+ msg = dict(type='Action',
+ request='Cancel',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -210,12 +219,15 @@
@ReturnMapping(ActionResults)
async def Enqueue(self, actions):
'''
- actions : typing.Sequence<+T_co>[~Action]<~Action>
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ actions : typing.Sequence[~Action]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='Enqueue', version=2, params=_params)
+ msg = dict(type='Action',
+ request='Enqueue',
+ version=2,
+ params=_params)
_params['actions'] = actions
reply = await self.rpc(msg)
return reply
@@ -225,12 +237,15 @@
@ReturnMapping(FindTagsResults)
async def FindActionTagsByPrefix(self, prefixes):
'''
- prefixes : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~Entity]<~Entity>
+ prefixes : typing.Sequence[str]
+ Returns -> typing.Sequence[~Entity]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='FindActionTagsByPrefix', version=2, params=_params)
+ msg = dict(type='Action',
+ request='FindActionTagsByPrefix',
+ version=2,
+ params=_params)
_params['prefixes'] = prefixes
reply = await self.rpc(msg)
return reply
@@ -240,12 +255,15 @@
@ReturnMapping(ActionsByNames)
async def FindActionsByNames(self, names):
'''
- names : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~ActionsByName]<~ActionsByName>
+ names : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionsByName]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='FindActionsByNames', version=2, params=_params)
+ msg = dict(type='Action',
+ request='FindActionsByNames',
+ version=2,
+ params=_params)
_params['names'] = names
reply = await self.rpc(msg)
return reply
@@ -255,12 +273,15 @@
@ReturnMapping(ActionsByReceivers)
async def ListAll(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='ListAll', version=2, params=_params)
+ msg = dict(type='Action',
+ request='ListAll',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -270,12 +291,15 @@
@ReturnMapping(ActionsByReceivers)
async def ListCompleted(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='ListCompleted', version=2, params=_params)
+ msg = dict(type='Action',
+ request='ListCompleted',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -285,12 +309,15 @@
@ReturnMapping(ActionsByReceivers)
async def ListPending(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='ListPending', version=2, params=_params)
+ msg = dict(type='Action',
+ request='ListPending',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -300,12 +327,15 @@
@ReturnMapping(ActionsByReceivers)
async def ListRunning(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ActionsByReceiver]<~ActionsByReceiver>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ActionsByReceiver]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='ListRunning', version=2, params=_params)
+ msg = dict(type='Action',
+ request='ListRunning',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -315,16 +345,19 @@
@ReturnMapping(ActionResults)
async def Run(self, applications, commands, machines, timeout, units):
'''
- applications : typing.Sequence<+T_co>[str]
+ applications : typing.Sequence[str]
commands : str
- machines : typing.Sequence<+T_co>[str]
+ machines : typing.Sequence[str]
timeout : int
- units : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ units : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='Run', version=2, params=_params)
+ msg = dict(type='Action',
+ request='Run',
+ version=2,
+ params=_params)
_params['applications'] = applications
_params['commands'] = commands
_params['machines'] = machines
@@ -338,16 +371,19 @@
@ReturnMapping(ActionResults)
async def RunOnAllMachines(self, applications, commands, machines, timeout, units):
'''
- applications : typing.Sequence<+T_co>[str]
+ applications : typing.Sequence[str]
commands : str
- machines : typing.Sequence<+T_co>[str]
+ machines : typing.Sequence[str]
timeout : int
- units : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+ units : typing.Sequence[str]
+ Returns -> typing.Sequence[~ActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Action', request='RunOnAllMachines', version=2, params=_params)
+ msg = dict(type='Action',
+ request='RunOnAllMachines',
+ version=2,
+ params=_params)
_params['applications'] = applications
_params['commands'] = commands
_params['machines'] = machines
@@ -385,7 +421,9 @@
'required': ['auth-type'],
'type': 'object'},
'CloudSpec': {'additionalProperties': False,
- 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'},
+ 'properties': {'cacertificates': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'credential': {'$ref': '#/definitions/CloudCredential'},
'endpoint': {'type': 'string'},
'identity-endpoint': {'type': 'string'},
'name': {'type': 'string'},
@@ -402,6 +440,19 @@
'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'},
'type': 'array'}},
'type': 'object'},
+ 'ControllerAPIInfoResult': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'cacert': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['addresses',
+ 'cacert'],
+ 'type': 'object'},
+ 'ControllerAPIInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
'ControllerConfigResult': {'additionalProperties': False,
'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
'type': 'object'}},
@@ -471,6 +522,7 @@
'properties': {'api-port': {'type': 'integer'},
'ca-private-key': {'type': 'string'},
'cert': {'type': 'string'},
+ 'controller-api-port': {'type': 'integer'},
'private-key': {'type': 'string'},
'shared-secret': {'type': 'string'},
'state-port': {'type': 'integer'},
@@ -489,6 +541,9 @@
'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
'Result': {'$ref': '#/definitions/CloudSpecResults'}},
'type': 'object'},
+ 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}},
+ 'type': 'object'},
'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}},
'type': 'object'},
'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'},
@@ -517,12 +572,15 @@
@ReturnMapping(ErrorResults)
async def ClearReboot(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='ClearReboot', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='ClearReboot',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -532,12 +590,33 @@
@ReturnMapping(CloudSpecResults)
async def CloudSpec(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~CloudSpecResult]<~CloudSpecResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudSpecResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='CloudSpec', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='CloudSpec',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ControllerAPIInfoResults)
+ async def ControllerAPIInfoForModels(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ControllerAPIInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Agent',
+ request='ControllerAPIInfoForModels',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -548,11 +627,14 @@
async def ControllerConfig(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='ControllerConfig', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='ControllerConfig',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -567,7 +649,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='GetCloudSpec', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='GetCloudSpec',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -577,12 +662,15 @@
@ReturnMapping(AgentGetEntitiesResults)
async def GetEntities(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~AgentGetEntitiesResult]<~AgentGetEntitiesResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~AgentGetEntitiesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='GetEntities', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='GetEntities',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -597,7 +685,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='IsMaster', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='IsMaster',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -608,11 +699,14 @@
async def ModelConfig(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='ModelConfig', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='ModelConfig',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -622,12 +716,15 @@
@ReturnMapping(ErrorResults)
async def SetPasswords(self, changes):
'''
- changes : typing.Sequence<+T_co>[~EntityPassword]<~EntityPassword>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='SetPasswords', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='SetPasswords',
+ version=2,
+ params=_params)
_params['changes'] = changes
reply = await self.rpc(msg)
return reply
@@ -642,7 +739,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='StateServingInfo', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='StateServingInfo',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -652,12 +752,15 @@
@ReturnMapping(NotifyWatchResults)
async def WatchCredentials(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='WatchCredentials', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='WatchCredentials',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -672,7 +775,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Agent', request='WatchForModelConfigChanges', version=2, params=_params)
+ msg = dict(type='Agent',
+ request='WatchForModelConfigChanges',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -703,11 +809,14 @@
async def Next(self):
'''
- Returns -> typing.Sequence<+T_co>[~Delta]<~Delta>
+ Returns -> typing.Sequence[~Delta]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='AllModelWatcher', request='Next', version=2, params=_params)
+ msg = dict(type='AllModelWatcher',
+ request='Next',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -722,7 +831,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='AllModelWatcher', request='Stop', version=2, params=_params)
+ msg = dict(type='AllModelWatcher',
+ request='Stop',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -795,12 +907,15 @@
@ReturnMapping(AnnotationsGetResults)
async def Get(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~AnnotationsGetResult]<~AnnotationsGetResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~AnnotationsGetResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Annotations', request='Get', version=2, params=_params)
+ msg = dict(type='Annotations',
+ request='Get',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -810,12 +925,15 @@
@ReturnMapping(ErrorResults)
async def Set(self, annotations):
'''
- annotations : typing.Sequence<+T_co>[~EntityAnnotations]<~EntityAnnotations>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ annotations : typing.Sequence[~EntityAnnotations]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Annotations', request='Set', version=2, params=_params)
+ msg = dict(type='Annotations',
+ request='Set',
+ version=2,
+ params=_params)
_params['annotations'] = annotations
reply = await self.rpc(msg)
return reply
@@ -1119,12 +1237,15 @@
@ReturnMapping(AddRelationResults)
async def AddRelation(self, endpoints):
'''
- endpoints : typing.Sequence<+T_co>[str]
- Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation>
+ endpoints : typing.Sequence[str]
+ Returns -> typing.Mapping[str, ~CharmRelation]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='AddRelation', version=2, params=_params)
+ msg = dict(type='Application',
+ request='AddRelation',
+ version=2,
+ params=_params)
_params['endpoints'] = endpoints
reply = await self.rpc(msg)
return reply
@@ -1136,12 +1257,15 @@
'''
application : str
num_units : int
- placement : typing.Sequence<+T_co>[~Placement]<~Placement>
- Returns -> typing.Sequence<+T_co>[str]
+ placement : typing.Sequence[~Placement]
+ Returns -> typing.Sequence[str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='AddUnits', version=2, params=_params)
+ msg = dict(type='Application',
+ request='AddUnits',
+ version=2,
+ params=_params)
_params['application'] = application
_params['num-units'] = num_units
_params['placement'] = placement
@@ -1154,11 +1278,14 @@
async def CharmRelations(self, application):
'''
application : str
- Returns -> typing.Sequence<+T_co>[str]
+ Returns -> typing.Sequence[str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='CharmRelations', version=2, params=_params)
+ msg = dict(type='Application',
+ request='CharmRelations',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1168,12 +1295,15 @@
@ReturnMapping(ErrorResults)
async def Deploy(self, applications):
'''
- applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ applications : typing.Sequence[~ApplicationDeploy]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Deploy', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Deploy',
+ version=2,
+ params=_params)
_params['applications'] = applications
reply = await self.rpc(msg)
return reply
@@ -1188,7 +1318,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Destroy', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Destroy',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1198,12 +1331,15 @@
@ReturnMapping(None)
async def DestroyRelation(self, endpoints):
'''
- endpoints : typing.Sequence<+T_co>[str]
+ endpoints : typing.Sequence[str]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='DestroyRelation', version=2, params=_params)
+ msg = dict(type='Application',
+ request='DestroyRelation',
+ version=2,
+ params=_params)
_params['endpoints'] = endpoints
reply = await self.rpc(msg)
return reply
@@ -1213,12 +1349,15 @@
@ReturnMapping(None)
async def DestroyUnits(self, unit_names):
'''
- unit_names : typing.Sequence<+T_co>[str]
+ unit_names : typing.Sequence[str]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='DestroyUnits', version=2, params=_params)
+ msg = dict(type='Application',
+ request='DestroyUnits',
+ version=2,
+ params=_params)
_params['unit-names'] = unit_names
reply = await self.rpc(msg)
return reply
@@ -1233,7 +1372,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Expose', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Expose',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1244,11 +1386,14 @@
async def Get(self, application):
'''
application : str
- Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')]
+ Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Get', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Get',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1263,7 +1408,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='GetCharmURL', version=2, params=_params)
+ msg = dict(type='Application',
+ request='GetCharmURL',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1278,7 +1426,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='GetConstraints', version=2, params=_params)
+ msg = dict(type='Application',
+ request='GetConstraints',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1289,12 +1440,15 @@
async def Set(self, application, options):
'''
application : str
- options : typing.Mapping<~KT, +VT_co>[str, str]
+ options : typing.Mapping[str, str]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Set', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Set',
+ version=2,
+ params=_params)
_params['application'] = application
_params['options'] = options
reply = await self.rpc(msg)
@@ -1308,17 +1462,20 @@
application : str
channel : str
charm_url : str
- config_settings : typing.Mapping<~KT, +VT_co>[str, str]
+ config_settings : typing.Mapping[str, str]
config_settings_yaml : str
force_series : bool
force_units : bool
- resource_ids : typing.Mapping<~KT, +VT_co>[str, str]
- storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints>
+ resource_ids : typing.Mapping[str, str]
+ storage_constraints : typing.Mapping[str, ~StorageConstraints]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='SetCharm', version=2, params=_params)
+ msg = dict(type='Application',
+ request='SetCharm',
+ version=2,
+ params=_params)
_params['application'] = application
_params['channel'] = channel
_params['charm-url'] = charm_url
@@ -1342,7 +1499,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='SetConstraints', version=2, params=_params)
+ msg = dict(type='Application',
+ request='SetConstraints',
+ version=2,
+ params=_params)
_params['application'] = application
_params['constraints'] = constraints
reply = await self.rpc(msg)
@@ -1353,12 +1513,15 @@
@ReturnMapping(ErrorResults)
async def SetMetricCredentials(self, creds):
'''
- creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ creds : typing.Sequence[~ApplicationMetricCredential]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='SetMetricCredentials', version=2, params=_params)
+ msg = dict(type='Application',
+ request='SetMetricCredentials',
+ version=2,
+ params=_params)
_params['creds'] = creds
reply = await self.rpc(msg)
return reply
@@ -1373,7 +1536,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Unexpose', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Unexpose',
+ version=2,
+ params=_params)
_params['application'] = application
reply = await self.rpc(msg)
return reply
@@ -1384,12 +1550,15 @@
async def Unset(self, application, options):
'''
application : str
- options : typing.Sequence<+T_co>[str]
+ options : typing.Sequence[str]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Unset', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Unset',
+ version=2,
+ params=_params)
_params['application'] = application
_params['options'] = options
reply = await self.rpc(msg)
@@ -1406,13 +1575,16 @@
force_charm_url : bool
force_series : bool
min_units : int
- settings : typing.Mapping<~KT, +VT_co>[str, str]
+ settings : typing.Mapping[str, str]
settings_yaml : str
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Application', request='Update', version=2, params=_params)
+ msg = dict(type='Application',
+ request='Update',
+ version=2,
+ params=_params)
_params['application'] = application
_params['charm-url'] = charm_url
_params['constraints'] = constraints
@@ -1426,6 +1598,692 @@
+class ApplicationOffersFacade(Type):
+ name = 'ApplicationOffers'
+ version = 2
+ schema = {'definitions': {'AddApplicationOffer': {'additionalProperties': False,
+ 'properties': {'application-description': {'type': 'string'},
+ 'application-name': {'type': 'string'},
+ 'endpoints': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'model-tag': {'type': 'string'},
+ 'offer-name': {'type': 'string'}},
+ 'required': ['model-tag',
+ 'offer-name',
+ 'application-name',
+ 'application-description',
+ 'endpoints'],
+ 'type': 'object'},
+ 'AddApplicationOffers': {'additionalProperties': False,
+ 'properties': {'Offers': {'items': {'$ref': '#/definitions/AddApplicationOffer'},
+ 'type': 'array'}},
+ 'required': ['Offers'],
+ 'type': 'object'},
+ 'ApplicationOfferAdminDetails': {'additionalProperties': False,
+ 'properties': {'ApplicationOfferDetails': {'$ref': '#/definitions/ApplicationOfferDetails'},
+ 'application-name': {'type': 'string'},
+ 'charm-url': {'type': 'string'},
+ 'connections': {'items': {'$ref': '#/definitions/OfferConnection'},
+ 'type': 'array'}},
+ 'required': ['ApplicationOfferDetails',
+ 'application-name',
+ 'charm-url'],
+ 'type': 'object'},
+ 'ApplicationOfferDetails': {'additionalProperties': False,
+ 'properties': {'application-description': {'type': 'string'},
+ 'bindings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'type': 'array'},
+ 'offer-name': {'type': 'string'},
+ 'offer-url': {'type': 'string'},
+ 'offer-uuid': {'type': 'string'},
+ 'source-model-tag': {'type': 'string'},
+ 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'},
+ 'type': 'array'},
+ 'users': {'items': {'$ref': '#/definitions/OfferUserDetails'},
+ 'type': 'array'}},
+ 'required': ['source-model-tag',
+ 'offer-uuid',
+ 'offer-url',
+ 'offer-name',
+ 'application-description'],
+ 'type': 'object'},
+ 'ApplicationOfferResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/ApplicationOfferAdminDetails'}},
+ 'type': 'object'},
+ 'ApplicationOffersResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'ConsumeOfferDetails': {'additionalProperties': False,
+ 'properties': {'external-controller': {'$ref': '#/definitions/ExternalControllerInfo'},
+ 'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'offer': {'$ref': '#/definitions/ApplicationOfferDetails'}},
+ 'type': 'object'},
+ 'ConsumeOfferDetailsResult': {'additionalProperties': False,
+ 'properties': {'ConsumeOfferDetails': {'$ref': '#/definitions/ConsumeOfferDetails'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['ConsumeOfferDetails'],
+ 'type': 'object'},
+ 'ConsumeOfferDetailsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ConsumeOfferDetailsResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'DestroyApplicationOffers': {'additionalProperties': False,
+ 'properties': {'force': {'type': 'boolean'},
+ 'offer-urls': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['offer-urls'],
+ 'type': 'object'},
+ 'EndpointFilterAttributes': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'}},
+ 'required': ['role',
+ 'interface',
+ 'name'],
+ 'type': 'object'},
+ 'EntityStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'info', 'since'],
+ 'type': 'object'},
+ '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'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModifyOfferAccess': {'additionalProperties': False,
+ 'properties': {'access': {'type': 'string'},
+ 'action': {'type': 'string'},
+ 'offer-url': {'type': 'string'},
+ 'user-tag': {'type': 'string'}},
+ 'required': ['user-tag',
+ 'action',
+ 'access',
+ 'offer-url'],
+ 'type': 'object'},
+ 'ModifyOfferAccessRequest': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyOfferAccess'},
+ 'type': 'array'}},
+ 'required': ['changes'],
+ 'type': 'object'},
+ 'OfferConnection': {'additionalProperties': False,
+ 'properties': {'endpoint': {'type': 'string'},
+ 'ingress-subnets': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'relation-id': {'type': 'integer'},
+ 'source-model-tag': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/EntityStatus'},
+ 'username': {'type': 'string'}},
+ 'required': ['source-model-tag',
+ 'relation-id',
+ 'username',
+ 'endpoint',
+ 'status',
+ 'ingress-subnets'],
+ 'type': 'object'},
+ 'OfferFilter': {'additionalProperties': False,
+ 'properties': {'allowed-users': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'application-description': {'type': 'string'},
+ 'application-name': {'type': 'string'},
+ 'application-user': {'type': 'string'},
+ 'connected-users': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'endpoints': {'items': {'$ref': '#/definitions/EndpointFilterAttributes'},
+ 'type': 'array'},
+ 'model-name': {'type': 'string'},
+ 'offer-name': {'type': 'string'},
+ 'owner-name': {'type': 'string'}},
+ 'required': ['owner-name',
+ 'model-name',
+ 'offer-name',
+ 'application-name',
+ 'application-description',
+ 'application-user',
+ 'endpoints',
+ 'connected-users',
+ 'allowed-users'],
+ 'type': 'object'},
+ 'OfferFilters': {'additionalProperties': False,
+ 'properties': {'Filters': {'items': {'$ref': '#/definitions/OfferFilter'},
+ 'type': 'array'}},
+ 'required': ['Filters'],
+ 'type': 'object'},
+ 'OfferURLs': {'additionalProperties': False,
+ 'properties': {'offer-urls': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'OfferUserDetails': {'additionalProperties': False,
+ 'properties': {'access': {'type': 'string'},
+ 'display-name': {'type': 'string'},
+ 'user': {'type': 'string'}},
+ 'required': ['user',
+ 'display-name',
+ 'access'],
+ 'type': 'object'},
+ 'QueryApplicationOffersResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationOfferAdminDetails'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RemoteApplicationInfo': {'additionalProperties': False,
+ 'properties': {'description': {'type': 'string'},
+ 'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'type': 'array'},
+ 'icon-url-path': {'type': 'string'},
+ 'model-tag': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'offer-url': {'type': 'string'},
+ 'source-model-label': {'type': 'string'}},
+ 'required': ['model-tag',
+ 'name',
+ 'description',
+ 'offer-url',
+ 'endpoints',
+ 'icon-url-path'],
+ 'type': 'object'},
+ 'RemoteApplicationInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/RemoteApplicationInfo'}},
+ 'type': 'object'},
+ 'RemoteApplicationInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/RemoteApplicationInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'RemoteEndpoint': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'limit': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'}},
+ 'required': ['name',
+ 'role',
+ 'interface',
+ 'limit'],
+ 'type': 'object'},
+ 'RemoteSpace': {'additionalProperties': False,
+ 'properties': {'cloud-type': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'provider-attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'provider-id': {'type': 'string'},
+ 'subnets': {'items': {'$ref': '#/definitions/Subnet'},
+ 'type': 'array'}},
+ 'required': ['cloud-type',
+ 'name',
+ 'provider-id',
+ 'provider-attributes',
+ 'subnets'],
+ 'type': 'object'},
+ 'Subnet': {'additionalProperties': False,
+ 'properties': {'cidr': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'provider-id': {'type': 'string'},
+ 'provider-network-id': {'type': 'string'},
+ 'provider-space-id': {'type': 'string'},
+ 'space-tag': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'vlan-tag': {'type': 'integer'},
+ 'zones': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['cidr',
+ 'vlan-tag',
+ 'life',
+ 'space-tag',
+ 'zones'],
+ 'type': 'object'}},
+ 'properties': {'ApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'},
+ 'Result': {'$ref': '#/definitions/ApplicationOffersResults'}},
+ 'type': 'object'},
+ 'DestroyOffers': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationOffers'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'FindApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'},
+ 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}},
+ 'type': 'object'},
+ 'GetConsumeDetails': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'},
+ 'Result': {'$ref': '#/definitions/ConsumeOfferDetailsResults'}},
+ 'type': 'object'},
+ 'ListApplicationOffers': {'properties': {'Params': {'$ref': '#/definitions/OfferFilters'},
+ 'Result': {'$ref': '#/definitions/QueryApplicationOffersResults'}},
+ 'type': 'object'},
+ 'ModifyOfferAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyOfferAccessRequest'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Offer': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationOffers'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'RemoteApplicationInfo': {'properties': {'Params': {'$ref': '#/definitions/OfferURLs'},
+ 'Result': {'$ref': '#/definitions/RemoteApplicationInfoResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ApplicationOffersResults)
+ async def ApplicationOffers(self, offer_urls):
+ '''
+ offer_urls : typing.Sequence[str]
+ Returns -> typing.Sequence[~ApplicationOfferResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='ApplicationOffers',
+ version=2,
+ params=_params)
+ _params['offer-urls'] = offer_urls
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def DestroyOffers(self, force, offer_urls):
+ '''
+ force : bool
+ offer_urls : typing.Sequence[str]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='DestroyOffers',
+ version=2,
+ params=_params)
+ _params['force'] = force
+ _params['offer-urls'] = offer_urls
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(QueryApplicationOffersResults)
+ async def FindApplicationOffers(self, filters):
+ '''
+ filters : typing.Sequence[~OfferFilter]
+ Returns -> typing.Sequence[~ApplicationOfferAdminDetails]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='FindApplicationOffers',
+ version=2,
+ params=_params)
+ _params['Filters'] = filters
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ConsumeOfferDetailsResults)
+ async def GetConsumeDetails(self, offer_urls):
+ '''
+ offer_urls : typing.Sequence[str]
+ Returns -> typing.Sequence[~ConsumeOfferDetailsResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='GetConsumeDetails',
+ version=2,
+ params=_params)
+ _params['offer-urls'] = offer_urls
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(QueryApplicationOffersResults)
+ async def ListApplicationOffers(self, filters):
+ '''
+ filters : typing.Sequence[~OfferFilter]
+ Returns -> typing.Sequence[~ApplicationOfferAdminDetails]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='ListApplicationOffers',
+ version=2,
+ params=_params)
+ _params['Filters'] = filters
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def ModifyOfferAccess(self, changes):
+ '''
+ changes : typing.Sequence[~ModifyOfferAccess]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='ModifyOfferAccess',
+ version=2,
+ params=_params)
+ _params['changes'] = changes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def Offer(self, offers):
+ '''
+ offers : typing.Sequence[~AddApplicationOffer]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='Offer',
+ version=2,
+ params=_params)
+ _params['Offers'] = offers
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(RemoteApplicationInfoResults)
+ async def RemoteApplicationInfo(self, offer_urls):
+ '''
+ offer_urls : typing.Sequence[str]
+ Returns -> typing.Sequence[~RemoteApplicationInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ApplicationOffers',
+ request='RemoteApplicationInfo',
+ version=2,
+ params=_params)
+ _params['offer-urls'] = offer_urls
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class BackupsFacade(Type):
+ name = 'Backups'
+ version = 2
+ schema = {'definitions': {'BackupsCreateArgs': {'additionalProperties': False,
+ 'properties': {'keep-copy': {'type': 'boolean'},
+ 'no-download': {'type': 'boolean'},
+ 'notes': {'type': 'string'}},
+ 'required': ['notes',
+ 'keep-copy',
+ 'no-download'],
+ 'type': 'object'},
+ 'BackupsInfoArgs': {'additionalProperties': False,
+ 'properties': {'id': {'type': 'string'}},
+ 'required': ['id'],
+ 'type': 'object'},
+ 'BackupsListArgs': {'additionalProperties': False,
+ 'type': 'object'},
+ 'BackupsListResult': {'additionalProperties': False,
+ 'properties': {'list': {'items': {'$ref': '#/definitions/BackupsMetadataResult'},
+ 'type': 'array'}},
+ 'required': ['list'],
+ 'type': 'object'},
+ 'BackupsMetadataResult': {'additionalProperties': False,
+ 'properties': {'ca-cert': {'type': 'string'},
+ 'ca-private-key': {'type': 'string'},
+ 'checksum': {'type': 'string'},
+ 'checksum-format': {'type': 'string'},
+ 'filename': {'type': 'string'},
+ 'finished': {'format': 'date-time',
+ 'type': 'string'},
+ 'hostname': {'type': 'string'},
+ 'id': {'type': 'string'},
+ 'machine': {'type': 'string'},
+ 'model': {'type': 'string'},
+ 'notes': {'type': 'string'},
+ 'series': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'started': {'format': 'date-time',
+ 'type': 'string'},
+ 'stored': {'format': 'date-time',
+ 'type': 'string'},
+ 'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['id',
+ 'checksum',
+ 'checksum-format',
+ 'size',
+ 'stored',
+ 'started',
+ 'finished',
+ 'notes',
+ 'model',
+ 'machine',
+ 'hostname',
+ 'version',
+ 'series',
+ 'ca-cert',
+ 'ca-private-key',
+ 'filename'],
+ 'type': 'object'},
+ 'BackupsRemoveArgs': {'additionalProperties': False,
+ 'properties': {'ids': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['ids'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ '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'},
+ 'Number': {'additionalProperties': False,
+ 'properties': {'Build': {'type': 'integer'},
+ 'Major': {'type': 'integer'},
+ 'Minor': {'type': 'integer'},
+ 'Patch': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['Major',
+ 'Minor',
+ 'Tag',
+ 'Patch',
+ 'Build'],
+ 'type': 'object'},
+ 'RestoreArgs': {'additionalProperties': False,
+ 'properties': {'backup-id': {'type': 'string'}},
+ 'required': ['backup-id'],
+ 'type': 'object'}},
+ 'properties': {'Create': {'properties': {'Params': {'$ref': '#/definitions/BackupsCreateArgs'},
+ 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}},
+ 'type': 'object'},
+ 'FinishRestore': {'type': 'object'},
+ 'Info': {'properties': {'Params': {'$ref': '#/definitions/BackupsInfoArgs'},
+ 'Result': {'$ref': '#/definitions/BackupsMetadataResult'}},
+ 'type': 'object'},
+ 'List': {'properties': {'Params': {'$ref': '#/definitions/BackupsListArgs'},
+ 'Result': {'$ref': '#/definitions/BackupsListResult'}},
+ 'type': 'object'},
+ 'PrepareRestore': {'type': 'object'},
+ 'Remove': {'properties': {'Params': {'$ref': '#/definitions/BackupsRemoveArgs'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Restore': {'properties': {'Params': {'$ref': '#/definitions/RestoreArgs'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(BackupsMetadataResult)
+ async def Create(self, notes):
+ '''
+ notes : str
+ Returns -> typing.Union[str, int, _ForwardRef('Number')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='Create',
+ version=2,
+ params=_params)
+ _params['notes'] = notes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def FinishRestore(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='FinishRestore',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BackupsMetadataResult)
+ async def Info(self, id_):
+ '''
+ id_ : str
+ Returns -> typing.Union[str, int, _ForwardRef('Number')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='Info',
+ version=2,
+ params=_params)
+ _params['id'] = id_
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BackupsListResult)
+ async def List(self):
+ '''
+
+ Returns -> typing.Sequence[~BackupsMetadataResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='List',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def PrepareRestore(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='PrepareRestore',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def Remove(self, id_):
+ '''
+ id_ : str
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='Remove',
+ version=2,
+ params=_params)
+ _params['id'] = id_
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Restore(self, backup_id):
+ '''
+ backup_id : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Backups',
+ request='Restore',
+ version=2,
+ params=_params)
+ _params['backup-id'] = backup_id
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class BlockFacade(Type):
name = 'Block'
version = 2
@@ -1479,11 +2337,14 @@
async def List(self):
'''
- Returns -> typing.Sequence<+T_co>[~BlockResult]<~BlockResult>
+ Returns -> typing.Sequence[~BlockResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Block', request='List', version=2, params=_params)
+ msg = dict(type='Block',
+ request='List',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -1499,7 +2360,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Block', request='SwitchBlockOff', version=2, params=_params)
+ msg = dict(type='Block',
+ request='SwitchBlockOff',
+ version=2,
+ params=_params)
_params['message'] = message
_params['type'] = type_
reply = await self.rpc(msg)
@@ -1516,7 +2380,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Block', request='SwitchBlockOn', version=2, params=_params)
+ msg = dict(type='Block',
+ request='SwitchBlockOn',
+ version=2,
+ params=_params)
_params['message'] = message
_params['type'] = type_
reply = await self.rpc(msg)
@@ -1524,6 +2391,93 @@
+class BundleFacade(Type):
+ name = 'Bundle'
+ version = 2
+ schema = {'definitions': {'BundleChange': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'additionalProperties': True,
+ 'type': 'object'},
+ 'type': 'array'},
+ 'id': {'type': 'string'},
+ 'method': {'type': 'string'},
+ 'requires': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['id',
+ 'method',
+ 'args',
+ 'requires'],
+ 'type': 'object'},
+ 'BundleChangesParams': {'additionalProperties': False,
+ 'properties': {'bundleURL': {'type': 'string'},
+ 'yaml': {'type': 'string'}},
+ 'required': ['yaml', 'bundleURL'],
+ 'type': 'object'},
+ 'BundleChangesResults': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'},
+ 'type': 'array'},
+ 'errors': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'}},
+ 'properties': {'ExportBundle': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'GetChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'},
+ 'Result': {'$ref': '#/definitions/BundleChangesResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(StringResult)
+ async def ExportBundle(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Bundle',
+ request='ExportBundle',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BundleChangesResults)
+ async def GetChanges(self, yaml):
+ '''
+ yaml : str
+ Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Bundle',
+ request='GetChanges',
+ version=2,
+ params=_params)
+ _params['yaml'] = yaml
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class CharmRevisionUpdaterFacade(Type):
name = 'CharmRevisionUpdater'
version = 2
@@ -1554,7 +2508,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='CharmRevisionUpdater', request='UpdateLatestRevisions', version=2, params=_params)
+ msg = dict(type='CharmRevisionUpdater',
+ request='UpdateLatestRevisions',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -1575,20 +2532,46 @@
'properties': {'specs': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmActionSpec'}},
'type': 'object'}},
'type': 'object'},
+ 'CharmDevice': {'additionalProperties': False,
+ 'properties': {'CountMax': {'type': 'integer'},
+ 'CountMin': {'type': 'integer'},
+ 'Description': {'type': 'string'},
+ 'Name': {'type': 'string'},
+ 'Type': {'type': 'string'}},
+ 'required': ['Name',
+ 'Description',
+ 'Type',
+ 'CountMin',
+ 'CountMax'],
+ 'type': 'object'},
'CharmInfo': {'additionalProperties': False,
'properties': {'actions': {'$ref': '#/definitions/CharmActions'},
'config': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmOption'}},
'type': 'object'},
+ 'lxd-profile': {'$ref': '#/definitions/CharmLXDProfile'},
'meta': {'$ref': '#/definitions/CharmMeta'},
'metrics': {'$ref': '#/definitions/CharmMetrics'},
'revision': {'type': 'integer'},
'url': {'type': 'string'}},
'required': ['revision', 'url', 'config'],
'type': 'object'},
+ 'CharmLXDProfile': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'description': {'type': 'string'},
+ 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config',
+ 'description',
+ 'devices'],
+ 'type': 'object'},
'CharmMeta': {'additionalProperties': False,
'properties': {'categories': {'items': {'type': 'string'},
'type': 'array'},
'description': {'type': 'string'},
+ 'devices': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmDevice'}},
+ 'type': 'object'},
'extra-bindings': {'patternProperties': {'.*': {'type': 'string'}},
'type': 'object'},
'min-juju-version': {'type': 'string'},
@@ -1724,11 +2707,14 @@
async def CharmInfo(self, url):
'''
url : str
- Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping<~KT, +VT_co>[str, ~CharmOption]<~CharmOption>, _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str]
+ Returns -> typing.Union[_ForwardRef('CharmActions'), typing.Mapping[str, ~CharmOption], _ForwardRef('CharmMeta'), _ForwardRef('CharmMetrics'), int, str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Charms', request='CharmInfo', version=2, params=_params)
+ msg = dict(type='Charms',
+ request='CharmInfo',
+ version=2,
+ params=_params)
_params['url'] = url
reply = await self.rpc(msg)
return reply
@@ -1743,7 +2729,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Charms', request='IsMetered', version=2, params=_params)
+ msg = dict(type='Charms',
+ request='IsMetered',
+ version=2,
+ params=_params)
_params['url'] = url
reply = await self.rpc(msg)
return reply
@@ -1753,12 +2742,15 @@
@ReturnMapping(CharmsListResult)
async def List(self, names):
'''
- names : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[str]
+ names : typing.Sequence[str]
+ Returns -> typing.Sequence[str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Charms', request='List', version=2, params=_params)
+ msg = dict(type='Charms',
+ request='List',
+ version=2,
+ params=_params)
_params['names'] = names
reply = await self.rpc(msg)
return reply
@@ -1798,7 +2790,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cleaner', request='Cleanup', version=2, params=_params)
+ msg = dict(type='Cleaner',
+ request='Cleanup',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -1813,7 +2808,1523 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Cleaner', request='WatchCleanups', version=2, params=_params)
+ msg = dict(type='Cleaner',
+ request='WatchCleanups',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class ClientFacade(Type):
+ name = 'Client'
+ version = 2
+ schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False,
+ 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'},
+ 'type': 'array'},
+ 'type': 'array'}},
+ 'required': ['servers'],
+ 'type': 'object'},
+ 'AddCharm': {'additionalProperties': False,
+ 'properties': {'channel': {'type': 'string'},
+ 'force': {'type': 'boolean'},
+ 'url': {'type': 'string'}},
+ 'required': ['url', 'channel', 'force'],
+ 'type': 'object'},
+ 'AddCharmWithAuthorization': {'additionalProperties': False,
+ 'properties': {'channel': {'type': 'string'},
+ 'force': {'type': 'boolean'},
+ 'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'url': {'type': 'string'}},
+ 'required': ['url',
+ 'channel',
+ 'macaroon',
+ 'force'],
+ 'type': 'object'},
+ 'AddMachineParams': {'additionalProperties': False,
+ 'properties': {'addresses': {'items': {'$ref': '#/definitions/Address'},
+ 'type': 'array'},
+ 'constraints': {'$ref': '#/definitions/Value'},
+ 'container-type': {'type': 'string'},
+ 'disks': {'items': {'$ref': '#/definitions/Constraints'},
+ 'type': 'array'},
+ 'hardware-characteristics': {'$ref': '#/definitions/HardwareCharacteristics'},
+ 'instance-id': {'type': 'string'},
+ 'jobs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'nonce': {'type': 'string'},
+ 'parent-id': {'type': 'string'},
+ 'placement': {'$ref': '#/definitions/Placement'},
+ 'series': {'type': 'string'}},
+ 'required': ['series',
+ 'constraints',
+ 'jobs',
+ 'parent-id',
+ 'container-type',
+ 'instance-id',
+ 'nonce',
+ 'hardware-characteristics',
+ 'addresses'],
+ 'type': 'object'},
+ 'AddMachines': {'additionalProperties': False,
+ 'properties': {'params': {'items': {'$ref': '#/definitions/AddMachineParams'},
+ 'type': 'array'}},
+ 'required': ['params'],
+ 'type': 'object'},
+ 'AddMachinesResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'machine': {'type': 'string'}},
+ 'required': ['machine'],
+ 'type': 'object'},
+ 'AddMachinesResults': {'additionalProperties': False,
+ 'properties': {'machines': {'items': {'$ref': '#/definitions/AddMachinesResult'},
+ 'type': 'array'}},
+ 'required': ['machines'],
+ 'type': 'object'},
+ 'Address': {'additionalProperties': False,
+ 'properties': {'scope': {'type': 'string'},
+ 'space-name': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'value': {'type': 'string'}},
+ 'required': ['value', 'type', 'scope'],
+ 'type': 'object'},
+ 'AgentVersionResult': {'additionalProperties': False,
+ 'properties': {'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['version'],
+ 'type': 'object'},
+ 'AllWatcherId': {'additionalProperties': False,
+ 'properties': {'watcher-id': {'type': 'string'}},
+ 'required': ['watcher-id'],
+ 'type': 'object'},
+ 'ApplicationOfferStatus': {'additionalProperties': False,
+ 'properties': {'active-connected-count': {'type': 'integer'},
+ 'application-name': {'type': 'string'},
+ 'charm': {'type': 'string'},
+ 'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteEndpoint'}},
+ 'type': 'object'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'offer-name': {'type': 'string'},
+ 'total-connected-count': {'type': 'integer'}},
+ 'required': ['offer-name',
+ 'application-name',
+ 'charm',
+ 'endpoints',
+ 'active-connected-count',
+ 'total-connected-count'],
+ 'type': 'object'},
+ 'ApplicationStatus': {'additionalProperties': False,
+ 'properties': {'can-upgrade-to': {'type': 'string'},
+ 'charm': {'type': 'string'},
+ 'charm-verion': {'type': 'string'},
+ 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'exposed': {'type': 'boolean'},
+ 'int': {'type': 'integer'},
+ 'life': {'type': 'string'},
+ 'meter-statuses': {'patternProperties': {'.*': {'$ref': '#/definitions/MeterStatus'}},
+ 'type': 'object'},
+ 'provider-id': {'type': 'string'},
+ 'public-address': {'type': 'string'},
+ 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'series': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/DetailedStatus'},
+ 'string': {'type': 'string'},
+ 'subordinate-to': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
+ 'type': 'object'},
+ 'workload-version': {'type': 'string'}},
+ 'required': ['charm',
+ 'series',
+ 'exposed',
+ 'life',
+ 'relations',
+ 'can-upgrade-to',
+ 'subordinate-to',
+ 'units',
+ 'meter-statuses',
+ 'status',
+ 'workload-version',
+ 'charm-verion',
+ 'endpoint-bindings',
+ 'public-address'],
+ 'type': 'object'},
+ 'Binary': {'additionalProperties': False,
+ 'properties': {'Arch': {'type': 'string'},
+ 'Number': {'$ref': '#/definitions/Number'},
+ 'Series': {'type': 'string'}},
+ 'required': ['Number', 'Series', 'Arch'],
+ 'type': 'object'},
+ 'BundleChange': {'additionalProperties': False,
+ 'properties': {'args': {'items': {'additionalProperties': True,
+ 'type': 'object'},
+ 'type': 'array'},
+ 'id': {'type': 'string'},
+ 'method': {'type': 'string'},
+ 'requires': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['id',
+ 'method',
+ 'args',
+ 'requires'],
+ 'type': 'object'},
+ 'BundleChangesParams': {'additionalProperties': False,
+ 'properties': {'bundleURL': {'type': 'string'},
+ 'yaml': {'type': 'string'}},
+ 'required': ['yaml', 'bundleURL'],
+ 'type': 'object'},
+ 'BundleChangesResults': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/BundleChange'},
+ 'type': 'array'},
+ 'errors': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'BytesResult': {'additionalProperties': False,
+ 'properties': {'result': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'ConfigValue': {'additionalProperties': False,
+ 'properties': {'source': {'type': 'string'},
+ 'value': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'required': ['value', 'source'],
+ 'type': 'object'},
+ 'Constraints': {'additionalProperties': False,
+ 'properties': {'Count': {'type': 'integer'},
+ 'Pool': {'type': 'string'},
+ 'Size': {'type': 'integer'}},
+ 'required': ['Pool', 'Size', 'Count'],
+ 'type': 'object'},
+ 'DestroyMachines': {'additionalProperties': False,
+ 'properties': {'force': {'type': 'boolean'},
+ 'machine-names': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['machine-names', 'force'],
+ 'type': 'object'},
+ 'DetailedStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'kind': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'},
+ 'version': {'type': 'string'}},
+ 'required': ['status',
+ 'info',
+ 'data',
+ 'since',
+ 'kind',
+ 'version',
+ 'life'],
+ 'type': 'object'},
+ 'EndpointStatus': {'additionalProperties': False,
+ 'properties': {'application': {'type': 'string'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'},
+ 'subordinate': {'type': 'boolean'}},
+ 'required': ['application',
+ 'name',
+ 'role',
+ 'subordinate'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityStatus': {'additionalProperties': False,
+ 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'},
+ 'info': {'type': 'string'},
+ 'since': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'info', 'since'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'FindToolsParams': {'additionalProperties': False,
+ 'properties': {'agentstream': {'type': 'string'},
+ 'arch': {'type': 'string'},
+ 'major': {'type': 'integer'},
+ 'minor': {'type': 'integer'},
+ 'number': {'$ref': '#/definitions/Number'},
+ 'series': {'type': 'string'}},
+ 'required': ['number',
+ 'major',
+ 'minor',
+ 'arch',
+ 'series',
+ 'agentstream'],
+ 'type': 'object'},
+ 'FindToolsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'list': {'items': {'$ref': '#/definitions/Tools'},
+ 'type': 'array'}},
+ 'required': ['list'],
+ 'type': 'object'},
+ 'FullStatus': {'additionalProperties': False,
+ 'properties': {'applications': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationStatus'}},
+ 'type': 'object'},
+ 'controller-timestamp': {'format': 'date-time',
+ 'type': 'string'},
+ 'machines': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
+ 'type': 'object'},
+ 'model': {'$ref': '#/definitions/ModelStatusInfo'},
+ 'offers': {'patternProperties': {'.*': {'$ref': '#/definitions/ApplicationOfferStatus'}},
+ 'type': 'object'},
+ 'relations': {'items': {'$ref': '#/definitions/RelationStatus'},
+ 'type': 'array'},
+ 'remote-applications': {'patternProperties': {'.*': {'$ref': '#/definitions/RemoteApplicationStatus'}},
+ 'type': 'object'}},
+ 'required': ['model',
+ 'machines',
+ 'applications',
+ 'remote-applications',
+ 'offers',
+ 'relations',
+ 'controller-timestamp'],
+ 'type': 'object'},
+ 'GetConstraintsResults': {'additionalProperties': False,
+ 'properties': {'constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['constraints'],
+ 'type': 'object'},
+ 'HardwareCharacteristics': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'availability-zone': {'type': 'string'},
+ 'cpu-cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'History': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'statuses': {'items': {'$ref': '#/definitions/DetailedStatus'},
+ 'type': 'array'}},
+ 'required': ['statuses'],
+ 'type': 'object'},
+ 'HostPort': {'additionalProperties': False,
+ 'properties': {'Address': {'$ref': '#/definitions/Address'},
+ 'port': {'type': 'integer'}},
+ 'required': ['Address', 'port'],
+ 'type': 'object'},
+ 'LXDProfile': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'description': {'type': 'string'},
+ 'devices': {'patternProperties': {'.*': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config',
+ 'description',
+ 'devices'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'MachineHardware': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'availability-zone': {'type': 'string'},
+ 'cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'MachineStatus': {'additionalProperties': False,
+ 'properties': {'agent-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'constraints': {'type': 'string'},
+ 'containers': {'patternProperties': {'.*': {'$ref': '#/definitions/MachineStatus'}},
+ 'type': 'object'},
+ 'dns-name': {'type': 'string'},
+ 'hardware': {'type': 'string'},
+ 'has-vote': {'type': 'boolean'},
+ 'id': {'type': 'string'},
+ 'instance-id': {'type': 'string'},
+ 'instance-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'ip-addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'jobs': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'lxd-profiles': {'patternProperties': {'.*': {'$ref': '#/definitions/LXDProfile'}},
+ 'type': 'object'},
+ 'network-interfaces': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInterface'}},
+ 'type': 'object'},
+ 'series': {'type': 'string'},
+ 'wants-vote': {'type': 'boolean'}},
+ 'required': ['agent-status',
+ 'instance-status',
+ 'dns-name',
+ 'instance-id',
+ 'series',
+ 'id',
+ 'containers',
+ 'constraints',
+ 'hardware',
+ 'jobs',
+ 'has-vote',
+ 'wants-vote'],
+ 'type': 'object'},
+ 'MeterStatus': {'additionalProperties': False,
+ 'properties': {'color': {'type': 'string'},
+ 'message': {'type': 'string'}},
+ 'required': ['color', 'message'],
+ 'type': 'object'},
+ 'ModelConfigResults': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelInfo': {'additionalProperties': False,
+ 'properties': {'agent-version': {'$ref': '#/definitions/Number'},
+ 'cloud-credential-tag': {'type': 'string'},
+ 'cloud-region': {'type': 'string'},
+ 'cloud-tag': {'type': 'string'},
+ 'controller-uuid': {'type': 'string'},
+ 'default-series': {'type': 'string'},
+ 'life': {'type': 'string'},
+ 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'},
+ 'type': 'array'},
+ 'migration': {'$ref': '#/definitions/ModelMigrationStatus'},
+ 'name': {'type': 'string'},
+ 'owner-tag': {'type': 'string'},
+ 'provider-type': {'type': 'string'},
+ 'sla': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'status': {'$ref': '#/definitions/EntityStatus'},
+ 'type': {'type': 'string'},
+ 'users': {'items': {'$ref': '#/definitions/ModelUserInfo'},
+ 'type': 'array'},
+ 'uuid': {'type': 'string'}},
+ 'required': ['name',
+ 'type',
+ 'uuid',
+ 'controller-uuid',
+ 'cloud-tag',
+ 'owner-tag',
+ 'life',
+ 'users',
+ 'machines',
+ 'sla',
+ 'agent-version'],
+ 'type': 'object'},
+ 'ModelMachineInfo': {'additionalProperties': False,
+ 'properties': {'hardware': {'$ref': '#/definitions/MachineHardware'},
+ 'has-vote': {'type': 'boolean'},
+ 'id': {'type': 'string'},
+ 'instance-id': {'type': 'string'},
+ 'message': {'type': 'string'},
+ 'status': {'type': 'string'},
+ 'wants-vote': {'type': 'boolean'}},
+ 'required': ['id'],
+ 'type': 'object'},
+ 'ModelMigrationStatus': {'additionalProperties': False,
+ 'properties': {'end': {'format': 'date-time',
+ 'type': 'string'},
+ 'start': {'format': 'date-time',
+ 'type': 'string'},
+ 'status': {'type': 'string'}},
+ 'required': ['status', 'start'],
+ 'type': 'object'},
+ 'ModelSLA': {'additionalProperties': False,
+ 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'creds': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['ModelSLAInfo', 'creds'],
+ 'type': 'object'},
+ 'ModelSLAInfo': {'additionalProperties': False,
+ 'properties': {'level': {'type': 'string'},
+ 'owner': {'type': 'string'}},
+ 'required': ['level', 'owner'],
+ 'type': 'object'},
+ 'ModelSet': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelStatusInfo': {'additionalProperties': False,
+ 'properties': {'available-version': {'type': 'string'},
+ 'cloud-tag': {'type': 'string'},
+ 'meter-status': {'$ref': '#/definitions/MeterStatus'},
+ 'model-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'name': {'type': 'string'},
+ 'region': {'type': 'string'},
+ 'sla': {'type': 'string'},
+ 'type': {'type': 'string'},
+ 'version': {'type': 'string'}},
+ 'required': ['name',
+ 'type',
+ 'cloud-tag',
+ 'version',
+ 'available-version',
+ 'model-status',
+ 'meter-status',
+ 'sla'],
+ 'type': 'object'},
+ 'ModelUnset': {'additionalProperties': False,
+ 'properties': {'keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['keys'],
+ 'type': 'object'},
+ 'ModelUserInfo': {'additionalProperties': False,
+ 'properties': {'access': {'type': 'string'},
+ 'display-name': {'type': 'string'},
+ 'last-connection': {'format': 'date-time',
+ 'type': 'string'},
+ 'user': {'type': 'string'}},
+ 'required': ['user',
+ 'display-name',
+ 'last-connection',
+ 'access'],
+ 'type': 'object'},
+ 'ModelUserInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/ModelUserInfo'}},
+ 'type': 'object'},
+ 'ModelUserInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ModelUserInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'NetworkInterface': {'additionalProperties': False,
+ 'properties': {'dns-nameservers': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'gateway': {'type': 'string'},
+ 'ip-addresses': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'is-up': {'type': 'boolean'},
+ 'mac-address': {'type': 'string'},
+ 'space': {'type': 'string'}},
+ 'required': ['ip-addresses',
+ 'mac-address',
+ 'is-up'],
+ 'type': 'object'},
+ 'Number': {'additionalProperties': False,
+ 'properties': {'Build': {'type': 'integer'},
+ 'Major': {'type': 'integer'},
+ 'Minor': {'type': 'integer'},
+ 'Patch': {'type': 'integer'},
+ 'Tag': {'type': 'string'}},
+ 'required': ['Major',
+ 'Minor',
+ 'Tag',
+ 'Patch',
+ 'Build'],
+ 'type': 'object'},
+ 'Placement': {'additionalProperties': False,
+ 'properties': {'directive': {'type': 'string'},
+ 'scope': {'type': 'string'}},
+ 'required': ['scope', 'directive'],
+ 'type': 'object'},
+ 'PrivateAddress': {'additionalProperties': False,
+ 'properties': {'target': {'type': 'string'}},
+ 'required': ['target'],
+ 'type': 'object'},
+ 'PrivateAddressResults': {'additionalProperties': False,
+ 'properties': {'private-address': {'type': 'string'}},
+ 'required': ['private-address'],
+ 'type': 'object'},
+ 'ProvisioningScriptParams': {'additionalProperties': False,
+ 'properties': {'data-dir': {'type': 'string'},
+ 'disable-package-commands': {'type': 'boolean'},
+ 'machine-id': {'type': 'string'},
+ 'nonce': {'type': 'string'}},
+ 'required': ['machine-id',
+ 'nonce',
+ 'data-dir',
+ 'disable-package-commands'],
+ 'type': 'object'},
+ 'ProvisioningScriptResult': {'additionalProperties': False,
+ 'properties': {'script': {'type': 'string'}},
+ 'required': ['script'],
+ 'type': 'object'},
+ 'PublicAddress': {'additionalProperties': False,
+ 'properties': {'target': {'type': 'string'}},
+ 'required': ['target'],
+ 'type': 'object'},
+ 'PublicAddressResults': {'additionalProperties': False,
+ 'properties': {'public-address': {'type': 'string'}},
+ 'required': ['public-address'],
+ 'type': 'object'},
+ 'RelationStatus': {'additionalProperties': False,
+ 'properties': {'endpoints': {'items': {'$ref': '#/definitions/EndpointStatus'},
+ 'type': 'array'},
+ 'id': {'type': 'integer'},
+ 'interface': {'type': 'string'},
+ 'key': {'type': 'string'},
+ 'scope': {'type': 'string'},
+ 'status': {'$ref': '#/definitions/DetailedStatus'}},
+ 'required': ['id',
+ 'key',
+ 'interface',
+ 'scope',
+ 'endpoints',
+ 'status'],
+ 'type': 'object'},
+ 'RemoteApplicationStatus': {'additionalProperties': False,
+ 'properties': {'endpoints': {'items': {'$ref': '#/definitions/RemoteEndpoint'},
+ 'type': 'array'},
+ 'err': {'additionalProperties': True,
+ 'type': 'object'},
+ 'life': {'type': 'string'},
+ 'offer-name': {'type': 'string'},
+ 'offer-url': {'type': 'string'},
+ 'relations': {'patternProperties': {'.*': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'status': {'$ref': '#/definitions/DetailedStatus'}},
+ 'required': ['offer-url',
+ 'offer-name',
+ 'endpoints',
+ 'life',
+ 'relations',
+ 'status'],
+ 'type': 'object'},
+ 'RemoteEndpoint': {'additionalProperties': False,
+ 'properties': {'interface': {'type': 'string'},
+ 'limit': {'type': 'integer'},
+ 'name': {'type': 'string'},
+ 'role': {'type': 'string'}},
+ 'required': ['name',
+ 'role',
+ 'interface',
+ 'limit'],
+ 'type': 'object'},
+ 'ResolveCharmResult': {'additionalProperties': False,
+ 'properties': {'error': {'type': 'string'},
+ 'url': {'type': 'string'}},
+ 'type': 'object'},
+ 'ResolveCharmResults': {'additionalProperties': False,
+ 'properties': {'urls': {'items': {'$ref': '#/definitions/ResolveCharmResult'},
+ 'type': 'array'}},
+ 'required': ['urls'],
+ 'type': 'object'},
+ 'ResolveCharms': {'additionalProperties': False,
+ 'properties': {'references': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['references'],
+ 'type': 'object'},
+ 'Resolved': {'additionalProperties': False,
+ 'properties': {'retry': {'type': 'boolean'},
+ 'unit-name': {'type': 'string'}},
+ 'required': ['unit-name', 'retry'],
+ 'type': 'object'},
+ 'SetConstraints': {'additionalProperties': False,
+ 'properties': {'application': {'type': 'string'},
+ 'constraints': {'$ref': '#/definitions/Value'}},
+ 'required': ['application', 'constraints'],
+ 'type': 'object'},
+ 'SetModelAgentVersion': {'additionalProperties': False,
+ 'properties': {'force': {'type': 'boolean'},
+ 'version': {'$ref': '#/definitions/Number'}},
+ 'required': ['version'],
+ 'type': 'object'},
+ 'StatusHistoryFilter': {'additionalProperties': False,
+ 'properties': {'date': {'format': 'date-time',
+ 'type': 'string'},
+ 'delta': {'type': 'integer'},
+ 'exclude': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'size': {'type': 'integer'}},
+ 'required': ['size',
+ 'date',
+ 'delta',
+ 'exclude'],
+ 'type': 'object'},
+ 'StatusHistoryRequest': {'additionalProperties': False,
+ 'properties': {'filter': {'$ref': '#/definitions/StatusHistoryFilter'},
+ 'historyKind': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'tag': {'type': 'string'}},
+ 'required': ['historyKind',
+ 'size',
+ 'filter',
+ 'tag'],
+ 'type': 'object'},
+ 'StatusHistoryRequests': {'additionalProperties': False,
+ 'properties': {'requests': {'items': {'$ref': '#/definitions/StatusHistoryRequest'},
+ 'type': 'array'}},
+ 'required': ['requests'],
+ 'type': 'object'},
+ 'StatusHistoryResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'history': {'$ref': '#/definitions/History'}},
+ 'required': ['history'],
+ 'type': 'object'},
+ 'StatusHistoryResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/StatusHistoryResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'StatusParams': {'additionalProperties': False,
+ 'properties': {'patterns': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['patterns'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'},
+ 'Tools': {'additionalProperties': False,
+ 'properties': {'sha256': {'type': 'string'},
+ 'size': {'type': 'integer'},
+ 'url': {'type': 'string'},
+ 'version': {'$ref': '#/definitions/Binary'}},
+ 'required': ['version', 'url', 'size'],
+ 'type': 'object'},
+ 'UnitStatus': {'additionalProperties': False,
+ 'properties': {'address': {'type': 'string'},
+ 'agent-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'charm': {'type': 'string'},
+ 'leader': {'type': 'boolean'},
+ 'machine': {'type': 'string'},
+ 'opened-ports': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'provider-id': {'type': 'string'},
+ 'public-address': {'type': 'string'},
+ 'subordinates': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitStatus'}},
+ 'type': 'object'},
+ 'workload-status': {'$ref': '#/definitions/DetailedStatus'},
+ 'workload-version': {'type': 'string'}},
+ 'required': ['agent-status',
+ 'workload-status',
+ 'workload-version',
+ 'machine',
+ 'opened-ports',
+ 'public-address',
+ 'charm',
+ 'subordinates'],
+ 'type': 'object'},
+ 'Value': {'additionalProperties': False,
+ 'properties': {'arch': {'type': 'string'},
+ 'container': {'type': 'string'},
+ 'cores': {'type': 'integer'},
+ 'cpu-power': {'type': 'integer'},
+ 'instance-type': {'type': 'string'},
+ 'mem': {'type': 'integer'},
+ 'root-disk': {'type': 'integer'},
+ 'spaces': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'tags': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'virt-type': {'type': 'string'},
+ 'zones': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'type': 'object'}},
+ 'properties': {'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}},
+ 'type': 'object'},
+ 'AbortCurrentUpgrade': {'type': 'object'},
+ 'AddCharm': {'properties': {'Params': {'$ref': '#/definitions/AddCharm'}},
+ 'type': 'object'},
+ 'AddCharmWithAuthorization': {'properties': {'Params': {'$ref': '#/definitions/AddCharmWithAuthorization'}},
+ 'type': 'object'},
+ 'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'AddMachinesV2': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'AgentVersion': {'properties': {'Result': {'$ref': '#/definitions/AgentVersionResult'}},
+ 'type': 'object'},
+ 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}},
+ 'type': 'object'},
+ 'DestroyMachines': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachines'}},
+ 'type': 'object'},
+ 'FindTools': {'properties': {'Params': {'$ref': '#/definitions/FindToolsParams'},
+ 'Result': {'$ref': '#/definitions/FindToolsResult'}},
+ 'type': 'object'},
+ 'FullStatus': {'properties': {'Params': {'$ref': '#/definitions/StatusParams'},
+ 'Result': {'$ref': '#/definitions/FullStatus'}},
+ 'type': 'object'},
+ 'GetBundleChanges': {'properties': {'Params': {'$ref': '#/definitions/BundleChangesParams'},
+ 'Result': {'$ref': '#/definitions/BundleChangesResults'}},
+ 'type': 'object'},
+ 'GetModelConstraints': {'properties': {'Result': {'$ref': '#/definitions/GetConstraintsResults'}},
+ 'type': 'object'},
+ 'InjectMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'},
+ 'Result': {'$ref': '#/definitions/AddMachinesResults'}},
+ 'type': 'object'},
+ 'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
+ 'type': 'object'},
+ 'ModelInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelInfo'}},
+ 'type': 'object'},
+ 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
+ 'type': 'object'},
+ 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
+ 'type': 'object'},
+ 'ModelUserInfo': {'properties': {'Result': {'$ref': '#/definitions/ModelUserInfoResults'}},
+ 'type': 'object'},
+ 'PrivateAddress': {'properties': {'Params': {'$ref': '#/definitions/PrivateAddress'},
+ 'Result': {'$ref': '#/definitions/PrivateAddressResults'}},
+ 'type': 'object'},
+ 'ProvisioningScript': {'properties': {'Params': {'$ref': '#/definitions/ProvisioningScriptParams'},
+ 'Result': {'$ref': '#/definitions/ProvisioningScriptResult'}},
+ 'type': 'object'},
+ 'PublicAddress': {'properties': {'Params': {'$ref': '#/definitions/PublicAddress'},
+ 'Result': {'$ref': '#/definitions/PublicAddressResults'}},
+ 'type': 'object'},
+ 'ResolveCharms': {'properties': {'Params': {'$ref': '#/definitions/ResolveCharms'},
+ 'Result': {'$ref': '#/definitions/ResolveCharmResults'}},
+ 'type': 'object'},
+ 'Resolved': {'properties': {'Params': {'$ref': '#/definitions/Resolved'}},
+ 'type': 'object'},
+ 'RetryProvisioning': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'SetModelAgentVersion': {'properties': {'Params': {'$ref': '#/definitions/SetModelAgentVersion'}},
+ 'type': 'object'},
+ 'SetModelConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}},
+ 'type': 'object'},
+ 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
+ 'type': 'object'},
+ 'StatusHistory': {'properties': {'Params': {'$ref': '#/definitions/StatusHistoryRequests'},
+ 'Result': {'$ref': '#/definitions/StatusHistoryResults'}},
+ 'type': 'object'},
+ 'WatchAll': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(APIHostPortsResult)
+ async def APIHostPorts(self):
+ '''
+
+ Returns -> typing.Sequence[~HostPort]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='APIHostPorts',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AbortCurrentUpgrade(self):
+ '''
+
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AbortCurrentUpgrade',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AddCharm(self, channel, url):
+ '''
+ channel : str
+ url : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddCharm',
+ version=2,
+ params=_params)
+ _params['channel'] = channel
+ _params['url'] = url
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def AddCharmWithAuthorization(self, channel, macaroon, url):
+ '''
+ channel : str
+ macaroon : Macaroon
+ url : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddCharmWithAuthorization',
+ version=2,
+ params=_params)
+ _params['channel'] = channel
+ _params['macaroon'] = macaroon
+ _params['url'] = url
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def AddMachines(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddMachines',
+ version=2,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def AddMachinesV2(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AddMachinesV2',
+ version=2,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AgentVersionResult)
+ async def AgentVersion(self):
+ '''
+
+ Returns -> Number
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='AgentVersion',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BytesResult)
+ async def CACert(self):
+ '''
+
+ Returns -> typing.Sequence[int]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='CACert',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def DestroyMachines(self, force, machine_names):
+ '''
+ force : bool
+ machine_names : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='DestroyMachines',
+ version=2,
+ params=_params)
+ _params['force'] = force
+ _params['machine-names'] = machine_names
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(FindToolsResult)
+ async def FindTools(self, arch, major, minor, number, series):
+ '''
+ arch : str
+ major : int
+ minor : int
+ number : Number
+ series : str
+ Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[~Tools]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='FindTools',
+ version=2,
+ params=_params)
+ _params['arch'] = arch
+ _params['major'] = major
+ _params['minor'] = minor
+ _params['number'] = number
+ _params['series'] = series
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(FullStatus)
+ async def FullStatus(self, patterns):
+ '''
+ patterns : typing.Sequence[str]
+ Returns -> typing.Union[typing.Mapping[str, ~ApplicationStatus], str, typing.Mapping[str, ~MachineStatus], _ForwardRef('ModelStatusInfo'), typing.Mapping[str, ~ApplicationOfferStatus], typing.Sequence[~RelationStatus], typing.Mapping[str, ~RemoteApplicationStatus]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='FullStatus',
+ version=2,
+ params=_params)
+ _params['patterns'] = patterns
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(BundleChangesResults)
+ async def GetBundleChanges(self, yaml):
+ '''
+ yaml : str
+ Returns -> typing.Union[typing.Sequence[~BundleChange], typing.Sequence[str]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='GetBundleChanges',
+ version=2,
+ params=_params)
+ _params['yaml'] = yaml
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(GetConstraintsResults)
+ async def GetModelConstraints(self):
+ '''
+
+ Returns -> Value
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='GetModelConstraints',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddMachinesResults)
+ async def InjectMachines(self, params):
+ '''
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='InjectMachines',
+ version=2,
+ params=_params)
+ _params['params'] = params
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelConfigResults)
+ async def ModelGet(self):
+ '''
+
+ Returns -> typing.Mapping[str, ~ConfigValue]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelGet',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelInfo)
+ async def ModelInfo(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelInfo',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelSet(self, config):
+ '''
+ config : typing.Mapping[str, typing.Any]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelSet',
+ version=2,
+ params=_params)
+ _params['config'] = config
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelUnset(self, keys):
+ '''
+ keys : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelUnset',
+ version=2,
+ params=_params)
+ _params['keys'] = keys
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelUserInfoResults)
+ async def ModelUserInfo(self):
+ '''
+
+ Returns -> typing.Sequence[~ModelUserInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ModelUserInfo',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(PrivateAddressResults)
+ async def PrivateAddress(self, target):
+ '''
+ target : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='PrivateAddress',
+ version=2,
+ params=_params)
+ _params['target'] = target
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ProvisioningScriptResult)
+ async def ProvisioningScript(self, data_dir, disable_package_commands, machine_id, nonce):
+ '''
+ data_dir : str
+ disable_package_commands : bool
+ machine_id : str
+ nonce : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ProvisioningScript',
+ version=2,
+ params=_params)
+ _params['data-dir'] = data_dir
+ _params['disable-package-commands'] = disable_package_commands
+ _params['machine-id'] = machine_id
+ _params['nonce'] = nonce
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(PublicAddressResults)
+ async def PublicAddress(self, target):
+ '''
+ target : str
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='PublicAddress',
+ version=2,
+ params=_params)
+ _params['target'] = target
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ResolveCharmResults)
+ async def ResolveCharms(self, references):
+ '''
+ references : typing.Sequence[str]
+ Returns -> typing.Sequence[~ResolveCharmResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='ResolveCharms',
+ version=2,
+ params=_params)
+ _params['references'] = references
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def Resolved(self, retry, unit_name):
+ '''
+ retry : bool
+ unit_name : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='Resolved',
+ version=2,
+ params=_params)
+ _params['retry'] = retry
+ _params['unit-name'] = unit_name
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def RetryProvisioning(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='RetryProvisioning',
+ version=2,
+ 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=2,
+ 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=2,
+ 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=2,
+ params=_params)
+ _params['application'] = application
+ _params['constraints'] = constraints
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def SetSLALevel(self, creds, level):
+ '''
+ creds : typing.Sequence[int]
+ level : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='SetSLALevel',
+ version=2,
+ params=_params)
+ _params['creds'] = creds
+ _params['level'] = level
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StatusHistoryResults)
+ async def StatusHistory(self, requests):
+ '''
+ requests : typing.Sequence[~StatusHistoryRequest]
+ Returns -> typing.Sequence[~StatusHistoryResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='StatusHistory',
+ version=2,
+ params=_params)
+ _params['requests'] = requests
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AllWatcherId)
+ async def WatchAll(self):
+ '''
+
+ Returns -> str
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Client',
+ request='WatchAll',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class CredentialValidatorFacade(Type):
+ name = 'CredentialValidator'
+ version = 2
+ schema = {'definitions': {'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'},
+ 'InvalidateCredentialArg': {'additionalProperties': False,
+ 'properties': {'reason': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelCredential': {'additionalProperties': False,
+ 'properties': {'credential-tag': {'type': 'string'},
+ 'exists': {'type': 'boolean'},
+ 'model-tag': {'type': 'string'},
+ 'valid': {'type': 'boolean'}},
+ 'required': ['model-tag',
+ 'credential-tag'],
+ 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'}},
+ 'properties': {'InvalidateModelCredential': {'properties': {'Params': {'$ref': '#/definitions/InvalidateCredentialArg'},
+ 'Result': {'$ref': '#/definitions/ErrorResult'}},
+ 'type': 'object'},
+ 'ModelCredential': {'properties': {'Result': {'$ref': '#/definitions/ModelCredential'}},
+ 'type': 'object'},
+ 'WatchCredential': {'properties': {'Params': {'$ref': '#/definitions/Entity'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'},
+ 'WatchModelCredential': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ErrorResult)
+ async def InvalidateModelCredential(self, reason):
+ '''
+ reason : str
+ Returns -> Error
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CredentialValidator',
+ request='InvalidateModelCredential',
+ version=2,
+ params=_params)
+ _params['reason'] = reason
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelCredential)
+ async def ModelCredential(self):
+ '''
+
+ Returns -> typing.Union[str, bool]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CredentialValidator',
+ request='ModelCredential',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchCredential(self, tag):
+ '''
+ tag : str
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CredentialValidator',
+ request='WatchCredential',
+ version=2,
+ params=_params)
+ _params['tag'] = tag
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResult)
+ async def WatchModelCredential(self):
+ '''
+
+ Returns -> typing.Union[str, _ForwardRef('Error')]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='CredentialValidator',
+ request='WatchModelCredential',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -1938,12 +4449,15 @@
@ReturnMapping(ErrorResults)
async def AddSubnets(self, subnets):
'''
- subnets : typing.Sequence<+T_co>[~AddSubnetParams]<~AddSubnetParams>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ subnets : typing.Sequence[~AddSubnetParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiscoverSpaces', request='AddSubnets', version=2, params=_params)
+ msg = dict(type='DiscoverSpaces',
+ request='AddSubnets',
+ version=2,
+ params=_params)
_params['subnets'] = subnets
reply = await self.rpc(msg)
return reply
@@ -1953,12 +4467,15 @@
@ReturnMapping(ErrorResults)
async def CreateSpaces(self, spaces):
'''
- spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ spaces : typing.Sequence[~CreateSpaceParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiscoverSpaces', request='CreateSpaces', version=2, params=_params)
+ msg = dict(type='DiscoverSpaces',
+ request='CreateSpaces',
+ version=2,
+ params=_params)
_params['spaces'] = spaces
reply = await self.rpc(msg)
return reply
@@ -1969,11 +4486,14 @@
async def ListSpaces(self):
'''
- Returns -> typing.Sequence<+T_co>[~ProviderSpace]<~ProviderSpace>
+ Returns -> typing.Sequence[~ProviderSpace]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiscoverSpaces', request='ListSpaces', version=2, params=_params)
+ msg = dict(type='DiscoverSpaces',
+ request='ListSpaces',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -1985,11 +4505,14 @@
'''
space_tag : str
zone : str
- Returns -> typing.Sequence<+T_co>[~Subnet]<~Subnet>
+ Returns -> typing.Sequence[~Subnet]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiscoverSpaces', request='ListSubnets', version=2, params=_params)
+ msg = dict(type='DiscoverSpaces',
+ request='ListSubnets',
+ version=2,
+ params=_params)
_params['space-tag'] = space_tag
_params['zone'] = zone
reply = await self.rpc(msg)
@@ -2001,11 +4524,14 @@
async def ModelConfig(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiscoverSpaces', request='ModelConfig', version=2, params=_params)
+ msg = dict(type='DiscoverSpaces',
+ request='ModelConfig',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2079,12 +4605,15 @@
@ReturnMapping(ErrorResults)
async def SetMachineBlockDevices(self, machine_block_devices):
'''
- machine_block_devices : typing.Sequence<+T_co>[~MachineBlockDevices]<~MachineBlockDevices>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ machine_block_devices : typing.Sequence[~MachineBlockDevices]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='DiskManager', request='SetMachineBlockDevices', version=2, params=_params)
+ msg = dict(type='DiskManager',
+ request='SetMachineBlockDevices',
+ version=2,
+ params=_params)
_params['machine-block-devices'] = machine_block_devices
reply = await self.rpc(msg)
return reply
@@ -2122,11 +4651,14 @@
async def Next(self):
'''
- Returns -> typing.Union[typing.Sequence<+T_co>[str], _ForwardRef('Error')]
+ Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='EntityWatcher', request='Next', version=2, params=_params)
+ msg = dict(type='EntityWatcher',
+ request='Next',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2141,7 +4673,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='EntityWatcher', request='Stop', version=2, params=_params)
+ msg = dict(type='EntityWatcher',
+ request='Stop',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2186,11 +4721,14 @@
async def Next(self):
'''
- Returns -> typing.Union[typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId>, _ForwardRef('Error')]
+ Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='FilesystemAttachmentsWatcher', request='Next', version=2, params=_params)
+ msg = dict(type='FilesystemAttachmentsWatcher',
+ request='Next',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2205,7 +4743,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='FilesystemAttachmentsWatcher', request='Stop', version=2, params=_params)
+ msg = dict(type='FilesystemAttachmentsWatcher',
+ request='Stop',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2283,23 +4824,15 @@
'Macaroon': {'additionalProperties': False, 'type': 'object'},
'Member': {'additionalProperties': False,
'properties': {'Address': {'type': 'string'},
- 'Arbiter': {'type': 'boolean'},
- 'BuildIndexes': {'type': 'boolean'},
- 'Hidden': {'type': 'boolean'},
'Id': {'type': 'integer'},
'Priority': {'type': 'number'},
- 'SlaveDelay': {'type': 'integer'},
'Tags': {'patternProperties': {'.*': {'type': 'string'}},
'type': 'object'},
'Votes': {'type': 'integer'}},
'required': ['Id',
'Address',
- 'Arbiter',
- 'BuildIndexes',
- 'Hidden',
'Priority',
'Tags',
- 'SlaveDelay',
'Votes'],
'type': 'object'},
'MongoUpgradeResults': {'additionalProperties': False,
@@ -2343,7 +4876,9 @@
'type': 'array'},
'tags': {'items': {'type': 'string'},
'type': 'array'},
- 'virt-type': {'type': 'string'}},
+ 'virt-type': {'type': 'string'},
+ 'zones': {'items': {'type': 'string'},
+ 'type': 'array'}},
'type': 'object'}},
'properties': {'EnableHA': {'properties': {'Params': {'$ref': '#/definitions/ControllersSpecs'},
'Result': {'$ref': '#/definitions/ControllersChangeResults'}},
@@ -2359,12 +4894,15 @@
@ReturnMapping(ControllersChangeResults)
async def EnableHA(self, specs):
'''
- specs : typing.Sequence<+T_co>[~ControllersSpec]<~ControllersSpec>
- Returns -> typing.Sequence<+T_co>[~ControllersChangeResult]<~ControllersChangeResult>
+ specs : typing.Sequence[~ControllersSpec]
+ Returns -> typing.Sequence[~ControllersChangeResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='HighAvailability', request='EnableHA', version=2, params=_params)
+ msg = dict(type='HighAvailability',
+ request='EnableHA',
+ version=2,
+ params=_params)
_params['specs'] = specs
reply = await self.rpc(msg)
return reply
@@ -2374,12 +4912,15 @@
@ReturnMapping(None)
async def ResumeHAReplicationAfterUpgrade(self, members):
'''
- members : typing.Sequence<+T_co>[~Member]<~Member>
+ members : typing.Sequence[~Member]
Returns -> None
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='HighAvailability', request='ResumeHAReplicationAfterUpgrade', version=2, params=_params)
+ msg = dict(type='HighAvailability',
+ request='ResumeHAReplicationAfterUpgrade',
+ version=2,
+ params=_params)
_params['members'] = members
reply = await self.rpc(msg)
return reply
@@ -2390,11 +4931,14 @@
async def StopHAReplicationForUpgrade(self, target):
'''
target : MongoVersion
- Returns -> typing.Union[_ForwardRef('HAMember'), typing.Sequence<+T_co>[~Member]<~Member>]
+ Returns -> typing.Union[typing.Sequence[~HAMember], _ForwardRef('HAMember'), typing.Sequence[~Member]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='HighAvailability', request='StopHAReplicationForUpgrade', version=2, params=_params)
+ msg = dict(type='HighAvailability',
+ request='StopHAReplicationForUpgrade',
+ version=2,
+ params=_params)
_params['target'] = target
reply = await self.rpc(msg)
return reply
@@ -2464,12 +5008,15 @@
@ReturnMapping(ErrorResults)
async def DeleteImages(self, images):
'''
- images : typing.Sequence<+T_co>[~ImageSpec]<~ImageSpec>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ images : typing.Sequence[~ImageSpec]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageManager', request='DeleteImages', version=2, params=_params)
+ msg = dict(type='ImageManager',
+ request='DeleteImages',
+ version=2,
+ params=_params)
_params['images'] = images
reply = await self.rpc(msg)
return reply
@@ -2479,12 +5026,15 @@
@ReturnMapping(ListImageResult)
async def ListImages(self, images):
'''
- images : typing.Sequence<+T_co>[~ImageSpec]<~ImageSpec>
- Returns -> typing.Sequence<+T_co>[~ImageMetadata]<~ImageMetadata>
+ images : typing.Sequence[~ImageSpec]
+ Returns -> typing.Sequence[~ImageMetadata]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageManager', request='ListImages', version=2, params=_params)
+ msg = dict(type='ImageManager',
+ request='ListImages',
+ version=2,
+ params=_params)
_params['images'] = images
reply = await self.rpc(msg)
return reply
@@ -2577,12 +5127,15 @@
@ReturnMapping(ErrorResults)
async def Delete(self, image_ids):
'''
- image_ids : typing.Sequence<+T_co>[str]
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ image_ids : typing.Sequence[str]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageMetadata', request='Delete', version=2, params=_params)
+ msg = dict(type='ImageMetadata',
+ request='Delete',
+ version=2,
+ params=_params)
_params['image-ids'] = image_ids
reply = await self.rpc(msg)
return reply
@@ -2592,17 +5145,20 @@
@ReturnMapping(ListCloudImageMetadataResult)
async def List(self, arches, region, root_storage_type, series, stream, virt_type):
'''
- arches : typing.Sequence<+T_co>[str]
+ arches : typing.Sequence[str]
region : str
root_storage_type : str
- series : typing.Sequence<+T_co>[str]
+ series : typing.Sequence[str]
stream : str
virt_type : str
- Returns -> typing.Sequence<+T_co>[~CloudImageMetadata]<~CloudImageMetadata>
+ Returns -> typing.Sequence[~CloudImageMetadata]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageMetadata', request='List', version=2, params=_params)
+ msg = dict(type='ImageMetadata',
+ request='List',
+ version=2,
+ params=_params)
_params['arches'] = arches
_params['region'] = region
_params['root-storage-type'] = root_storage_type
@@ -2617,12 +5173,15 @@
@ReturnMapping(ErrorResults)
async def Save(self, metadata):
'''
- metadata : typing.Sequence<+T_co>[~CloudImageMetadataList]<~CloudImageMetadataList>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ metadata : typing.Sequence[~CloudImageMetadataList]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageMetadata', request='Save', version=2, params=_params)
+ msg = dict(type='ImageMetadata',
+ request='Save',
+ version=2,
+ params=_params)
_params['metadata'] = metadata
reply = await self.rpc(msg)
return reply
@@ -2637,7 +5196,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ImageMetadata', request='UpdateFromPublishedImages', version=2, params=_params)
+ msg = dict(type='ImageMetadata',
+ request='UpdateFromPublishedImages',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -2700,7 +5262,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LeadershipService', request='BlockUntilLeadershipReleased', version=2, params=_params)
+ msg = dict(type='LeadershipService',
+ request='BlockUntilLeadershipReleased',
+ version=2,
+ params=_params)
_params['Name'] = name
reply = await self.rpc(msg)
return reply
@@ -2710,12 +5275,15 @@
@ReturnMapping(ClaimLeadershipBulkResults)
async def ClaimLeadership(self, params):
'''
- params : typing.Sequence<+T_co>[~ClaimLeadershipParams]<~ClaimLeadershipParams>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ params : typing.Sequence[~ClaimLeadershipParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='LeadershipService', request='ClaimLeadership', version=2, params=_params)
+ msg = dict(type='LeadershipService',
+ request='ClaimLeadership',
+ version=2,
+ params=_params)
_params['params'] = params
reply = await self.rpc(msg)
return reply
@@ -2863,12 +5431,15 @@
@ReturnMapping(AddMachinesResults)
async def AddMachines(self, params):
'''
- params : typing.Sequence<+T_co>[~AddMachineParams]<~AddMachineParams>
- Returns -> typing.Sequence<+T_co>[~AddMachinesResult]<~AddMachinesResult>
+ params : typing.Sequence[~AddMachineParams]
+ Returns -> typing.Sequence[~AddMachinesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineManager', request='AddMachines', version=2, params=_params)
+ msg = dict(type='MachineManager',
+ request='AddMachines',
+ version=2,
+ params=_params)
_params['params'] = params
reply = await self.rpc(msg)
return reply
@@ -2878,12 +5449,15 @@
@ReturnMapping(InstanceTypesResults)
async def InstanceTypes(self, constraints):
'''
- constraints : typing.Sequence<+T_co>[~ModelInstanceTypesConstraint]<~ModelInstanceTypesConstraint>
- Returns -> typing.Sequence<+T_co>[~InstanceTypesResult]<~InstanceTypesResult>
+ constraints : typing.Sequence[~ModelInstanceTypesConstraint]
+ Returns -> typing.Sequence[~InstanceTypesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MachineManager', request='InstanceTypes', version=2, params=_params)
+ msg = dict(type='MachineManager',
+ request='InstanceTypes',
+ version=2,
+ params=_params)
_params['constraints'] = constraints
reply = await self.rpc(msg)
return reply
@@ -2914,6 +5488,8 @@
'Macaroon': {'additionalProperties': False, 'type': 'object'},
'Metric': {'additionalProperties': False,
'properties': {'key': {'type': 'string'},
+ 'labels': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
'time': {'format': 'date-time',
'type': 'string'},
'value': {'type': 'string'}},
@@ -2950,12 +5526,15 @@
@ReturnMapping(ErrorResults)
async def AddMetricBatches(self, batches):
'''
- batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ batches : typing.Sequence[~MetricBatchParam]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MetricsAdder', request='AddMetricBatches', version=2, params=_params)
+ msg = dict(type='MetricsAdder',
+ request='AddMetricBatches',
+ version=2,
+ params=_params)
_params['batches'] = batches
reply = await self.rpc(msg)
return reply
@@ -3002,7 +5581,7 @@
'properties': {'code': {'type': 'string'},
'info': {'type': 'string'},
'tag': {'type': 'string'}},
- 'required': ['tag', 'code', 'info'],
+ 'required': ['tag', 'code'],
'type': 'object'},
'MeterStatusParams': {'additionalProperties': False,
'properties': {'statues': {'items': {'$ref': '#/definitions/MeterStatusParam'},
@@ -3011,11 +5590,17 @@
'type': 'object'},
'MetricResult': {'additionalProperties': False,
'properties': {'key': {'type': 'string'},
+ 'labels': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
'time': {'format': 'date-time',
'type': 'string'},
'unit': {'type': 'string'},
'value': {'type': 'string'}},
- 'required': ['time', 'key', 'value', 'unit'],
+ 'required': ['time',
+ 'key',
+ 'value',
+ 'unit',
+ 'labels'],
'type': 'object'},
'MetricResults': {'additionalProperties': False,
'properties': {'results': {'items': {'$ref': '#/definitions/EntityMetrics'},
@@ -3034,12 +5619,15 @@
@ReturnMapping(MetricResults)
async def GetMetrics(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~EntityMetrics]<~EntityMetrics>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~EntityMetrics]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MetricsDebug', request='GetMetrics', version=2, params=_params)
+ msg = dict(type='MetricsDebug',
+ request='GetMetrics',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3049,18 +5637,203 @@
@ReturnMapping(ErrorResults)
async def SetMeterStatus(self, statues):
'''
- statues : typing.Sequence<+T_co>[~MeterStatusParam]<~MeterStatusParam>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ statues : typing.Sequence[~MeterStatusParam]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='MetricsDebug', request='SetMeterStatus', version=2, params=_params)
+ msg = dict(type='MetricsDebug',
+ request='SetMeterStatus',
+ version=2,
+ params=_params)
_params['statues'] = statues
reply = await self.rpc(msg)
return reply
+class ModelConfigFacade(Type):
+ name = 'ModelConfig'
+ version = 2
+ schema = {'definitions': {'ConfigValue': {'additionalProperties': False,
+ 'properties': {'source': {'type': 'string'},
+ 'value': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'required': ['value', 'source'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'ModelConfigResults': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelSLA': {'additionalProperties': False,
+ 'properties': {'ModelSLAInfo': {'$ref': '#/definitions/ModelSLAInfo'},
+ 'creds': {'items': {'type': 'integer'},
+ 'type': 'array'}},
+ 'required': ['ModelSLAInfo', 'creds'],
+ 'type': 'object'},
+ 'ModelSLAInfo': {'additionalProperties': False,
+ 'properties': {'level': {'type': 'string'},
+ 'owner': {'type': 'string'}},
+ 'required': ['level', 'owner'],
+ 'type': 'object'},
+ 'ModelSequencesResult': {'additionalProperties': False,
+ 'properties': {'sequences': {'patternProperties': {'.*': {'type': 'integer'}},
+ 'type': 'object'}},
+ 'required': ['sequences'],
+ 'type': 'object'},
+ 'ModelSet': {'additionalProperties': False,
+ 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True,
+ 'type': 'object'}},
+ 'type': 'object'}},
+ 'required': ['config'],
+ 'type': 'object'},
+ 'ModelUnset': {'additionalProperties': False,
+ 'properties': {'keys': {'items': {'type': 'string'},
+ 'type': 'array'}},
+ 'required': ['keys'],
+ 'type': 'object'},
+ 'StringResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'type': 'string'}},
+ 'required': ['result'],
+ 'type': 'object'}},
+ 'properties': {'ModelGet': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}},
+ 'type': 'object'},
+ 'ModelSet': {'properties': {'Params': {'$ref': '#/definitions/ModelSet'}},
+ 'type': 'object'},
+ 'ModelUnset': {'properties': {'Params': {'$ref': '#/definitions/ModelUnset'}},
+ 'type': 'object'},
+ 'SLALevel': {'properties': {'Result': {'$ref': '#/definitions/StringResult'}},
+ 'type': 'object'},
+ 'Sequences': {'properties': {'Result': {'$ref': '#/definitions/ModelSequencesResult'}},
+ 'type': 'object'},
+ 'SetSLALevel': {'properties': {'Params': {'$ref': '#/definitions/ModelSLA'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ModelConfigResults)
+ async def ModelGet(self):
+ '''
+
+ Returns -> typing.Mapping[str, ~ConfigValue]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='ModelGet',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelSet(self, config):
+ '''
+ config : typing.Mapping[str, typing.Any]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='ModelSet',
+ version=2,
+ params=_params)
+ _params['config'] = config
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def ModelUnset(self, keys):
+ '''
+ keys : typing.Sequence[str]
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='ModelUnset',
+ version=2,
+ params=_params)
+ _params['keys'] = keys
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(StringResult)
+ async def SLALevel(self):
+ '''
+
+ Returns -> typing.Union[_ForwardRef('Error'), str]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='SLALevel',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ModelSequencesResult)
+ async def Sequences(self):
+ '''
+
+ Returns -> typing.Mapping[str, int]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='Sequences',
+ version=2,
+ params=_params)
+
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(None)
+ async def SetSLALevel(self, creds, level):
+ '''
+ creds : typing.Sequence[int]
+ level : str
+ Returns -> None
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ModelConfig',
+ request='SetSLALevel',
+ version=2,
+ params=_params)
+ _params['creds'] = creds
+ _params['level'] = level
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class ModelManagerFacade(Type):
name = 'ModelManager'
version = 2
@@ -3353,16 +6126,19 @@
async def CreateModel(self, cloud_tag, config, credential, name, owner_tag, region):
'''
cloud_tag : str
- config : typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ config : typing.Mapping[str, typing.Any]
credential : str
name : str
owner_tag : str
region : str
- Returns -> typing.Union[_ForwardRef('Number'), _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence<+T_co>[~ModelUserInfo]<~ModelUserInfo>]
+ Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='CreateModel', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='CreateModel',
+ version=2,
+ params=_params)
_params['cloud-tag'] = cloud_tag
_params['config'] = config
_params['credential'] = credential
@@ -3377,12 +6153,15 @@
@ReturnMapping(ErrorResults)
async def DestroyModels(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='DestroyModels', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='DestroyModels',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3392,12 +6171,15 @@
@ReturnMapping(MapResults)
async def DumpModels(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~MapResult]<~MapResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~MapResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='DumpModels', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='DumpModels',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3407,12 +6189,15 @@
@ReturnMapping(MapResults)
async def DumpModelsDB(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~MapResult]<~MapResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~MapResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='DumpModelsDB', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='DumpModelsDB',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3423,11 +6208,14 @@
async def ListModels(self, tag):
'''
tag : str
- Returns -> typing.Sequence<+T_co>[~UserModel]<~UserModel>
+ Returns -> typing.Sequence[~UserModel]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='ListModels', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='ListModels',
+ version=2,
+ params=_params)
_params['tag'] = tag
reply = await self.rpc(msg)
return reply
@@ -3438,11 +6226,14 @@
async def ModelDefaults(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, ~ModelDefaults]<~ModelDefaults>
+ Returns -> typing.Mapping[str, ~ModelDefaults]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='ModelDefaults', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='ModelDefaults',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3452,12 +6243,15 @@
@ReturnMapping(ModelInfoResults)
async def ModelInfo(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ModelInfoResult]<~ModelInfoResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ModelInfoResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='ModelInfo', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='ModelInfo',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3467,12 +6261,15 @@
@ReturnMapping(ModelStatusResults)
async def ModelStatus(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ModelStatus]<~ModelStatus>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ModelStatus]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='ModelStatus', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='ModelStatus',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3482,12 +6279,15 @@
@ReturnMapping(ErrorResults)
async def ModifyModelAccess(self, changes):
'''
- changes : typing.Sequence<+T_co>[~ModifyModelAccess]<~ModifyModelAccess>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ changes : typing.Sequence[~ModifyModelAccess]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='ModifyModelAccess', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='ModifyModelAccess',
+ version=2,
+ params=_params)
_params['changes'] = changes
reply = await self.rpc(msg)
return reply
@@ -3497,12 +6297,15 @@
@ReturnMapping(ErrorResults)
async def SetModelDefaults(self, config):
'''
- config : typing.Sequence<+T_co>[~ModelDefaultValues]<~ModelDefaultValues>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ config : typing.Sequence[~ModelDefaultValues]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='SetModelDefaults', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='SetModelDefaults',
+ version=2,
+ params=_params)
_params['config'] = config
reply = await self.rpc(msg)
return reply
@@ -3512,18 +6315,125 @@
@ReturnMapping(ErrorResults)
async def UnsetModelDefaults(self, keys):
'''
- keys : typing.Sequence<+T_co>[~ModelUnsetKeys]<~ModelUnsetKeys>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ keys : typing.Sequence[~ModelUnsetKeys]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='ModelManager', request='UnsetModelDefaults', version=2, params=_params)
+ msg = dict(type='ModelManager',
+ request='UnsetModelDefaults',
+ version=2,
+ params=_params)
_params['keys'] = keys
reply = await self.rpc(msg)
return reply
+class ProxyUpdaterFacade(Type):
+ name = 'ProxyUpdater'
+ version = 2
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'NotifyWatchResult': {'additionalProperties': False,
+ 'properties': {'NotifyWatcherId': {'type': 'string'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'required': ['NotifyWatcherId'],
+ 'type': 'object'},
+ 'NotifyWatchResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'ProxyConfig': {'additionalProperties': False,
+ 'properties': {'ftp': {'type': 'string'},
+ 'http': {'type': 'string'},
+ 'https': {'type': 'string'},
+ 'no-proxy': {'type': 'string'}},
+ 'required': ['http',
+ 'https',
+ 'ftp',
+ 'no-proxy'],
+ 'type': 'object'},
+ 'ProxyConfigResult': {'additionalProperties': False,
+ 'properties': {'apt-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
+ 'error': {'$ref': '#/definitions/Error'},
+ 'juju-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
+ 'legacy-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
+ 'snap-proxy-settings': {'$ref': '#/definitions/ProxyConfig'},
+ 'snap-store-assertions': {'type': 'string'},
+ 'snap-store-id': {'type': 'string'}},
+ 'required': ['legacy-proxy-settings',
+ 'juju-proxy-settings'],
+ 'type': 'object'},
+ 'ProxyConfigResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ProxyConfigResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'ProxyConfig': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ProxyConfigResults'}},
+ 'type': 'object'},
+ 'WatchForProxyConfigAndAPIHostPortChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ProxyConfigResults)
+ async def ProxyConfig(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ProxyConfigResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ProxyUpdater',
+ request='ProxyConfig',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(NotifyWatchResults)
+ async def WatchForProxyConfigAndAPIHostPortChanges(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~NotifyWatchResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='ProxyUpdater',
+ request='WatchForProxyConfigAndAPIHostPortChanges',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class RebootFacade(Type):
name = 'Reboot'
version = 2
@@ -3585,12 +6495,15 @@
@ReturnMapping(ErrorResults)
async def ClearReboot(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Reboot', request='ClearReboot', version=2, params=_params)
+ msg = dict(type='Reboot',
+ request='ClearReboot',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3600,12 +6513,15 @@
@ReturnMapping(RebootActionResults)
async def GetRebootAction(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~RebootActionResult]<~RebootActionResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~RebootActionResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Reboot', request='GetRebootAction', version=2, params=_params)
+ msg = dict(type='Reboot',
+ request='GetRebootAction',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3615,12 +6531,15 @@
@ReturnMapping(ErrorResults)
async def RequestReboot(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Reboot', request='RequestReboot', version=2, params=_params)
+ msg = dict(type='Reboot',
+ request='RequestReboot',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3635,7 +6554,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Reboot', request='WatchForRebootEvent', version=2, params=_params)
+ msg = dict(type='Reboot',
+ request='WatchForRebootEvent',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3656,7 +6578,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Resumer', request='ResumeTransactions', version=2, params=_params)
+ msg = dict(type='Resumer',
+ request='ResumeTransactions',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3740,12 +6665,15 @@
@ReturnMapping(SSHAddressesResults)
async def AllAddresses(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHAddressesResult]<~SSHAddressesResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressesResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='AllAddresses', version=2, params=_params)
+ msg = dict(type='SSHClient',
+ request='AllAddresses',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3755,12 +6683,15 @@
@ReturnMapping(SSHAddressResults)
async def PrivateAddress(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PrivateAddress', version=2, params=_params)
+ msg = dict(type='SSHClient',
+ request='PrivateAddress',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3775,7 +6706,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='Proxy', version=2, params=_params)
+ msg = dict(type='SSHClient',
+ request='Proxy',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3785,12 +6719,15 @@
@ReturnMapping(SSHAddressResults)
async def PublicAddress(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHAddressResult]<~SSHAddressResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHAddressResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PublicAddress', version=2, params=_params)
+ msg = dict(type='SSHClient',
+ request='PublicAddress',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3800,12 +6737,104 @@
@ReturnMapping(SSHPublicKeysResults)
async def PublicKeys(self, entities):
'''
- entities : typing.Sequence<+T_co>[~Entity]<~Entity>
- Returns -> typing.Sequence<+T_co>[~SSHPublicKeysResult]<~SSHPublicKeysResult>
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~SSHPublicKeysResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='SSHClient', request='PublicKeys', version=2, params=_params)
+ msg = dict(type='SSHClient',
+ request='PublicKeys',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+class SingularFacade(Type):
+ name = 'Singular'
+ version = 2
+ schema = {'definitions': {'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'SingularClaim': {'additionalProperties': False,
+ 'properties': {'claimant-tag': {'type': 'string'},
+ 'duration': {'type': 'integer'},
+ 'entity-tag': {'type': 'string'}},
+ 'required': ['entity-tag',
+ 'claimant-tag',
+ 'duration'],
+ 'type': 'object'},
+ 'SingularClaims': {'additionalProperties': False,
+ 'properties': {'claims': {'items': {'$ref': '#/definitions/SingularClaim'},
+ 'type': 'array'}},
+ 'required': ['claims'],
+ 'type': 'object'}},
+ 'properties': {'Claim': {'properties': {'Params': {'$ref': '#/definitions/SingularClaims'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'Wait': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(ErrorResults)
+ async def Claim(self, claims):
+ '''
+ claims : typing.Sequence[~SingularClaim]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Singular',
+ request='Claim',
+ version=2,
+ params=_params)
+ _params['claims'] = claims
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def Wait(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='Singular',
+ request='Wait',
+ version=2,
+ params=_params)
_params['entities'] = entities
reply = await self.rpc(msg)
return reply
@@ -3889,12 +6918,15 @@
@ReturnMapping(ErrorResults)
async def CreateSpaces(self, spaces):
'''
- spaces : typing.Sequence<+T_co>[~CreateSpaceParams]<~CreateSpaceParams>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ spaces : typing.Sequence[~CreateSpaceParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Spaces', request='CreateSpaces', version=2, params=_params)
+ msg = dict(type='Spaces',
+ request='CreateSpaces',
+ version=2,
+ params=_params)
_params['spaces'] = spaces
reply = await self.rpc(msg)
return reply
@@ -3905,11 +6937,14 @@
async def ListSpaces(self):
'''
- Returns -> typing.Sequence<+T_co>[~Space]<~Space>
+ Returns -> typing.Sequence[~Space]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Spaces', request='ListSpaces', version=2, params=_params)
+ msg = dict(type='Spaces',
+ request='ListSpaces',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3960,11 +6995,14 @@
async def ModelConfig(self):
'''
- Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+ Returns -> typing.Mapping[str, typing.Any]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='StatusHistory', request='ModelConfig', version=2, params=_params)
+ msg = dict(type='StatusHistory',
+ request='ModelConfig',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -3980,7 +7018,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='StatusHistory', request='Prune', version=2, params=_params)
+ msg = dict(type='StatusHistory',
+ request='Prune',
+ version=2,
+ params=_params)
_params['max-history-mb'] = max_history_mb
_params['max-history-time'] = max_history_time
reply = await self.rpc(msg)
@@ -3996,7 +7037,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='StatusHistory', request='WatchForModelConfigChanges', version=2, params=_params)
+ msg = dict(type='StatusHistory',
+ request='WatchForModelConfigChanges',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -4103,12 +7147,15 @@
@ReturnMapping(ErrorResults)
async def AddSubnets(self, subnets):
'''
- subnets : typing.Sequence<+T_co>[~AddSubnetParams]<~AddSubnetParams>
- Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+ subnets : typing.Sequence[~AddSubnetParams]
+ Returns -> typing.Sequence[~ErrorResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Subnets', request='AddSubnets', version=2, params=_params)
+ msg = dict(type='Subnets',
+ request='AddSubnets',
+ version=2,
+ params=_params)
_params['subnets'] = subnets
reply = await self.rpc(msg)
return reply
@@ -4119,11 +7166,14 @@
async def AllSpaces(self):
'''
- Returns -> typing.Sequence<+T_co>[~SpaceResult]<~SpaceResult>
+ Returns -> typing.Sequence[~SpaceResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Subnets', request='AllSpaces', version=2, params=_params)
+ msg = dict(type='Subnets',
+ request='AllSpaces',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -4134,11 +7184,14 @@
async def AllZones(self):
'''
- Returns -> typing.Sequence<+T_co>[~ZoneResult]<~ZoneResult>
+ Returns -> typing.Sequence[~ZoneResult]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Subnets', request='AllZones', version=2, params=_params)
+ msg = dict(type='Subnets',
+ request='AllZones',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -4150,11 +7203,14 @@
'''
space_tag : str
zone : str
- Returns -> typing.Sequence<+T_co>[~Subnet]<~Subnet>
+ Returns -> typing.Sequence[~Subnet]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='Subnets', request='ListSubnets', version=2, params=_params)
+ msg = dict(type='Subnets',
+ request='ListSubnets',
+ version=2,
+ params=_params)
_params['space-tag'] = space_tag
_params['zone'] = zone
reply = await self.rpc(msg)
@@ -4162,6 +7218,254 @@
+class UserManagerFacade(Type):
+ name = 'UserManager'
+ version = 2
+ schema = {'definitions': {'AddUser': {'additionalProperties': False,
+ 'properties': {'display-name': {'type': 'string'},
+ 'password': {'type': 'string'},
+ 'username': {'type': 'string'}},
+ 'required': ['username', 'display-name'],
+ 'type': 'object'},
+ 'AddUserResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'secret-key': {'items': {'type': 'integer'},
+ 'type': 'array'},
+ 'tag': {'type': 'string'}},
+ 'type': 'object'},
+ 'AddUserResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/AddUserResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'AddUsers': {'additionalProperties': False,
+ 'properties': {'users': {'items': {'$ref': '#/definitions/AddUser'},
+ 'type': 'array'}},
+ 'required': ['users'],
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'EntityPassword': {'additionalProperties': False,
+ 'properties': {'password': {'type': 'string'},
+ 'tag': {'type': 'string'}},
+ 'required': ['tag', 'password'],
+ 'type': 'object'},
+ 'EntityPasswords': {'additionalProperties': False,
+ 'properties': {'changes': {'items': {'$ref': '#/definitions/EntityPassword'},
+ 'type': 'array'}},
+ 'required': ['changes'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'UserInfo': {'additionalProperties': False,
+ 'properties': {'access': {'type': 'string'},
+ 'created-by': {'type': 'string'},
+ 'date-created': {'format': 'date-time',
+ 'type': 'string'},
+ 'disabled': {'type': 'boolean'},
+ 'display-name': {'type': 'string'},
+ 'last-connection': {'format': 'date-time',
+ 'type': 'string'},
+ 'username': {'type': 'string'}},
+ 'required': ['username',
+ 'display-name',
+ 'access',
+ 'created-by',
+ 'date-created',
+ 'disabled'],
+ 'type': 'object'},
+ 'UserInfoRequest': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'},
+ 'include-disabled': {'type': 'boolean'}},
+ 'required': ['entities',
+ 'include-disabled'],
+ 'type': 'object'},
+ 'UserInfoResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/UserInfo'}},
+ 'type': 'object'},
+ 'UserInfoResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/UserInfoResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'}},
+ 'properties': {'AddUser': {'properties': {'Params': {'$ref': '#/definitions/AddUsers'},
+ 'Result': {'$ref': '#/definitions/AddUserResults'}},
+ 'type': 'object'},
+ 'DisableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'EnableUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'RemoveUser': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'ResetPassword': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/AddUserResults'}},
+ 'type': 'object'},
+ 'SetPassword': {'properties': {'Params': {'$ref': '#/definitions/EntityPasswords'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'},
+ 'UserInfo': {'properties': {'Params': {'$ref': '#/definitions/UserInfoRequest'},
+ 'Result': {'$ref': '#/definitions/UserInfoResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(AddUserResults)
+ async def AddUser(self, users):
+ '''
+ users : typing.Sequence[~AddUser]
+ Returns -> typing.Sequence[~AddUserResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='AddUser',
+ version=2,
+ params=_params)
+ _params['users'] = users
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def DisableUser(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='DisableUser',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def EnableUser(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='EnableUser',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def RemoveUser(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='RemoveUser',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(AddUserResults)
+ async def ResetPassword(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~AddUserResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='ResetPassword',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def SetPassword(self, changes):
+ '''
+ changes : typing.Sequence[~EntityPassword]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='SetPassword',
+ version=2,
+ params=_params)
+ _params['changes'] = changes
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(UserInfoResults)
+ async def UserInfo(self, entities, include_disabled):
+ '''
+ entities : typing.Sequence[~Entity]
+ include_disabled : bool
+ Returns -> typing.Sequence[~UserInfoResult]
+ '''
+ # map input types to rpc msg
+ _params = dict()
+ msg = dict(type='UserManager',
+ request='UserInfo',
+ version=2,
+ params=_params)
+ _params['entities'] = entities
+ _params['include-disabled'] = include_disabled
+ reply = await self.rpc(msg)
+ return reply
+
+
+
class VolumeAttachmentsWatcherFacade(Type):
name = 'VolumeAttachmentsWatcher'
version = 2
@@ -4200,11 +7504,14 @@
async def Next(self):
'''
- Returns -> typing.Union[typing.Sequence<+T_co>[~MachineStorageId]<~MachineStorageId>, _ForwardRef('Error')]
+ Returns -> typing.Union[typing.Sequence[~MachineStorageId], _ForwardRef('Error'), str]
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='VolumeAttachmentsWatcher', request='Next', version=2, params=_params)
+ msg = dict(type='VolumeAttachmentsWatcher',
+ request='Next',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply
@@ -4219,7 +7526,10 @@
'''
# map input types to rpc msg
_params = dict()
- msg = dict(type='VolumeAttachmentsWatcher', request='Stop', version=2, params=_params)
+ msg = dict(type='VolumeAttachmentsWatcher',
+ request='Stop',
+ version=2,
+ params=_params)
reply = await self.rpc(msg)
return reply