Source code for juju.client._client5

# DO NOT CHANGE THIS FILE! This file is auto-generated by facade.py.
# Changes will be overwritten/lost when the file is regenerated.

from juju.client.facade import Type, ReturnMapping
from juju.client._definitions import *


[docs]class ApplicationFacade(Type): name = 'Application' version = 5 schema = {'definitions': {'AddApplicationUnits': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'attach-storage': {'items': {'type': 'string'}, 'type': 'array'}, 'num-units': {'type': 'integer'}, 'placement': {'items': {'$ref': '#/definitions/Placement'}, 'type': 'array'}}, 'required': ['application', 'num-units', 'placement'], 'type': 'object'}, 'AddApplicationUnitsResults': {'additionalProperties': False, 'properties': {'units': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['units'], 'type': 'object'}, 'AddRelation': {'additionalProperties': False, 'properties': {'endpoints': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['endpoints'], 'type': 'object'}, 'AddRelationResults': {'additionalProperties': False, 'properties': {'endpoints': {'patternProperties': {'.*': {'$ref': '#/definitions/CharmRelation'}}, 'type': 'object'}}, 'required': ['endpoints'], 'type': 'object'}, 'ApplicationCharmRelations': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'ApplicationCharmRelationsResults': {'additionalProperties': False, 'properties': {'charm-relations': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['charm-relations'], 'type': 'object'}, 'ApplicationDeploy': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'attach-storage': {'items': {'type': 'string'}, 'type': 'array'}, 'channel': {'type': 'string'}, 'charm-url': {'type': 'string'}, 'config': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'config-yaml': {'type': 'string'}, 'constraints': {'$ref': '#/definitions/Value'}, 'endpoint-bindings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'num-units': {'type': 'integer'}, 'placement': {'items': {'$ref': '#/definitions/Placement'}, 'type': 'array'}, 'resources': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'series': {'type': 'string'}, 'storage': {'patternProperties': {'.*': {'$ref': '#/definitions/Constraints'}}, 'type': 'object'}}, 'required': ['application', 'series', 'charm-url', 'channel', 'num-units', 'config-yaml', 'constraints'], 'type': 'object'}, 'ApplicationDestroy': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'ApplicationExpose': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'ApplicationGet': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'ApplicationGetResults': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'charm': {'type': 'string'}, 'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'constraints': {'$ref': '#/definitions/Value'}, 'series': {'type': 'string'}}, 'required': ['application', 'charm', 'config', 'constraints', 'series'], 'type': 'object'}, 'ApplicationMetricCredential': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'metrics-credentials': {'items': {'type': 'integer'}, 'type': 'array'}}, 'required': ['application', 'metrics-credentials'], 'type': 'object'}, 'ApplicationMetricCredentials': {'additionalProperties': False, 'properties': {'creds': {'items': {'$ref': '#/definitions/ApplicationMetricCredential'}, 'type': 'array'}}, 'required': ['creds'], 'type': 'object'}, 'ApplicationOffer': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, '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'}, 'source-model-tag': {'type': 'string'}, 'spaces': {'items': {'$ref': '#/definitions/RemoteSpace'}, 'type': 'array'}}, 'required': ['source-model-tag', 'offer-url', 'offer-name', 'application-description', 'endpoints', 'spaces', 'bindings', 'access'], 'type': 'object'}, 'ApplicationSet': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'options': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, 'required': ['application', 'options'], 'type': 'object'}, 'ApplicationSetCharm': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'channel': {'type': 'string'}, 'charm-url': {'type': 'string'}, 'config-settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'config-settings-yaml': {'type': 'string'}, 'force-series': {'type': 'boolean'}, 'force-units': {'type': 'boolean'}, 'resource-ids': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'storage-constraints': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageConstraints'}}, 'type': 'object'}}, 'required': ['application', 'charm-url', 'channel', 'force-units', 'force-series'], 'type': 'object'}, 'ApplicationUnexpose': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'ApplicationUnset': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'options': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['application', 'options'], 'type': 'object'}, 'ApplicationUpdate': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'charm-url': {'type': 'string'}, 'constraints': {'$ref': '#/definitions/Value'}, 'force-charm-url': {'type': 'boolean'}, 'force-series': {'type': 'boolean'}, 'min-units': {'type': 'integer'}, 'settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'settings-yaml': {'type': 'string'}}, 'required': ['application', 'charm-url', 'force-charm-url', 'force-series', 'settings-yaml'], 'type': 'object'}, 'ApplicationsDeploy': {'additionalProperties': False, 'properties': {'applications': {'items': {'$ref': '#/definitions/ApplicationDeploy'}, 'type': 'array'}}, 'required': ['applications'], 'type': 'object'}, 'CharmRelation': {'additionalProperties': False, 'properties': {'interface': {'type': 'string'}, 'limit': {'type': 'integer'}, 'name': {'type': 'string'}, 'optional': {'type': 'boolean'}, 'role': {'type': 'string'}, 'scope': {'type': 'string'}}, 'required': ['name', 'role', 'interface', 'optional', 'limit', 'scope'], 'type': 'object'}, 'Constraints': {'additionalProperties': False, 'properties': {'Count': {'type': 'integer'}, 'Pool': {'type': 'string'}, 'Size': {'type': 'integer'}}, 'required': ['Pool', 'Size', 'Count'], 'type': 'object'}, 'ConsumeApplicationArg': {'additionalProperties': False, 'properties': {'ApplicationOffer': {'$ref': '#/definitions/ApplicationOffer'}, 'application-alias': {'type': 'string'}, 'macaroon': {'$ref': '#/definitions/Macaroon'}}, 'required': ['ApplicationOffer'], 'type': 'object'}, 'ConsumeApplicationArgs': {'additionalProperties': False, 'properties': {'args': {'items': {'$ref': '#/definitions/ConsumeApplicationArg'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyApplicationInfo': {'additionalProperties': False, 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyApplicationResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'info': {'$ref': '#/definitions/DestroyApplicationInfo'}}, 'type': 'object'}, 'DestroyApplicationResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyApplicationResult'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyApplicationUnits': {'additionalProperties': False, 'properties': {'unit-names': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['unit-names'], 'type': 'object'}, 'DestroyRelation': {'additionalProperties': False, 'properties': {'endpoints': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['endpoints'], 'type': 'object'}, 'DestroyUnitInfo': {'additionalProperties': False, 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyUnitResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'info': {'$ref': '#/definitions/DestroyUnitInfo'}}, 'type': 'object'}, 'DestroyUnitResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyUnitResult'}, 'type': 'array'}}, 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'$ref': '#/definitions/ErrorInfo'}, 'message': {'type': 'string'}}, 'required': ['message', 'code'], 'type': 'object'}, 'ErrorInfo': {'additionalProperties': False, 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, 'macaroon-path': {'type': 'string'}}, 'type': 'object'}, 'ErrorResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, 'ErrorResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'GetApplicationConstraints': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}}, 'required': ['application'], 'type': 'object'}, 'GetConstraintsResults': {'additionalProperties': False, 'properties': {'constraints': {'$ref': '#/definitions/Value'}}, 'required': ['constraints'], 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'Placement': {'additionalProperties': False, 'properties': {'directive': {'type': 'string'}, 'scope': {'type': 'string'}}, 'required': ['scope', 'directive'], 'type': 'object'}, 'RemoteEndpoint': {'additionalProperties': False, 'properties': {'interface': {'type': 'string'}, 'limit': {'type': 'integer'}, 'name': {'type': 'string'}, 'role': {'type': 'string'}, 'scope': {'type': 'string'}}, 'required': ['name', 'role', 'interface', 'limit', 'scope'], 'type': 'object'}, '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'}, 'SetConstraints': {'additionalProperties': False, 'properties': {'application': {'type': 'string'}, 'constraints': {'$ref': '#/definitions/Value'}}, 'required': ['application', 'constraints'], 'type': 'object'}, 'StorageConstraints': {'additionalProperties': False, 'properties': {'count': {'type': 'integer'}, 'pool': {'type': 'string'}, 'size': {'type': 'integer'}}, 'type': 'object'}, 'StringResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'string'}}, 'required': ['result'], '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'}, 'Value': {'additionalProperties': False, 'properties': {'arch': {'type': 'string'}, 'container': {'type': 'string'}, 'cores': {'type': 'integer'}, 'cpu-power': {'type': 'integer'}, 'instance-type': {'type': 'string'}, 'mem': {'type': 'integer'}, 'root-disk': {'type': 'integer'}, 'spaces': {'items': {'type': 'string'}, 'type': 'array'}, 'tags': {'items': {'type': 'string'}, 'type': 'array'}, 'virt-type': {'type': 'string'}}, 'type': 'object'}}, 'properties': {'AddRelation': {'properties': {'Params': {'$ref': '#/definitions/AddRelation'}, 'Result': {'$ref': '#/definitions/AddRelationResults'}}, 'type': 'object'}, 'AddUnits': {'properties': {'Params': {'$ref': '#/definitions/AddApplicationUnits'}, 'Result': {'$ref': '#/definitions/AddApplicationUnitsResults'}}, 'type': 'object'}, 'CharmRelations': {'properties': {'Params': {'$ref': '#/definitions/ApplicationCharmRelations'}, 'Result': {'$ref': '#/definitions/ApplicationCharmRelationsResults'}}, 'type': 'object'}, 'Consume': {'properties': {'Params': {'$ref': '#/definitions/ConsumeApplicationArgs'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'Deploy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationsDeploy'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/ApplicationDestroy'}}, 'type': 'object'}, 'DestroyApplication': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/DestroyApplicationResults'}}, 'type': 'object'}, 'DestroyRelation': {'properties': {'Params': {'$ref': '#/definitions/DestroyRelation'}}, 'type': 'object'}, 'DestroyUnit': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/DestroyUnitResults'}}, 'type': 'object'}, 'DestroyUnits': {'properties': {'Params': {'$ref': '#/definitions/DestroyApplicationUnits'}}, 'type': 'object'}, 'Expose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationExpose'}}, 'type': 'object'}, 'Get': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, 'Result': {'$ref': '#/definitions/ApplicationGetResults'}}, 'type': 'object'}, 'GetCharmURL': {'properties': {'Params': {'$ref': '#/definitions/ApplicationGet'}, 'Result': {'$ref': '#/definitions/StringResult'}}, 'type': 'object'}, 'GetConstraints': {'properties': {'Params': {'$ref': '#/definitions/GetApplicationConstraints'}, 'Result': {'$ref': '#/definitions/GetConstraintsResults'}}, 'type': 'object'}, 'Set': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSet'}}, 'type': 'object'}, 'SetCharm': {'properties': {'Params': {'$ref': '#/definitions/ApplicationSetCharm'}}, 'type': 'object'}, 'SetConstraints': {'properties': {'Params': {'$ref': '#/definitions/SetConstraints'}}, 'type': 'object'}, 'SetMetricCredentials': {'properties': {'Params': {'$ref': '#/definitions/ApplicationMetricCredentials'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'Unexpose': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnexpose'}}, 'type': 'object'}, 'Unset': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUnset'}}, 'type': 'object'}, 'Update': {'properties': {'Params': {'$ref': '#/definitions/ApplicationUpdate'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(AddRelationResults) async def AddRelation(self, endpoints=None): ''' endpoints : typing.Sequence[str] Returns -> typing.Mapping[str, ~CharmRelation] ''' if endpoints is not None and not isinstance(endpoints, (bytes, str, list)): raise Exception("Expected endpoints to be a Sequence, received: {}".format(type(endpoints))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='AddRelation', version=5, params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(AddApplicationUnitsResults) async def AddUnits(self, application=None, attach_storage=None, num_units=None, placement=None): ''' application : str attach_storage : typing.Sequence[str] num_units : int placement : typing.Sequence[~Placement] Returns -> typing.Sequence[str] ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if attach_storage is not None and not isinstance(attach_storage, (bytes, str, list)): raise Exception("Expected attach_storage to be a Sequence, received: {}".format(type(attach_storage))) if num_units is not None and not isinstance(num_units, int): raise Exception("Expected num_units to be a int, received: {}".format(type(num_units))) if placement is not None and not isinstance(placement, (bytes, str, list)): raise Exception("Expected placement to be a Sequence, received: {}".format(type(placement))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='AddUnits', version=5, params=_params) _params['application'] = application _params['attach-storage'] = attach_storage _params['num-units'] = num_units _params['placement'] = placement reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ApplicationCharmRelationsResults) async def CharmRelations(self, application=None): ''' application : str Returns -> typing.Sequence[str] ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='CharmRelations', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def Consume(self, args=None): ''' args : typing.Sequence[~ConsumeApplicationArg] Returns -> typing.Sequence[~ErrorResult] ''' if args is not None and not isinstance(args, (bytes, str, list)): raise Exception("Expected args to be a Sequence, received: {}".format(type(args))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Consume', version=5, params=_params) _params['args'] = args reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def Deploy(self, applications=None): ''' applications : typing.Sequence[~ApplicationDeploy] Returns -> typing.Sequence[~ErrorResult] ''' if applications is not None and not isinstance(applications, (bytes, str, list)): raise Exception("Expected applications to be a Sequence, received: {}".format(type(applications))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Deploy', version=5, params=_params) _params['applications'] = applications reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Destroy(self, application=None): ''' application : str Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Destroy', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(DestroyApplicationResults) async def DestroyApplication(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~DestroyApplicationResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='DestroyApplication', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def DestroyRelation(self, endpoints=None): ''' endpoints : typing.Sequence[str] Returns -> None ''' if endpoints is not None and not isinstance(endpoints, (bytes, str, list)): raise Exception("Expected endpoints to be a Sequence, received: {}".format(type(endpoints))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='DestroyRelation', version=5, params=_params) _params['endpoints'] = endpoints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(DestroyUnitResults) async def DestroyUnit(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~DestroyUnitResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='DestroyUnit', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def DestroyUnits(self, unit_names=None): ''' unit_names : typing.Sequence[str] Returns -> None ''' if unit_names is not None and not isinstance(unit_names, (bytes, str, list)): raise Exception("Expected unit_names to be a Sequence, received: {}".format(type(unit_names))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='DestroyUnits', version=5, params=_params) _params['unit-names'] = unit_names reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Expose(self, application=None): ''' application : str Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Expose', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ApplicationGetResults) async def Get(self, application=None): ''' application : str Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')] ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Get', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringResult) async def GetCharmURL(self, application=None): ''' application : str Returns -> typing.Union[_ForwardRef('Error'), str] ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='GetCharmURL', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(GetConstraintsResults) async def GetConstraints(self, application=None): ''' application : str Returns -> Value ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='GetConstraints', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Set(self, application=None, options=None): ''' application : str options : typing.Mapping[str, str] Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if options is not None and not isinstance(options, dict): raise Exception("Expected options to be a Mapping, received: {}".format(type(options))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Set', version=5, params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def SetCharm(self, application=None, channel=None, charm_url=None, config_settings=None, config_settings_yaml=None, force_series=None, force_units=None, resource_ids=None, storage_constraints=None): ''' application : str channel : str charm_url : str config_settings : typing.Mapping[str, str] config_settings_yaml : str force_series : bool force_units : bool resource_ids : typing.Mapping[str, str] storage_constraints : typing.Mapping[str, ~StorageConstraints] Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if channel is not None and not isinstance(channel, (bytes, str)): raise Exception("Expected channel to be a str, received: {}".format(type(channel))) if charm_url is not None and not isinstance(charm_url, (bytes, str)): raise Exception("Expected charm_url to be a str, received: {}".format(type(charm_url))) if config_settings is not None and not isinstance(config_settings, dict): raise Exception("Expected config_settings to be a Mapping, received: {}".format(type(config_settings))) if config_settings_yaml is not None and not isinstance(config_settings_yaml, (bytes, str)): raise Exception("Expected config_settings_yaml to be a str, received: {}".format(type(config_settings_yaml))) if force_series is not None and not isinstance(force_series, bool): raise Exception("Expected force_series to be a bool, received: {}".format(type(force_series))) if force_units is not None and not isinstance(force_units, bool): raise Exception("Expected force_units to be a bool, received: {}".format(type(force_units))) if resource_ids is not None and not isinstance(resource_ids, dict): raise Exception("Expected resource_ids to be a Mapping, received: {}".format(type(resource_ids))) if storage_constraints is not None and not isinstance(storage_constraints, dict): raise Exception("Expected storage_constraints to be a Mapping, received: {}".format(type(storage_constraints))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='SetCharm', version=5, params=_params) _params['application'] = application _params['channel'] = channel _params['charm-url'] = charm_url _params['config-settings'] = config_settings _params['config-settings-yaml'] = config_settings_yaml _params['force-series'] = force_series _params['force-units'] = force_units _params['resource-ids'] = resource_ids _params['storage-constraints'] = storage_constraints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def SetConstraints(self, application=None, constraints=None): ''' application : str constraints : Value Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if constraints is not None and not isinstance(constraints, (dict, Value)): raise Exception("Expected constraints to be a Value, received: {}".format(type(constraints))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='SetConstraints', version=5, params=_params) _params['application'] = application _params['constraints'] = constraints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def SetMetricCredentials(self, creds=None): ''' creds : typing.Sequence[~ApplicationMetricCredential] Returns -> typing.Sequence[~ErrorResult] ''' if creds is not None and not isinstance(creds, (bytes, str, list)): raise Exception("Expected creds to be a Sequence, received: {}".format(type(creds))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='SetMetricCredentials', version=5, params=_params) _params['creds'] = creds reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Unexpose(self, application=None): ''' application : str Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Unexpose', version=5, params=_params) _params['application'] = application reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Unset(self, application=None, options=None): ''' application : str options : typing.Sequence[str] Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if options is not None and not isinstance(options, (bytes, str, list)): raise Exception("Expected options to be a Sequence, received: {}".format(type(options))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Unset', version=5, params=_params) _params['application'] = application _params['options'] = options reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def Update(self, application=None, charm_url=None, constraints=None, force_charm_url=None, force_series=None, min_units=None, settings=None, settings_yaml=None): ''' application : str charm_url : str constraints : Value force_charm_url : bool force_series : bool min_units : int settings : typing.Mapping[str, str] settings_yaml : str Returns -> None ''' if application is not None and not isinstance(application, (bytes, str)): raise Exception("Expected application to be a str, received: {}".format(type(application))) if charm_url is not None and not isinstance(charm_url, (bytes, str)): raise Exception("Expected charm_url to be a str, received: {}".format(type(charm_url))) if constraints is not None and not isinstance(constraints, (dict, Value)): raise Exception("Expected constraints to be a Value, received: {}".format(type(constraints))) if force_charm_url is not None and not isinstance(force_charm_url, bool): raise Exception("Expected force_charm_url to be a bool, received: {}".format(type(force_charm_url))) if force_series is not None and not isinstance(force_series, bool): raise Exception("Expected force_series to be a bool, received: {}".format(type(force_series))) if min_units is not None and not isinstance(min_units, int): raise Exception("Expected min_units to be a int, received: {}".format(type(min_units))) if settings is not None and not isinstance(settings, dict): raise Exception("Expected settings to be a Mapping, received: {}".format(type(settings))) if settings_yaml is not None and not isinstance(settings_yaml, (bytes, str)): raise Exception("Expected settings_yaml to be a str, received: {}".format(type(settings_yaml))) # map input types to rpc msg _params = dict() msg = dict(type='Application', request='Update', version=5, params=_params) _params['application'] = application _params['charm-url'] = charm_url _params['constraints'] = constraints _params['force-charm-url'] = force_charm_url _params['force-series'] = force_series _params['min-units'] = min_units _params['settings'] = settings _params['settings-yaml'] = settings_yaml reply = await self.rpc(msg) return reply
[docs]class CloudFacade(Type): name = 'Cloud' version = 5 schema = {'definitions': {'AddCloudArgs': {'additionalProperties': False, 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, 'name': {'type': 'string'}}, 'required': ['cloud', 'name'], 'type': 'object'}, 'Cloud': {'additionalProperties': False, 'properties': {'auth-types': {'items': {'type': 'string'}, 'type': 'array'}, 'ca-certificates': {'items': {'type': 'string'}, 'type': 'array'}, 'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'endpoint': {'type': 'string'}, 'host-cloud-region': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'region-config': {'patternProperties': {'.*': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'type': 'object'}, 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, 'type': 'array'}, 'storage-endpoint': {'type': 'string'}, 'type': {'type': 'string'}}, 'required': ['type'], 'type': 'object'}, 'CloudCredential': {'additionalProperties': False, 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'auth-type': {'type': 'string'}, 'redacted': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['auth-type'], 'type': 'object'}, 'CloudCredentialArg': {'additionalProperties': False, 'properties': {'cloud-name': {'type': 'string'}, 'credential-name': {'type': 'string'}}, 'required': ['cloud-name', 'credential-name'], 'type': 'object'}, 'CloudCredentialArgs': {'additionalProperties': False, 'properties': {'credentials': {'items': {'$ref': '#/definitions/CloudCredentialArg'}, 'type': 'array'}, 'include-secrets': {'type': 'boolean'}}, 'required': ['include-secrets'], 'type': 'object'}, 'CloudCredentialResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/CloudCredential'}}, 'type': 'object'}, 'CloudCredentialResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialResult'}, 'type': 'array'}}, 'type': 'object'}, 'CloudDetails': {'additionalProperties': False, 'properties': {'auth-types': {'items': {'type': 'string'}, 'type': 'array'}, 'endpoint': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'regions': {'items': {'$ref': '#/definitions/CloudRegion'}, 'type': 'array'}, 'storage-endpoint': {'type': 'string'}, 'type': {'type': 'string'}}, 'required': ['type'], 'type': 'object'}, 'CloudInfo': {'additionalProperties': False, 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, 'users': {'items': {'$ref': '#/definitions/CloudUserInfo'}, 'type': 'array'}}, 'required': ['CloudDetails', 'users'], 'type': 'object'}, 'CloudInfoResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/CloudInfo'}}, 'type': 'object'}, 'CloudInfoResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CloudInfoResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'CloudInstanceTypesConstraint': {'additionalProperties': False, 'properties': {'cloud-tag': {'type': 'string'}, 'constraints': {'$ref': '#/definitions/Value'}, 'region': {'type': 'string'}}, 'required': ['cloud-tag', 'region'], 'type': 'object'}, 'CloudInstanceTypesConstraints': {'additionalProperties': False, 'properties': {'constraints': {'items': {'$ref': '#/definitions/CloudInstanceTypesConstraint'}, 'type': 'array'}}, 'required': ['constraints'], 'type': 'object'}, 'CloudRegion': {'additionalProperties': False, 'properties': {'endpoint': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'name': {'type': 'string'}, 'storage-endpoint': {'type': 'string'}}, 'required': ['name'], 'type': 'object'}, 'CloudResult': {'additionalProperties': False, 'properties': {'cloud': {'$ref': '#/definitions/Cloud'}, 'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, 'CloudResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'}, 'type': 'array'}}, 'type': 'object'}, 'CloudUserInfo': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'display-name': {'type': 'string'}, 'user': {'type': 'string'}}, 'required': ['user', 'display-name', 'access'], 'type': 'object'}, 'CloudsResult': {'additionalProperties': False, 'properties': {'clouds': {'patternProperties': {'.*': {'$ref': '#/definitions/Cloud'}}, 'type': 'object'}}, 'type': 'object'}, 'ControllerCredentialInfo': {'additionalProperties': False, 'properties': {'content': {'$ref': '#/definitions/CredentialContent'}, 'models': {'items': {'$ref': '#/definitions/ModelAccess'}, 'type': 'array'}}, 'type': 'object'}, 'CredentialContent': {'additionalProperties': False, 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'auth-type': {'type': 'string'}, 'cloud': {'type': 'string'}, 'name': {'type': 'string'}}, 'required': ['name', 'cloud', 'auth-type'], 'type': 'object'}, 'CredentialContentResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/ControllerCredentialInfo'}}, 'type': 'object'}, 'CredentialContentResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CredentialContentResult'}, 'type': 'array'}}, 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'message': {'type': 'string'}}, 'required': ['message', 'code'], 'type': 'object'}, 'ErrorResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, 'ErrorResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'InstanceType': {'additionalProperties': False, 'properties': {'arches': {'items': {'type': 'string'}, 'type': 'array'}, 'cost': {'type': 'integer'}, 'cpu-cores': {'type': 'integer'}, 'deprecated': {'type': 'boolean'}, 'memory': {'type': 'integer'}, 'name': {'type': 'string'}, 'root-disk': {'type': 'integer'}, 'virt-type': {'type': 'string'}}, 'required': ['arches', 'cpu-cores', 'memory'], 'type': 'object'}, 'InstanceTypesResult': {'additionalProperties': False, 'properties': {'cost-currency': {'type': 'string'}, 'cost-divisor': {'type': 'integer'}, 'cost-unit': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}, 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, 'type': 'array'}}, 'type': 'object'}, 'InstanceTypesResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ListCloudInfo': {'additionalProperties': False, 'properties': {'CloudDetails': {'$ref': '#/definitions/CloudDetails'}, 'user-access': {'type': 'string'}}, 'required': ['CloudDetails', 'user-access'], 'type': 'object'}, 'ListCloudInfoResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/ListCloudInfo'}}, 'type': 'object'}, 'ListCloudInfoResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ListCloudInfoResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ListCloudsRequest': {'additionalProperties': False, 'properties': {'all': {'type': 'boolean'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag'], 'type': 'object'}, 'ModelAccess': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'model': {'type': 'string'}}, 'type': 'object'}, 'ModifyCloudAccess': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'action': {'type': 'string'}, 'cloud-tag': {'type': 'string'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag', 'cloud-tag', 'action', 'access'], 'type': 'object'}, 'ModifyCloudAccessRequest': {'additionalProperties': False, 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyCloudAccess'}, 'type': 'array'}}, 'required': ['changes'], 'type': 'object'}, 'RevokeCredentialArg': {'additionalProperties': False, 'properties': {'force': {'type': 'boolean'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'force'], 'type': 'object'}, 'RevokeCredentialArgs': {'additionalProperties': False, 'properties': {'credentials': {'items': {'$ref': '#/definitions/RevokeCredentialArg'}, 'type': 'array'}}, 'required': ['credentials'], 'type': 'object'}, 'StringsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'items': {'type': 'string'}, 'type': 'array'}}, 'type': 'object'}, 'StringsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'TaggedCredential': {'additionalProperties': False, 'properties': {'credential': {'$ref': '#/definitions/CloudCredential'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'credential'], 'type': 'object'}, 'TaggedCredentials': {'additionalProperties': False, 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, 'type': 'array'}}, 'type': 'object'}, 'UpdateCloudArgs': {'additionalProperties': False, 'properties': {'clouds': {'items': {'$ref': '#/definitions/AddCloudArgs'}, 'type': 'array'}}, 'required': ['clouds'], 'type': 'object'}, 'UpdateCredentialArgs': {'additionalProperties': False, 'properties': {'credentials': {'items': {'$ref': '#/definitions/TaggedCredential'}, 'type': 'array'}, 'force': {'type': 'boolean'}}, 'required': ['credentials', 'force'], 'type': 'object'}, 'UpdateCredentialModelResult': {'additionalProperties': False, 'properties': {'errors': {'items': {'$ref': '#/definitions/ErrorResult'}, 'type': 'array'}, 'name': {'type': 'string'}, 'uuid': {'type': 'string'}}, 'required': ['uuid', 'name'], 'type': 'object'}, 'UpdateCredentialResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'models': {'items': {'$ref': '#/definitions/UpdateCredentialModelResult'}, 'type': 'array'}, 'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'UpdateCredentialResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/UpdateCredentialResult'}, 'type': 'array'}}, 'type': 'object'}, 'UserCloud': {'additionalProperties': False, 'properties': {'cloud-tag': {'type': 'string'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag', 'cloud-tag'], 'type': 'object'}, 'UserClouds': {'additionalProperties': False, 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'}, 'type': 'array'}}, 'type': 'object'}, 'Value': {'additionalProperties': False, 'properties': {'arch': {'type': 'string'}, 'container': {'type': 'string'}, 'cores': {'type': 'integer'}, 'cpu-power': {'type': 'integer'}, 'instance-type': {'type': 'string'}, 'mem': {'type': 'integer'}, 'root-disk': {'type': 'integer'}, 'root-disk-source': {'type': 'string'}, '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': {'AddCloud': {'properties': {'Params': {'$ref': '#/definitions/AddCloudArgs'}}, 'type': 'object'}, 'AddCredentials': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'CheckCredentialsModels': {'properties': {'Params': {'$ref': '#/definitions/TaggedCredentials'}, 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, 'type': 'object'}, 'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/CloudResults'}}, 'type': 'object'}, 'CloudInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/CloudInfoResults'}}, 'type': 'object'}, 'Clouds': {'properties': {'Result': {'$ref': '#/definitions/CloudsResult'}}, 'type': 'object'}, 'Credential': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/CloudCredentialResults'}}, 'type': 'object'}, 'CredentialContents': {'properties': {'Params': {'$ref': '#/definitions/CloudCredentialArgs'}, 'Result': {'$ref': '#/definitions/CredentialContentResults'}}, 'type': 'object'}, 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/CloudInstanceTypesConstraints'}, 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, 'type': 'object'}, 'ListCloudInfo': {'properties': {'Params': {'$ref': '#/definitions/ListCloudsRequest'}, 'Result': {'$ref': '#/definitions/ListCloudInfoResults'}}, 'type': 'object'}, 'ModifyCloudAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyCloudAccessRequest'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'RemoveClouds': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'RevokeCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/RevokeCredentialArgs'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'UpdateCloud': {'properties': {'Params': {'$ref': '#/definitions/UpdateCloudArgs'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'UpdateCredentialsCheckModels': {'properties': {'Params': {'$ref': '#/definitions/UpdateCredentialArgs'}, 'Result': {'$ref': '#/definitions/UpdateCredentialResults'}}, 'type': 'object'}, 'UserCredentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'}, 'Result': {'$ref': '#/definitions/StringsResults'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(None) async def AddCloud(self, cloud=None, name=None): ''' cloud : Cloud name : str Returns -> None ''' if cloud is not None and not isinstance(cloud, (dict, Cloud)): raise Exception("Expected cloud to be a Cloud, received: {}".format(type(cloud))) if name is not None and not isinstance(name, (bytes, str)): raise Exception("Expected name to be a str, received: {}".format(type(name))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='AddCloud', version=5, params=_params) _params['cloud'] = cloud _params['name'] = name reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def AddCredentials(self, credentials=None): ''' credentials : typing.Sequence[~TaggedCredential] Returns -> typing.Sequence[~ErrorResult] ''' if credentials is not None and not isinstance(credentials, (bytes, str, list)): raise Exception("Expected credentials to be a Sequence, received: {}".format(type(credentials))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='AddCredentials', version=5, params=_params) _params['credentials'] = credentials reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(UpdateCredentialResults) async def CheckCredentialsModels(self, credentials=None): ''' credentials : typing.Sequence[~TaggedCredential] Returns -> typing.Sequence[~UpdateCredentialResult] ''' if credentials is not None and not isinstance(credentials, (bytes, str, list)): raise Exception("Expected credentials to be a Sequence, received: {}".format(type(credentials))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='CheckCredentialsModels', version=5, params=_params) _params['credentials'] = credentials reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudResults) async def Cloud(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~CloudResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='Cloud', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudInfoResults) async def CloudInfo(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~CloudInfoResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='CloudInfo', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudsResult) async def Clouds(self): ''' Returns -> typing.Mapping[str, ~Cloud] ''' # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='Clouds', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudCredentialResults) async def Credential(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~CloudCredentialResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='Credential', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CredentialContentResults) async def CredentialContents(self, credentials=None, include_secrets=None): ''' credentials : typing.Sequence[~CloudCredentialArg] include_secrets : bool Returns -> typing.Sequence[~CredentialContentResult] ''' if credentials is not None and not isinstance(credentials, (bytes, str, list)): raise Exception("Expected credentials to be a Sequence, received: {}".format(type(credentials))) if include_secrets is not None and not isinstance(include_secrets, bool): raise Exception("Expected include_secrets to be a bool, received: {}".format(type(include_secrets))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='CredentialContents', version=5, params=_params) _params['credentials'] = credentials _params['include-secrets'] = include_secrets reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(InstanceTypesResults) async def InstanceTypes(self, constraints=None): ''' constraints : typing.Sequence[~CloudInstanceTypesConstraint] Returns -> typing.Sequence[~InstanceTypesResult] ''' if constraints is not None and not isinstance(constraints, (bytes, str, list)): raise Exception("Expected constraints to be a Sequence, received: {}".format(type(constraints))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='InstanceTypes', version=5, params=_params) _params['constraints'] = constraints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ListCloudInfoResults) async def ListCloudInfo(self, all_=None, user_tag=None): ''' all_ : bool user_tag : str Returns -> typing.Sequence[~ListCloudInfoResult] ''' if all_ is not None and not isinstance(all_, bool): raise Exception("Expected all_ to be a bool, received: {}".format(type(all_))) if user_tag is not None and not isinstance(user_tag, (bytes, str)): raise Exception("Expected user_tag to be a str, received: {}".format(type(user_tag))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='ListCloudInfo', version=5, params=_params) _params['all'] = all_ _params['user-tag'] = user_tag reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def ModifyCloudAccess(self, changes=None): ''' changes : typing.Sequence[~ModifyCloudAccess] Returns -> typing.Sequence[~ErrorResult] ''' if changes is not None and not isinstance(changes, (bytes, str, list)): raise Exception("Expected changes to be a Sequence, received: {}".format(type(changes))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='ModifyCloudAccess', version=5, params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def RemoveClouds(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ErrorResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='RemoveClouds', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def RevokeCredentialsCheckModels(self, credentials=None): ''' credentials : typing.Sequence[~RevokeCredentialArg] Returns -> typing.Sequence[~ErrorResult] ''' if credentials is not None and not isinstance(credentials, (bytes, str, list)): raise Exception("Expected credentials to be a Sequence, received: {}".format(type(credentials))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='RevokeCredentialsCheckModels', version=5, params=_params) _params['credentials'] = credentials reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def UpdateCloud(self, clouds=None): ''' clouds : typing.Sequence[~AddCloudArgs] Returns -> typing.Sequence[~ErrorResult] ''' if clouds is not None and not isinstance(clouds, (bytes, str, list)): raise Exception("Expected clouds to be a Sequence, received: {}".format(type(clouds))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='UpdateCloud', version=5, params=_params) _params['clouds'] = clouds reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(UpdateCredentialResults) async def UpdateCredentialsCheckModels(self, credentials=None, force=None): ''' credentials : typing.Sequence[~TaggedCredential] force : bool Returns -> typing.Sequence[~UpdateCredentialResult] ''' if credentials is not None and not isinstance(credentials, (bytes, str, list)): raise Exception("Expected credentials to be a Sequence, received: {}".format(type(credentials))) if force is not None and not isinstance(force, bool): raise Exception("Expected force to be a bool, received: {}".format(type(force))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='UpdateCredentialsCheckModels', version=5, params=_params) _params['credentials'] = credentials _params['force'] = force reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsResults) async def UserCredentials(self, user_clouds=None): ''' user_clouds : typing.Sequence[~UserCloud] Returns -> typing.Sequence[~StringsResult] ''' if user_clouds is not None and not isinstance(user_clouds, (bytes, str, list)): raise Exception("Expected user_clouds to be a Sequence, received: {}".format(type(user_clouds))) # map input types to rpc msg _params = dict() msg = dict(type='Cloud', request='UserCredentials', version=5, params=_params) _params['user-clouds'] = user_clouds reply = await self.rpc(msg) return reply
[docs]class ControllerFacade(Type): name = 'Controller' version = 5 schema = {'definitions': {'AllWatcherId': {'additionalProperties': False, 'properties': {'watcher-id': {'type': 'string'}}, 'required': ['watcher-id'], 'type': 'object'}, 'CloudCredential': {'additionalProperties': False, 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'auth-type': {'type': 'string'}, 'redacted': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['auth-type'], 'type': 'object'}, 'CloudSpec': {'additionalProperties': False, 'properties': {'cacertificates': {'items': {'type': 'string'}, 'type': 'array'}, 'credential': {'$ref': '#/definitions/CloudCredential'}, 'endpoint': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'name': {'type': 'string'}, 'region': {'type': 'string'}, 'storage-endpoint': {'type': 'string'}, 'type': {'type': 'string'}}, 'required': ['type', 'name'], 'type': 'object'}, 'CloudSpecResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/CloudSpec'}}, 'type': 'object'}, 'CloudSpecResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, 'type': 'array'}}, 'type': 'object'}, 'ConfigValue': {'additionalProperties': False, 'properties': {'source': {'type': 'string'}, 'value': {'additionalProperties': True, 'type': 'object'}}, 'required': ['value', 'source'], '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'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ControllerConfigSet': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'DestroyControllerArgs': {'additionalProperties': False, 'properties': {'destroy-models': {'type': 'boolean'}, 'destroy-storage': {'type': 'boolean'}}, 'required': ['destroy-models'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'$ref': '#/definitions/ErrorInfo'}, 'message': {'type': 'string'}}, 'required': ['message', 'code'], 'type': 'object'}, 'ErrorInfo': {'additionalProperties': False, 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, 'macaroon-path': {'type': 'string'}}, 'type': 'object'}, 'ErrorResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, 'ErrorResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'HostedModelConfig': {'additionalProperties': False, 'properties': {'cloud-spec': {'$ref': '#/definitions/CloudSpec'}, 'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'error': {'$ref': '#/definitions/Error'}, 'name': {'type': 'string'}, 'owner': {'type': 'string'}}, 'required': ['name', 'owner'], 'type': 'object'}, 'HostedModelConfigsResults': {'additionalProperties': False, 'properties': {'models': {'items': {'$ref': '#/definitions/HostedModelConfig'}, 'type': 'array'}}, 'required': ['models'], 'type': 'object'}, 'InitiateMigrationArgs': {'additionalProperties': False, 'properties': {'specs': {'items': {'$ref': '#/definitions/MigrationSpec'}, 'type': 'array'}}, 'required': ['specs'], 'type': 'object'}, 'InitiateMigrationResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'migration-id': {'type': 'string'}, 'model-tag': {'type': 'string'}}, 'required': ['model-tag', 'migration-id'], 'type': 'object'}, 'InitiateMigrationResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/InitiateMigrationResult'}, 'type': 'array'}}, 'required': ['results'], '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'}, 'MigrationSpec': {'additionalProperties': False, 'properties': {'model-tag': {'type': 'string'}, 'target-info': {'$ref': '#/definitions/MigrationTargetInfo'}}, 'required': ['model-tag', 'target-info'], 'type': 'object'}, 'MigrationTargetInfo': {'additionalProperties': False, 'properties': {'addrs': {'items': {'type': 'string'}, 'type': 'array'}, 'auth-tag': {'type': 'string'}, 'ca-cert': {'type': 'string'}, 'controller-tag': {'type': 'string'}, 'macaroons': {'type': 'string'}, 'password': {'type': 'string'}}, 'required': ['controller-tag', 'addrs', 'ca-cert', 'auth-tag'], 'type': 'object'}, 'Model': {'additionalProperties': False, 'properties': {'name': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'type': {'type': 'string'}, 'uuid': {'type': 'string'}}, 'required': ['name', 'uuid', 'type', 'owner-tag'], 'type': 'object'}, 'ModelBlockInfo': {'additionalProperties': False, 'properties': {'blocks': {'items': {'type': 'string'}, 'type': 'array'}, 'model-uuid': {'type': 'string'}, 'name': {'type': 'string'}, 'owner-tag': {'type': 'string'}}, 'required': ['name', 'model-uuid', 'owner-tag', 'blocks'], 'type': 'object'}, 'ModelBlockInfoList': {'additionalProperties': False, 'properties': {'models': {'items': {'$ref': '#/definitions/ModelBlockInfo'}, 'type': 'array'}}, 'type': 'object'}, 'ModelConfigResults': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ConfigValue'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ModelFilesystemInfo': {'additionalProperties': False, 'properties': {'detachable': {'type': 'boolean'}, 'id': {'type': 'string'}, 'message': {'type': 'string'}, 'provider-id': {'type': 'string'}, 'status': {'type': 'string'}}, 'required': ['id'], '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'}, 'ModelStatus': {'additionalProperties': False, 'properties': {'application-count': {'type': 'integer'}, 'error': {'$ref': '#/definitions/Error'}, 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, 'type': 'array'}, 'hosted-machine-count': {'type': 'integer'}, 'life': {'type': 'string'}, 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, 'type': 'array'}, 'model-tag': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, 'type': 'array'}}, 'required': ['model-tag', 'life', 'hosted-machine-count', 'application-count', 'owner-tag'], 'type': 'object'}, 'ModelStatusResults': {'additionalProperties': False, 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, 'type': 'array'}}, 'required': ['models'], 'type': 'object'}, 'ModelTag': {'additionalProperties': False, 'type': 'object'}, 'ModelVolumeInfo': {'additionalProperties': False, 'properties': {'detachable': {'type': 'boolean'}, 'id': {'type': 'string'}, 'message': {'type': 'string'}, 'provider-id': {'type': 'string'}, 'status': {'type': 'string'}}, 'required': ['id'], 'type': 'object'}, 'ModifyControllerAccess': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'action': {'type': 'string'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag', 'action', 'access'], 'type': 'object'}, 'ModifyControllerAccessRequest': {'additionalProperties': False, 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyControllerAccess'}, 'type': 'array'}}, 'required': ['changes'], 'type': 'object'}, 'RemoveBlocksArgs': {'additionalProperties': False, 'properties': {'all': {'type': 'boolean'}}, 'required': ['all'], 'type': 'object'}, 'UserAccess': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag', 'access'], 'type': 'object'}, 'UserAccessResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/UserAccess'}}, 'type': 'object'}, 'UserAccessResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/UserAccessResult'}, 'type': 'array'}}, 'type': 'object'}, 'UserModel': {'additionalProperties': False, 'properties': {'last-connection': {'format': 'date-time', 'type': 'string'}, 'model': {'$ref': '#/definitions/Model'}}, 'required': ['model', 'last-connection'], 'type': 'object'}, 'UserModelList': {'additionalProperties': False, 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, 'type': 'array'}}, 'required': ['user-models'], 'type': 'object'}}, 'properties': {'AllModels': {'properties': {'Result': {'$ref': '#/definitions/UserModelList'}}, 'type': 'object'}, 'CloudSpec': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/CloudSpecResults'}}, 'type': 'object'}, 'ConfigSet': {'properties': {'Params': {'$ref': '#/definitions/ControllerConfigSet'}}, 'type': 'object'}, 'ControllerAPIInfoForModels': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ControllerAPIInfoResults'}}, 'type': 'object'}, 'ControllerConfig': {'properties': {'Result': {'$ref': '#/definitions/ControllerConfigResult'}}, 'type': 'object'}, 'DestroyController': {'properties': {'Params': {'$ref': '#/definitions/DestroyControllerArgs'}}, 'type': 'object'}, 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, 'type': 'object'}, 'GetControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/UserAccessResults'}}, 'type': 'object'}, 'HostedModelConfigs': {'properties': {'Result': {'$ref': '#/definitions/HostedModelConfigsResults'}}, 'type': 'object'}, 'InitiateMigration': {'properties': {'Params': {'$ref': '#/definitions/InitiateMigrationArgs'}, 'Result': {'$ref': '#/definitions/InitiateMigrationResults'}}, 'type': 'object'}, 'ListBlockedModels': {'properties': {'Result': {'$ref': '#/definitions/ModelBlockInfoList'}}, 'type': 'object'}, 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResults'}}, 'type': 'object'}, 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, 'type': 'object'}, 'ModifyControllerAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyControllerAccessRequest'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'RemoveBlocks': {'properties': {'Params': {'$ref': '#/definitions/RemoveBlocksArgs'}}, 'type': 'object'}, 'WatchAllModels': {'properties': {'Result': {'$ref': '#/definitions/AllWatcherId'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(UserModelList) async def AllModels(self): ''' Returns -> typing.Sequence[~UserModel] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='AllModels', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudSpecResults) async def CloudSpec(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~CloudSpecResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='CloudSpec', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def ConfigSet(self, config=None): ''' config : typing.Mapping[str, typing.Any] Returns -> None ''' if config is not None and not isinstance(config, dict): raise Exception("Expected config to be a Mapping, received: {}".format(type(config))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ConfigSet', version=5, params=_params) _params['config'] = config reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ControllerAPIInfoResults) async def ControllerAPIInfoForModels(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ControllerAPIInfoResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ControllerAPIInfoForModels', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ControllerConfigResult) async def ControllerConfig(self): ''' Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ControllerConfig', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def DestroyController(self, destroy_models=None, destroy_storage=None): ''' destroy_models : bool destroy_storage : bool Returns -> None ''' if destroy_models is not None and not isinstance(destroy_models, bool): raise Exception("Expected destroy_models to be a bool, received: {}".format(type(destroy_models))) if destroy_storage is not None and not isinstance(destroy_storage, bool): raise Exception("Expected destroy_storage to be a bool, received: {}".format(type(destroy_storage))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='DestroyController', version=5, params=_params) _params['destroy-models'] = destroy_models _params['destroy-storage'] = destroy_storage reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudSpecResult) async def GetCloudSpec(self): ''' Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='GetCloudSpec', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(UserAccessResults) async def GetControllerAccess(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~UserAccessResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='GetControllerAccess', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(HostedModelConfigsResults) async def HostedModelConfigs(self): ''' Returns -> typing.Sequence[~HostedModelConfig] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='HostedModelConfigs', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(InitiateMigrationResults) async def InitiateMigration(self, specs=None): ''' specs : typing.Sequence[~MigrationSpec] Returns -> typing.Sequence[~InitiateMigrationResult] ''' if specs is not None and not isinstance(specs, (bytes, str, list)): raise Exception("Expected specs to be a Sequence, received: {}".format(type(specs))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='InitiateMigration', version=5, params=_params) _params['specs'] = specs reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelBlockInfoList) async def ListBlockedModels(self): ''' Returns -> typing.Sequence[~ModelBlockInfo] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ListBlockedModels', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelConfigResults) async def ModelConfig(self): ''' Returns -> typing.Mapping[str, ~ConfigValue] ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ModelConfig', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelStatusResults) async def ModelStatus(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ModelStatus] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ModelStatus', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def ModifyControllerAccess(self, changes=None): ''' changes : typing.Sequence[~ModifyControllerAccess] Returns -> typing.Sequence[~ErrorResult] ''' if changes is not None and not isinstance(changes, (bytes, str, list)): raise Exception("Expected changes to be a Sequence, received: {}".format(type(changes))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='ModifyControllerAccess', version=5, params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(None) async def RemoveBlocks(self, all_=None): ''' all_ : bool Returns -> None ''' if all_ is not None and not isinstance(all_, bool): raise Exception("Expected all_ to be a bool, received: {}".format(type(all_))) # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='RemoveBlocks', version=5, params=_params) _params['all'] = all_ reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(AllWatcherId) async def WatchAllModels(self): ''' Returns -> str ''' # map input types to rpc msg _params = dict() msg = dict(type='Controller', request='WatchAllModels', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs]class FirewallerFacade(Type): name = 'Firewaller' version = 5 schema = {'definitions': {'BoolResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'boolean'}}, 'required': ['result'], 'type': 'object'}, 'BoolResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'CloudCredential': {'additionalProperties': False, 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'auth-type': {'type': 'string'}, 'redacted': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['auth-type'], 'type': 'object'}, 'CloudSpec': {'additionalProperties': False, 'properties': {'cacertificates': {'items': {'type': 'string'}, 'type': 'array'}, 'credential': {'$ref': '#/definitions/CloudCredential'}, 'endpoint': {'type': 'string'}, 'identity-endpoint': {'type': 'string'}, 'name': {'type': 'string'}, 'region': {'type': 'string'}, 'storage-endpoint': {'type': 'string'}, 'type': {'type': 'string'}}, 'required': ['type', 'name'], 'type': 'object'}, 'CloudSpecResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/CloudSpec'}}, 'type': 'object'}, 'CloudSpecResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/CloudSpecResult'}, 'type': 'array'}}, 'type': 'object'}, 'ControllerAPIInfoResult': {'additionalProperties': False, 'properties': {'addresses': {'items': {'type': 'string'}, 'type': 'array'}, 'cacert': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}}, 'required': ['addresses', 'cacert'], 'type': 'object'}, 'ControllerAPIInfoResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ControllerAPIInfoResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ControllerConfigResult': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'EntityStatusArgs': {'additionalProperties': False, 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'info': {'type': 'string'}, 'status': {'type': 'string'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'status', 'info', 'data'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'message': {'type': 'string'}}, 'required': ['message', 'code'], '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'}, 'FirewallRule': {'additionalProperties': False, 'properties': {'known-service': {'type': 'string'}, 'whitelist-cidrs': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['known-service'], 'type': 'object'}, 'KnownServiceArgs': {'additionalProperties': False, 'properties': {'known-services': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['known-services'], 'type': 'object'}, 'LifeResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'life': {'type': 'string'}}, 'required': ['life'], 'type': 'object'}, 'LifeResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ListFirewallRulesResults': {'additionalProperties': False, 'properties': {'Rules': {'items': {'$ref': '#/definitions/FirewallRule'}, 'type': 'array'}}, 'required': ['Rules'], 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'MacaroonResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/Macaroon'}}, 'type': 'object'}, 'MacaroonResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/MacaroonResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'MachinePortRange': {'additionalProperties': False, 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, 'relation-tag': {'type': 'string'}, 'unit-tag': {'type': 'string'}}, 'required': ['unit-tag', 'relation-tag', 'port-range'], 'type': 'object'}, 'MachinePorts': {'additionalProperties': False, 'properties': {'machine-tag': {'type': 'string'}, 'subnet-tag': {'type': 'string'}}, 'required': ['machine-tag', 'subnet-tag'], 'type': 'object'}, 'MachinePortsParams': {'additionalProperties': False, 'properties': {'params': {'items': {'$ref': '#/definitions/MachinePorts'}, 'type': 'array'}}, 'required': ['params'], 'type': 'object'}, 'MachinePortsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, 'type': 'array'}}, 'required': ['ports'], 'type': 'object'}, 'MachinePortsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ModelConfigResult': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ModelTag': {'additionalProperties': False, 'type': 'object'}, 'NotifyWatchResult': {'additionalProperties': False, 'properties': {'NotifyWatcherId': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}}, 'required': ['NotifyWatcherId'], 'type': 'object'}, 'NotifyWatchResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'PortRange': {'additionalProperties': False, 'properties': {'from-port': {'type': 'integer'}, 'protocol': {'type': 'string'}, 'to-port': {'type': 'integer'}}, 'required': ['from-port', 'to-port', 'protocol'], 'type': 'object'}, 'SetStatus': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'StringResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'string'}}, 'required': ['result'], 'type': 'object'}, 'StringResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StringsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'items': {'type': 'string'}, 'type': 'array'}}, 'type': 'object'}, 'StringsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StringsWatchResult': {'additionalProperties': False, 'properties': {'changes': {'items': {'type': 'string'}, 'type': 'array'}, 'error': {'$ref': '#/definitions/Error'}, 'watcher-id': {'type': 'string'}}, 'required': ['watcher-id'], 'type': 'object'}, 'StringsWatchResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}}, 'properties': {'AreManuallyProvisioned': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/BoolResults'}}, 'type': 'object'}, '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'}, 'FirewallRules': {'properties': {'Params': {'$ref': '#/definitions/KnownServiceArgs'}, 'Result': {'$ref': '#/definitions/ListFirewallRulesResults'}}, 'type': 'object'}, 'GetAssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'GetCloudSpec': {'properties': {'Params': {'$ref': '#/definitions/ModelTag'}, 'Result': {'$ref': '#/definitions/CloudSpecResult'}}, 'type': 'object'}, 'GetExposed': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/BoolResults'}}, 'type': 'object'}, 'GetMachineActiveSubnets': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsResults'}}, 'type': 'object'}, 'GetMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/MachinePortsParams'}, 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, 'type': 'object'}, 'InstanceId': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'Life': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/LifeResults'}}, 'type': 'object'}, 'MacaroonForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/MacaroonResults'}}, 'type': 'object'}, 'ModelConfig': {'properties': {'Result': {'$ref': '#/definitions/ModelConfigResult'}}, 'type': 'object'}, 'SetRelationsStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'Watch': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}, 'WatchCloudSpecsChanges': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}, 'WatchEgressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, 'type': 'object'}, 'WatchForModelConfigChanges': {'properties': {'Result': {'$ref': '#/definitions/NotifyWatchResult'}}, 'type': 'object'}, 'WatchIngressAddressesForRelations': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, 'type': 'object'}, 'WatchModelMachines': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}}, 'type': 'object'}, 'WatchOpenedPorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, 'type': 'object'}, 'WatchUnits': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringsWatchResults'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(BoolResults) async def AreManuallyProvisioned(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~BoolResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='AreManuallyProvisioned', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudSpecResults) async def CloudSpec(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~CloudSpecResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='CloudSpec', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ControllerAPIInfoResults) async def ControllerAPIInfoForModels(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ControllerAPIInfoResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='ControllerAPIInfoForModels', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ControllerConfigResult) async def ControllerConfig(self): ''' Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='ControllerConfig', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ListFirewallRulesResults) async def FirewallRules(self, known_services=None): ''' known_services : typing.Sequence[str] Returns -> typing.Sequence[~FirewallRule] ''' if known_services is not None and not isinstance(known_services, (bytes, str, list)): raise Exception("Expected known_services to be a Sequence, received: {}".format(type(known_services))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='FirewallRules', version=5, params=_params) _params['known-services'] = known_services reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringResults) async def GetAssignedMachine(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='GetAssignedMachine', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(CloudSpecResult) async def GetCloudSpec(self): ''' Returns -> typing.Union[_ForwardRef('Error'), _ForwardRef('CloudSpec')] ''' # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='GetCloudSpec', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(BoolResults) async def GetExposed(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~BoolResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='GetExposed', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsResults) async def GetMachineActiveSubnets(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringsResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='GetMachineActiveSubnets', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(MachinePortsResults) async def GetMachinePorts(self, params=None): ''' params : typing.Sequence[~MachinePorts] Returns -> typing.Sequence[~MachinePortsResult] ''' if params is not None and not isinstance(params, (bytes, str, list)): raise Exception("Expected params to be a Sequence, received: {}".format(type(params))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='GetMachinePorts', version=5, params=_params) _params['params'] = params reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringResults) async def InstanceId(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='InstanceId', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(LifeResults) async def Life(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~LifeResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='Life', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(MacaroonResults) async def MacaroonForRelations(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~MacaroonResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='MacaroonForRelations', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelConfigResult) async def ModelConfig(self): ''' Returns -> typing.Mapping[str, typing.Any] ''' # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='ModelConfig', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def SetRelationsStatus(self, entities=None): ''' entities : typing.Sequence[~EntityStatusArgs] Returns -> typing.Sequence[~ErrorResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='SetRelationsStatus', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(NotifyWatchResults) async def Watch(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~NotifyWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='Watch', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(NotifyWatchResults) async def WatchCloudSpecsChanges(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~NotifyWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchCloudSpecsChanges', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsWatchResults) async def WatchEgressAddressesForRelations(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringsWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchEgressAddressesForRelations', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(NotifyWatchResult) async def WatchForModelConfigChanges(self): ''' Returns -> typing.Union[str, _ForwardRef('Error')] ''' # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchForModelConfigChanges', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsWatchResults) async def WatchIngressAddressesForRelations(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringsWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchIngressAddressesForRelations', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsWatchResult) async def WatchModelMachines(self): ''' Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str] ''' # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchModelMachines', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsWatchResults) async def WatchOpenedPorts(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringsWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchOpenedPorts', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsWatchResults) async def WatchUnits(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~StringsWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='Firewaller', request='WatchUnits', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs]class MachineManagerFacade(Type): name = 'MachineManager' version = 5 schema = {'definitions': {'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'}, 'Constraints': {'additionalProperties': False, 'properties': {'Count': {'type': 'integer'}, 'Pool': {'type': 'string'}, 'Size': {'type': 'integer'}}, 'required': ['Pool', 'Size', 'Count'], 'type': 'object'}, 'DestroyMachineInfo': {'additionalProperties': False, 'properties': {'destroyed-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'destroyed-units': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'detached-storage': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyMachineResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'info': {'$ref': '#/definitions/DestroyMachineInfo'}}, 'type': 'object'}, 'DestroyMachineResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/DestroyMachineResult'}, 'type': 'array'}}, 'type': 'object'}, 'DestroyMachinesParams': {'additionalProperties': False, 'properties': {'force': {'type': 'boolean'}, 'keep': {'type': 'boolean'}, 'machine-tags': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['machine-tags'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'Error': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'info': {'$ref': '#/definitions/ErrorInfo'}, 'message': {'type': 'string'}}, 'required': ['message', 'code'], 'type': 'object'}, 'ErrorInfo': {'additionalProperties': False, 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'}, 'macaroon-path': {'type': 'string'}}, 'type': 'object'}, 'ErrorResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}}, 'type': 'object'}, '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'}, 'InstanceType': {'additionalProperties': False, 'properties': {'arches': {'items': {'type': 'string'}, 'type': 'array'}, 'cost': {'type': 'integer'}, 'cpu-cores': {'type': 'integer'}, 'deprecated': {'type': 'boolean'}, 'memory': {'type': 'integer'}, 'name': {'type': 'string'}, 'root-disk': {'type': 'integer'}, 'virt-type': {'type': 'string'}}, 'required': ['arches', 'cpu-cores', 'memory'], 'type': 'object'}, 'InstanceTypesResult': {'additionalProperties': False, 'properties': {'cost-currency': {'type': 'string'}, 'cost-divisor': {'type': 'integer'}, 'cost-unit': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}, 'instance-types': {'items': {'$ref': '#/definitions/InstanceType'}, 'type': 'array'}}, 'type': 'object'}, 'InstanceTypesResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/InstanceTypesResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'ModelInstanceTypesConstraint': {'additionalProperties': False, 'properties': {'value': {'$ref': '#/definitions/Value'}}, 'type': 'object'}, 'ModelInstanceTypesConstraints': {'additionalProperties': False, 'properties': {'constraints': {'items': {'$ref': '#/definitions/ModelInstanceTypesConstraint'}, 'type': 'array'}}, 'required': ['constraints'], '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'}, 'Placement': {'additionalProperties': False, 'properties': {'directive': {'type': 'string'}, 'scope': {'type': 'string'}}, 'required': ['scope', 'directive'], 'type': 'object'}, 'StringsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'items': {'type': 'string'}, 'type': 'array'}}, 'type': 'object'}, 'StringsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'UpdateSeriesArg': {'additionalProperties': False, 'properties': {'force': {'type': 'boolean'}, 'series': {'type': 'string'}, 'tag': {'$ref': '#/definitions/Entity'}}, 'required': ['tag', 'force', 'series'], 'type': 'object'}, 'UpdateSeriesArgs': {'additionalProperties': False, 'properties': {'args': {'items': {'$ref': '#/definitions/UpdateSeriesArg'}, 'type': 'array'}}, 'required': ['args'], 'type': 'object'}, 'UpgradeSeriesNotificationParam': {'additionalProperties': False, 'properties': {'entity': {'$ref': '#/definitions/Entity'}, 'watcher-id': {'type': 'string'}}, 'required': ['entity', 'watcher-id'], 'type': 'object'}, 'UpgradeSeriesNotificationParams': {'additionalProperties': False, 'properties': {'params': {'items': {'$ref': '#/definitions/UpgradeSeriesNotificationParam'}, 'type': 'array'}}, 'required': ['params'], 'type': 'object'}, 'UpgradeSeriesUnitsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'unit-names': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['unit-names'], 'type': 'object'}, 'UpgradeSeriesUnitsResults': {'additionalProperties': False, 'properties': {'Results': {'items': {'$ref': '#/definitions/UpgradeSeriesUnitsResult'}, 'type': 'array'}}, 'required': ['Results'], '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': {'AddMachines': {'properties': {'Params': {'$ref': '#/definitions/AddMachines'}, 'Result': {'$ref': '#/definitions/AddMachinesResults'}}, 'type': 'object'}, 'DestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, 'type': 'object'}, 'DestroyMachineWithParams': {'properties': {'Params': {'$ref': '#/definitions/DestroyMachinesParams'}, 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, 'type': 'object'}, 'ForceDestroyMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/DestroyMachineResults'}}, 'type': 'object'}, 'GetUpgradeSeriesMessages': {'properties': {'Params': {'$ref': '#/definitions/UpgradeSeriesNotificationParams'}, 'Result': {'$ref': '#/definitions/StringsResults'}}, 'type': 'object'}, 'InstanceTypes': {'properties': {'Params': {'$ref': '#/definitions/ModelInstanceTypesConstraints'}, 'Result': {'$ref': '#/definitions/InstanceTypesResults'}}, 'type': 'object'}, 'UpgradeSeriesComplete': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, 'Result': {'$ref': '#/definitions/ErrorResult'}}, 'type': 'object'}, 'UpgradeSeriesPrepare': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArg'}, 'Result': {'$ref': '#/definitions/ErrorResult'}}, 'type': 'object'}, 'UpgradeSeriesValidate': {'properties': {'Params': {'$ref': '#/definitions/UpdateSeriesArgs'}, 'Result': {'$ref': '#/definitions/UpgradeSeriesUnitsResults'}}, 'type': 'object'}, 'WatchUpgradeSeriesNotifications': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/NotifyWatchResults'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(AddMachinesResults) async def AddMachines(self, params=None): ''' params : typing.Sequence[~AddMachineParams] Returns -> typing.Sequence[~AddMachinesResult] ''' if params is not None and not isinstance(params, (bytes, str, list)): raise Exception("Expected params to be a Sequence, received: {}".format(type(params))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='AddMachines', version=5, params=_params) _params['params'] = params reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(DestroyMachineResults) async def DestroyMachine(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~DestroyMachineResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='DestroyMachine', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(DestroyMachineResults) async def DestroyMachineWithParams(self, force=None, keep=None, machine_tags=None): ''' force : bool keep : bool machine_tags : typing.Sequence[str] Returns -> typing.Sequence[~DestroyMachineResult] ''' if force is not None and not isinstance(force, bool): raise Exception("Expected force to be a bool, received: {}".format(type(force))) if keep is not None and not isinstance(keep, bool): raise Exception("Expected keep to be a bool, received: {}".format(type(keep))) if machine_tags is not None and not isinstance(machine_tags, (bytes, str, list)): raise Exception("Expected machine_tags to be a Sequence, received: {}".format(type(machine_tags))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='DestroyMachineWithParams', version=5, params=_params) _params['force'] = force _params['keep'] = keep _params['machine-tags'] = machine_tags reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(DestroyMachineResults) async def ForceDestroyMachine(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~DestroyMachineResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='ForceDestroyMachine', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringsResults) async def GetUpgradeSeriesMessages(self, params=None): ''' params : typing.Sequence[~UpgradeSeriesNotificationParam] Returns -> typing.Sequence[~StringsResult] ''' if params is not None and not isinstance(params, (bytes, str, list)): raise Exception("Expected params to be a Sequence, received: {}".format(type(params))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='GetUpgradeSeriesMessages', version=5, params=_params) _params['params'] = params reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(InstanceTypesResults) async def InstanceTypes(self, constraints=None): ''' constraints : typing.Sequence[~ModelInstanceTypesConstraint] Returns -> typing.Sequence[~InstanceTypesResult] ''' if constraints is not None and not isinstance(constraints, (bytes, str, list)): raise Exception("Expected constraints to be a Sequence, received: {}".format(type(constraints))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='InstanceTypes', version=5, params=_params) _params['constraints'] = constraints reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResult) async def UpgradeSeriesComplete(self, force=None, series=None, tag=None): ''' force : bool series : str tag : Entity Returns -> Error ''' if force is not None and not isinstance(force, bool): raise Exception("Expected force to be a bool, received: {}".format(type(force))) if series is not None and not isinstance(series, (bytes, str)): raise Exception("Expected series to be a str, received: {}".format(type(series))) if tag is not None and not isinstance(tag, (dict, Entity)): raise Exception("Expected tag to be a Entity, received: {}".format(type(tag))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='UpgradeSeriesComplete', version=5, params=_params) _params['force'] = force _params['series'] = series _params['tag'] = tag reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResult) async def UpgradeSeriesPrepare(self, force=None, series=None, tag=None): ''' force : bool series : str tag : Entity Returns -> Error ''' if force is not None and not isinstance(force, bool): raise Exception("Expected force to be a bool, received: {}".format(type(force))) if series is not None and not isinstance(series, (bytes, str)): raise Exception("Expected series to be a str, received: {}".format(type(series))) if tag is not None and not isinstance(tag, (dict, Entity)): raise Exception("Expected tag to be a Entity, received: {}".format(type(tag))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='UpgradeSeriesPrepare', version=5, params=_params) _params['force'] = force _params['series'] = series _params['tag'] = tag reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(UpgradeSeriesUnitsResults) async def UpgradeSeriesValidate(self, args=None): ''' args : typing.Sequence[~UpdateSeriesArg] Returns -> typing.Sequence[~UpgradeSeriesUnitsResult] ''' if args is not None and not isinstance(args, (bytes, str, list)): raise Exception("Expected args to be a Sequence, received: {}".format(type(args))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='UpgradeSeriesValidate', version=5, params=_params) _params['args'] = args reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(NotifyWatchResults) async def WatchUpgradeSeriesNotifications(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~NotifyWatchResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='MachineManager', request='WatchUpgradeSeriesNotifications', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs]class ModelManagerFacade(Type): name = 'ModelManager' version = 5 schema = {'definitions': {'ChangeModelCredentialParams': {'additionalProperties': False, 'properties': {'credential-tag': {'type': 'string'}, 'model-tag': {'type': 'string'}}, 'required': ['model-tag', 'credential-tag'], 'type': 'object'}, 'ChangeModelCredentialsParams': {'additionalProperties': False, 'properties': {'model-credentials': {'items': {'$ref': '#/definitions/ChangeModelCredentialParams'}, 'type': 'array'}}, 'required': ['model-credentials'], 'type': 'object'}, 'DestroyModelParams': {'additionalProperties': False, 'properties': {'destroy-storage': {'type': 'boolean'}, 'model-tag': {'type': 'string'}}, 'required': ['model-tag'], 'type': 'object'}, 'DestroyModelsParams': {'additionalProperties': False, 'properties': {'models': {'items': {'$ref': '#/definitions/DestroyModelParams'}, 'type': 'array'}}, 'required': ['models'], 'type': 'object'}, 'DumpModelRequest': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}, 'simplified': {'type': 'boolean'}}, 'required': ['entities', 'simplified'], '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'}, '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'}, 'MapResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['result'], 'type': 'object'}, 'MapResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/MapResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'Model': {'additionalProperties': False, 'properties': {'name': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'type': {'type': 'string'}, 'uuid': {'type': 'string'}}, 'required': ['name', 'uuid', 'type', 'owner-tag'], 'type': 'object'}, 'ModelCreateArgs': {'additionalProperties': False, 'properties': {'cloud-tag': {'type': 'string'}, 'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'credential': {'type': 'string'}, 'name': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'region': {'type': 'string'}}, 'required': ['name', 'owner-tag'], 'type': 'object'}, 'ModelDefaultValues': {'additionalProperties': False, 'properties': {'cloud-region': {'type': 'string'}, 'cloud-tag': {'type': 'string'}, 'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ModelDefaults': {'additionalProperties': False, 'properties': {'controller': {'additionalProperties': True, 'type': 'object'}, 'default': {'additionalProperties': True, 'type': 'object'}, 'regions': {'items': {'$ref': '#/definitions/RegionDefaults'}, 'type': 'array'}}, 'type': 'object'}, 'ModelDefaultsResult': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'$ref': '#/definitions/ModelDefaults'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ModelEntityCount': {'additionalProperties': False, 'properties': {'count': {'type': 'integer'}, 'entity': {'type': 'string'}}, 'required': ['entity', 'count'], 'type': 'object'}, 'ModelFilesystemInfo': {'additionalProperties': False, 'properties': {'detachable': {'type': 'boolean'}, 'id': {'type': 'string'}, 'message': {'type': 'string'}, 'provider-id': {'type': 'string'}, 'status': {'type': 'string'}}, 'required': ['id'], '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'}, 'ModelInfoResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/ModelInfo'}}, 'type': 'object'}, 'ModelInfoResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ModelInfoResult'}, 'type': 'array'}}, 'required': ['results'], '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'}, 'ModelSLAInfo': {'additionalProperties': False, 'properties': {'level': {'type': 'string'}, 'owner': {'type': 'string'}}, 'required': ['level', 'owner'], 'type': 'object'}, 'ModelStatus': {'additionalProperties': False, 'properties': {'application-count': {'type': 'integer'}, 'error': {'$ref': '#/definitions/Error'}, 'filesystems': {'items': {'$ref': '#/definitions/ModelFilesystemInfo'}, 'type': 'array'}, 'hosted-machine-count': {'type': 'integer'}, 'life': {'type': 'string'}, 'machines': {'items': {'$ref': '#/definitions/ModelMachineInfo'}, 'type': 'array'}, 'model-tag': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'volumes': {'items': {'$ref': '#/definitions/ModelVolumeInfo'}, 'type': 'array'}}, 'required': ['model-tag', 'life', 'hosted-machine-count', 'application-count', 'owner-tag'], 'type': 'object'}, 'ModelStatusResults': {'additionalProperties': False, 'properties': {'models': {'items': {'$ref': '#/definitions/ModelStatus'}, 'type': 'array'}}, 'required': ['models'], 'type': 'object'}, 'ModelSummariesRequest': {'additionalProperties': False, 'properties': {'all': {'type': 'boolean'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag'], 'type': 'object'}, 'ModelSummary': {'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'}, 'counts': {'items': {'$ref': '#/definitions/ModelEntityCount'}, 'type': 'array'}, 'default-series': {'type': 'string'}, 'last-connection': {'format': 'date-time', 'type': 'string'}, 'life': {'type': 'string'}, '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'}, 'user-access': {'type': 'string'}, 'uuid': {'type': 'string'}}, 'required': ['name', 'uuid', 'type', 'controller-uuid', 'cloud-tag', 'owner-tag', 'life', 'user-access', 'last-connection', 'counts', 'sla', 'agent-version'], 'type': 'object'}, 'ModelSummaryResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/ModelSummary'}}, 'type': 'object'}, 'ModelSummaryResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ModelSummaryResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ModelUnsetKeys': {'additionalProperties': False, 'properties': {'cloud-region': {'type': 'string'}, 'cloud-tag': {'type': 'string'}, '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'}, 'ModelVolumeInfo': {'additionalProperties': False, 'properties': {'detachable': {'type': 'boolean'}, 'id': {'type': 'string'}, 'message': {'type': 'string'}, 'provider-id': {'type': 'string'}, 'status': {'type': 'string'}}, 'required': ['id'], 'type': 'object'}, 'ModifyModelAccess': {'additionalProperties': False, 'properties': {'access': {'type': 'string'}, 'action': {'type': 'string'}, 'model-tag': {'type': 'string'}, 'user-tag': {'type': 'string'}}, 'required': ['user-tag', 'action', 'access', 'model-tag'], 'type': 'object'}, 'ModifyModelAccessRequest': {'additionalProperties': False, 'properties': {'changes': {'items': {'$ref': '#/definitions/ModifyModelAccess'}, 'type': 'array'}}, 'required': ['changes'], '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'}, 'RegionDefaults': {'additionalProperties': False, 'properties': {'region-name': {'type': 'string'}, 'value': {'additionalProperties': True, 'type': 'object'}}, 'required': ['region-name', 'value'], 'type': 'object'}, 'SetModelDefaults': {'additionalProperties': False, 'properties': {'config': {'items': {'$ref': '#/definitions/ModelDefaultValues'}, 'type': 'array'}}, 'required': ['config'], 'type': 'object'}, 'StringResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'string'}}, 'required': ['result'], 'type': 'object'}, 'StringResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'UnsetModelDefaults': {'additionalProperties': False, 'properties': {'keys': {'items': {'$ref': '#/definitions/ModelUnsetKeys'}, 'type': 'array'}}, 'required': ['keys'], 'type': 'object'}, 'UserModel': {'additionalProperties': False, 'properties': {'last-connection': {'format': 'date-time', 'type': 'string'}, 'model': {'$ref': '#/definitions/Model'}}, 'required': ['model', 'last-connection'], 'type': 'object'}, 'UserModelList': {'additionalProperties': False, 'properties': {'user-models': {'items': {'$ref': '#/definitions/UserModel'}, 'type': 'array'}}, 'required': ['user-models'], 'type': 'object'}}, 'properties': {'ChangeModelCredential': {'properties': {'Params': {'$ref': '#/definitions/ChangeModelCredentialsParams'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'CreateModel': {'properties': {'Params': {'$ref': '#/definitions/ModelCreateArgs'}, 'Result': {'$ref': '#/definitions/ModelInfo'}}, 'type': 'object'}, 'DestroyModels': {'properties': {'Params': {'$ref': '#/definitions/DestroyModelsParams'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'DumpModels': {'properties': {'Params': {'$ref': '#/definitions/DumpModelRequest'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'DumpModelsDB': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/MapResults'}}, 'type': 'object'}, 'ListModelSummaries': {'properties': {'Params': {'$ref': '#/definitions/ModelSummariesRequest'}, 'Result': {'$ref': '#/definitions/ModelSummaryResults'}}, 'type': 'object'}, 'ListModels': {'properties': {'Params': {'$ref': '#/definitions/Entity'}, 'Result': {'$ref': '#/definitions/UserModelList'}}, 'type': 'object'}, 'ModelDefaults': {'properties': {'Result': {'$ref': '#/definitions/ModelDefaultsResult'}}, 'type': 'object'}, 'ModelInfo': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ModelInfoResults'}}, 'type': 'object'}, 'ModelStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ModelStatusResults'}}, 'type': 'object'}, 'ModifyModelAccess': {'properties': {'Params': {'$ref': '#/definitions/ModifyModelAccessRequest'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'SetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/SetModelDefaults'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'UnsetModelDefaults': {'properties': {'Params': {'$ref': '#/definitions/UnsetModelDefaults'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}}, 'type': 'object'}
[docs] @ReturnMapping(ErrorResults) async def ChangeModelCredential(self, model_credentials=None): ''' model_credentials : typing.Sequence[~ChangeModelCredentialParams] Returns -> typing.Sequence[~ErrorResult] ''' if model_credentials is not None and not isinstance(model_credentials, (bytes, str, list)): raise Exception("Expected model_credentials to be a Sequence, received: {}".format(type(model_credentials))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ChangeModelCredential', version=5, params=_params) _params['model-credentials'] = model_credentials reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelInfo) async def CreateModel(self, cloud_tag=None, config=None, credential=None, name=None, owner_tag=None, region=None): ''' cloud_tag : str config : typing.Mapping[str, typing.Any] credential : str name : str owner_tag : str region : str Returns -> typing.Union[_ForwardRef('Number'), str, typing.Sequence[~ModelMachineInfo], _ForwardRef('ModelMigrationStatus'), _ForwardRef('ModelSLAInfo'), _ForwardRef('EntityStatus'), typing.Sequence[~ModelUserInfo]] ''' if cloud_tag is not None and not isinstance(cloud_tag, (bytes, str)): raise Exception("Expected cloud_tag to be a str, received: {}".format(type(cloud_tag))) if config is not None and not isinstance(config, dict): raise Exception("Expected config to be a Mapping, received: {}".format(type(config))) if credential is not None and not isinstance(credential, (bytes, str)): raise Exception("Expected credential to be a str, received: {}".format(type(credential))) if name is not None and not isinstance(name, (bytes, str)): raise Exception("Expected name to be a str, received: {}".format(type(name))) if owner_tag is not None and not isinstance(owner_tag, (bytes, str)): raise Exception("Expected owner_tag to be a str, received: {}".format(type(owner_tag))) if region is not None and not isinstance(region, (bytes, str)): raise Exception("Expected region to be a str, received: {}".format(type(region))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='CreateModel', version=5, params=_params) _params['cloud-tag'] = cloud_tag _params['config'] = config _params['credential'] = credential _params['name'] = name _params['owner-tag'] = owner_tag _params['region'] = region reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def DestroyModels(self, models=None): ''' models : typing.Sequence[~DestroyModelParams] Returns -> typing.Sequence[~ErrorResult] ''' if models is not None and not isinstance(models, (bytes, str, list)): raise Exception("Expected models to be a Sequence, received: {}".format(type(models))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='DestroyModels', version=5, params=_params) _params['models'] = models reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(StringResults) async def DumpModels(self, entities=None, simplified=None): ''' entities : typing.Sequence[~Entity] simplified : bool Returns -> typing.Sequence[~StringResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) if simplified is not None and not isinstance(simplified, bool): raise Exception("Expected simplified to be a bool, received: {}".format(type(simplified))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='DumpModels', version=5, params=_params) _params['entities'] = entities _params['simplified'] = simplified reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(MapResults) async def DumpModelsDB(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~MapResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='DumpModelsDB', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelSummaryResults) async def ListModelSummaries(self, all_=None, user_tag=None): ''' all_ : bool user_tag : str Returns -> typing.Sequence[~ModelSummaryResult] ''' if all_ is not None and not isinstance(all_, bool): raise Exception("Expected all_ to be a bool, received: {}".format(type(all_))) if user_tag is not None and not isinstance(user_tag, (bytes, str)): raise Exception("Expected user_tag to be a str, received: {}".format(type(user_tag))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ListModelSummaries', version=5, params=_params) _params['all'] = all_ _params['user-tag'] = user_tag reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(UserModelList) async def ListModels(self, tag=None): ''' tag : str Returns -> typing.Sequence[~UserModel] ''' if tag is not None and not isinstance(tag, (bytes, str)): raise Exception("Expected tag to be a str, received: {}".format(type(tag))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ListModels', version=5, params=_params) _params['tag'] = tag reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelDefaultsResult) async def ModelDefaults(self): ''' Returns -> typing.Mapping[str, ~ModelDefaults] ''' # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ModelDefaults', version=5, params=_params) reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelInfoResults) async def ModelInfo(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ModelInfoResult] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ModelInfo', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ModelStatusResults) async def ModelStatus(self, entities=None): ''' entities : typing.Sequence[~Entity] Returns -> typing.Sequence[~ModelStatus] ''' if entities is not None and not isinstance(entities, (bytes, str, list)): raise Exception("Expected entities to be a Sequence, received: {}".format(type(entities))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ModelStatus', version=5, params=_params) _params['entities'] = entities reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def ModifyModelAccess(self, changes=None): ''' changes : typing.Sequence[~ModifyModelAccess] Returns -> typing.Sequence[~ErrorResult] ''' if changes is not None and not isinstance(changes, (bytes, str, list)): raise Exception("Expected changes to be a Sequence, received: {}".format(type(changes))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='ModifyModelAccess', version=5, params=_params) _params['changes'] = changes reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def SetModelDefaults(self, config=None): ''' config : typing.Sequence[~ModelDefaultValues] Returns -> typing.Sequence[~ErrorResult] ''' if config is not None and not isinstance(config, (bytes, str, list)): raise Exception("Expected config to be a Sequence, received: {}".format(type(config))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='SetModelDefaults', version=5, params=_params) _params['config'] = config reply = await self.rpc(msg) return reply
[docs] @ReturnMapping(ErrorResults) async def UnsetModelDefaults(self, keys=None): ''' keys : typing.Sequence[~ModelUnsetKeys] Returns -> typing.Sequence[~ErrorResult] ''' if keys is not None and not isinstance(keys, (bytes, str, list)): raise Exception("Expected keys to be a Sequence, received: {}".format(type(keys))) # map input types to rpc msg _params = dict() msg = dict(type='ModelManager', request='UnsetModelDefaults', version=5, params=_params) _params['keys'] = keys reply = await self.rpc(msg) return reply
[docs]class UniterFacade(Type): name = 'Uniter' version = 5 schema = {'definitions': {'APIHostPortsResult': {'additionalProperties': False, 'properties': {'servers': {'items': {'items': {'$ref': '#/definitions/HostPort'}, 'type': 'array'}, 'type': 'array'}}, 'required': ['servers'], 'type': 'object'}, 'Action': {'additionalProperties': False, 'properties': {'name': {'type': 'string'}, 'parameters': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'receiver': {'type': 'string'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'receiver', 'name'], 'type': 'object'}, 'ActionExecutionResult': {'additionalProperties': False, 'properties': {'action-tag': {'type': 'string'}, 'message': {'type': 'string'}, 'results': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'status': {'type': 'string'}}, 'required': ['action-tag', 'status'], 'type': 'object'}, 'ActionExecutionResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ActionExecutionResult'}, 'type': 'array'}}, 'type': 'object'}, 'ActionResult': {'additionalProperties': False, 'properties': {'action': {'$ref': '#/definitions/Action'}, 'completed': {'format': 'date-time', 'type': 'string'}, 'enqueued': {'format': 'date-time', 'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}, 'message': {'type': 'string'}, 'output': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'started': {'format': 'date-time', 'type': 'string'}, 'status': {'type': 'string'}}, 'type': 'object'}, 'ActionResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ActionResult'}, 'type': 'array'}}, 'type': 'object'}, 'Address': {'additionalProperties': False, 'properties': {'scope': {'type': 'string'}, 'space-name': {'type': 'string'}, 'type': {'type': 'string'}, 'value': {'type': 'string'}}, 'required': ['value', 'type', 'scope'], 'type': 'object'}, 'ApplicationStatusResult': {'additionalProperties': False, 'properties': {'application': {'$ref': '#/definitions/StatusResult'}, 'error': {'$ref': '#/definitions/Error'}, 'units': {'patternProperties': {'.*': {'$ref': '#/definitions/StatusResult'}}, 'type': 'object'}}, 'required': ['application', 'units'], 'type': 'object'}, 'ApplicationStatusResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ApplicationStatusResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'BoolResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'boolean'}}, 'required': ['result'], 'type': 'object'}, 'BoolResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/BoolResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'BytesResult': {'additionalProperties': False, 'properties': {'result': {'items': {'type': 'integer'}, 'type': 'array'}}, 'required': ['result'], 'type': 'object'}, 'CharmRelation': {'additionalProperties': False, 'properties': {'interface': {'type': 'string'}, 'limit': {'type': 'integer'}, 'name': {'type': 'string'}, 'optional': {'type': 'boolean'}, 'role': {'type': 'string'}, 'scope': {'type': 'string'}}, 'required': ['name', 'role', 'interface', 'optional', 'limit', 'scope'], 'type': 'object'}, 'CharmURL': {'additionalProperties': False, 'properties': {'url': {'type': 'string'}}, 'required': ['url'], 'type': 'object'}, 'CharmURLs': {'additionalProperties': False, 'properties': {'urls': {'items': {'$ref': '#/definitions/CharmURL'}, 'type': 'array'}}, 'required': ['urls'], 'type': 'object'}, 'ConfigSettingsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'settings': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['settings'], 'type': 'object'}, 'ConfigSettingsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ConfigSettingsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'Endpoint': {'additionalProperties': False, 'properties': {'application-name': {'type': 'string'}, 'relation': {'$ref': '#/definitions/CharmRelation'}}, 'required': ['application-name', 'relation'], 'type': 'object'}, 'Entities': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'EntitiesCharmURL': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityCharmURL'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'EntitiesPortRanges': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityPortRange'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'Entity': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}}, 'required': ['tag'], 'type': 'object'}, 'EntityCharmURL': {'additionalProperties': False, 'properties': {'charm-url': {'type': 'string'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'charm-url'], 'type': 'object'}, 'EntityPortRange': {'additionalProperties': False, 'properties': {'from-port': {'type': 'integer'}, 'protocol': {'type': 'string'}, 'tag': {'type': 'string'}, 'to-port': {'type': 'integer'}}, 'required': ['tag', 'protocol', 'from-port', 'to-port'], 'type': 'object'}, 'EntityStatusArgs': {'additionalProperties': False, 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'info': {'type': 'string'}, 'status': {'type': 'string'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'status', 'info', 'data'], 'type': 'object'}, 'EntityWorkloadVersion': {'additionalProperties': False, 'properties': {'tag': {'type': 'string'}, 'workload-version': {'type': 'string'}}, 'required': ['tag', 'workload-version'], 'type': 'object'}, 'EntityWorkloadVersions': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityWorkloadVersion'}, 'type': 'array'}}, 'required': ['entities'], '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'}, 'GetLeadershipSettingsBulkResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/GetLeadershipSettingsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'GetLeadershipSettingsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, 'required': ['settings'], 'type': 'object'}, 'HostPort': {'additionalProperties': False, 'properties': {'Address': {'$ref': '#/definitions/Address'}, 'port': {'type': 'integer'}}, 'required': ['Address', 'port'], 'type': 'object'}, 'IntResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'integer'}}, 'required': ['result'], 'type': 'object'}, 'IntResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/IntResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'InterfaceAddress': {'additionalProperties': False, 'properties': {'cidr': {'type': 'string'}, 'value': {'type': 'string'}}, 'required': ['value', 'cidr'], 'type': 'object'}, 'LifeResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'life': {'type': 'string'}}, 'required': ['life'], 'type': 'object'}, 'LifeResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/LifeResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'Macaroon': {'additionalProperties': False, 'type': 'object'}, 'MachinePortRange': {'additionalProperties': False, 'properties': {'port-range': {'$ref': '#/definitions/PortRange'}, 'relation-tag': {'type': 'string'}, 'unit-tag': {'type': 'string'}}, 'required': ['unit-tag', 'relation-tag', 'port-range'], 'type': 'object'}, 'MachinePortsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'ports': {'items': {'$ref': '#/definitions/MachinePortRange'}, 'type': 'array'}}, 'required': ['ports'], 'type': 'object'}, 'MachinePortsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/MachinePortsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'MergeLeadershipSettingsBulkParams': {'additionalProperties': False, 'properties': {'params': {'items': {'$ref': '#/definitions/MergeLeadershipSettingsParam'}, 'type': 'array'}}, 'required': ['params'], 'type': 'object'}, 'MergeLeadershipSettingsParam': {'additionalProperties': False, 'properties': {'application-tag': {'type': 'string'}, 'settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, 'required': ['application-tag', 'settings'], 'type': 'object'}, 'MeterStatusResult': {'additionalProperties': False, 'properties': {'code': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}, 'info': {'type': 'string'}}, 'required': ['code', 'info'], 'type': 'object'}, 'MeterStatusResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/MeterStatusResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'Metric': {'additionalProperties': False, 'properties': {'key': {'type': 'string'}, 'time': {'format': 'date-time', 'type': 'string'}, 'value': {'type': 'string'}}, 'required': ['key', 'value', 'time'], 'type': 'object'}, 'MetricBatch': {'additionalProperties': False, 'properties': {'charm-url': {'type': 'string'}, 'created': {'format': 'date-time', 'type': 'string'}, 'metrics': {'items': {'$ref': '#/definitions/Metric'}, 'type': 'array'}, 'uuid': {'type': 'string'}}, 'required': ['uuid', 'charm-url', 'created', 'metrics'], 'type': 'object'}, 'MetricBatchParam': {'additionalProperties': False, 'properties': {'batch': {'$ref': '#/definitions/MetricBatch'}, 'tag': {'type': 'string'}}, 'required': ['tag', 'batch'], 'type': 'object'}, 'MetricBatchParams': {'additionalProperties': False, 'properties': {'batches': {'items': {'$ref': '#/definitions/MetricBatchParam'}, 'type': 'array'}}, 'required': ['batches'], 'type': 'object'}, 'ModelConfigResult': {'additionalProperties': False, 'properties': {'config': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}}, 'required': ['config'], 'type': 'object'}, 'ModelResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'name': {'type': 'string'}, 'uuid': {'type': 'string'}}, 'required': ['name', 'uuid'], 'type': 'object'}, 'NetworkInfo': {'additionalProperties': False, 'properties': {'addresses': {'items': {'$ref': '#/definitions/InterfaceAddress'}, 'type': 'array'}, 'interface-name': {'type': 'string'}, 'mac-address': {'type': 'string'}}, 'required': ['mac-address', 'interface-name', 'addresses'], 'type': 'object'}, 'NetworkInfoParams': {'additionalProperties': False, 'properties': {'bindings': {'items': {'type': 'string'}, 'type': 'array'}, 'unit': {'type': 'string'}}, 'required': ['unit', 'bindings'], 'type': 'object'}, 'NetworkInfoResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'network-info': {'items': {'$ref': '#/definitions/NetworkInfo'}, 'type': 'array'}}, 'required': ['network-info'], 'type': 'object'}, 'NetworkInfoResults': {'additionalProperties': False, 'properties': {'results': {'patternProperties': {'.*': {'$ref': '#/definitions/NetworkInfoResult'}}, 'type': 'object'}}, 'required': ['results'], 'type': 'object'}, 'NotifyWatchResult': {'additionalProperties': False, 'properties': {'NotifyWatcherId': {'type': 'string'}, 'error': {'$ref': '#/definitions/Error'}}, 'required': ['NotifyWatcherId'], 'type': 'object'}, 'NotifyWatchResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'PortRange': {'additionalProperties': False, 'properties': {'from-port': {'type': 'integer'}, 'protocol': {'type': 'string'}, 'to-port': {'type': 'integer'}}, 'required': ['from-port', 'to-port', 'protocol'], 'type': 'object'}, 'RelationIds': {'additionalProperties': False, 'properties': {'relation-ids': {'items': {'type': 'integer'}, 'type': 'array'}}, 'required': ['relation-ids'], 'type': 'object'}, 'RelationResult': {'additionalProperties': False, 'properties': {'endpoint': {'$ref': '#/definitions/Endpoint'}, 'error': {'$ref': '#/definitions/Error'}, 'id': {'type': 'integer'}, 'key': {'type': 'string'}, 'life': {'type': 'string'}}, 'required': ['life', 'id', 'key', 'endpoint'], 'type': 'object'}, 'RelationResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/RelationResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'RelationUnit': {'additionalProperties': False, 'properties': {'relation': {'type': 'string'}, 'unit': {'type': 'string'}}, 'required': ['relation', 'unit'], 'type': 'object'}, 'RelationUnitPair': {'additionalProperties': False, 'properties': {'local-unit': {'type': 'string'}, 'relation': {'type': 'string'}, 'remote-unit': {'type': 'string'}}, 'required': ['relation', 'local-unit', 'remote-unit'], 'type': 'object'}, 'RelationUnitPairs': {'additionalProperties': False, 'properties': {'relation-unit-pairs': {'items': {'$ref': '#/definitions/RelationUnitPair'}, 'type': 'array'}}, 'required': ['relation-unit-pairs'], 'type': 'object'}, 'RelationUnitSettings': {'additionalProperties': False, 'properties': {'relation': {'type': 'string'}, 'settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}, 'unit': {'type': 'string'}}, 'required': ['relation', 'unit', 'settings'], 'type': 'object'}, 'RelationUnits': {'additionalProperties': False, 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnit'}, 'type': 'array'}}, 'required': ['relation-units'], 'type': 'object'}, 'RelationUnitsChange': {'additionalProperties': False, 'properties': {'changed': {'patternProperties': {'.*': {'$ref': '#/definitions/UnitSettings'}}, 'type': 'object'}, 'departed': {'items': {'type': 'string'}, 'type': 'array'}}, 'required': ['changed'], 'type': 'object'}, 'RelationUnitsSettings': {'additionalProperties': False, 'properties': {'relation-units': {'items': {'$ref': '#/definitions/RelationUnitSettings'}, 'type': 'array'}}, 'required': ['relation-units'], 'type': 'object'}, 'RelationUnitsWatchResult': {'additionalProperties': False, 'properties': {'changes': {'$ref': '#/definitions/RelationUnitsChange'}, 'error': {'$ref': '#/definitions/Error'}, 'watcher-id': {'type': 'string'}}, 'required': ['watcher-id', 'changes'], 'type': 'object'}, 'RelationUnitsWatchResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/RelationUnitsWatchResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'ResolvedModeResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'mode': {'type': 'string'}}, 'required': ['mode'], 'type': 'object'}, 'ResolvedModeResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/ResolvedModeResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'SetStatus': {'additionalProperties': False, 'properties': {'entities': {'items': {'$ref': '#/definitions/EntityStatusArgs'}, 'type': 'array'}}, 'required': ['entities'], 'type': 'object'}, 'SettingsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'settings': {'patternProperties': {'.*': {'type': 'string'}}, 'type': 'object'}}, 'required': ['settings'], 'type': 'object'}, 'SettingsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/SettingsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StatusResult': {'additionalProperties': False, 'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True, 'type': 'object'}}, 'type': 'object'}, 'error': {'$ref': '#/definitions/Error'}, 'id': {'type': 'string'}, 'info': {'type': 'string'}, 'life': {'type': 'string'}, 'since': {'format': 'date-time', 'type': 'string'}, 'status': {'type': 'string'}}, 'required': ['id', 'life', 'status', 'info', 'data', 'since'], 'type': 'object'}, 'StatusResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StatusResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StorageAddParams': {'additionalProperties': False, 'properties': {'name': {'type': 'string'}, 'storage': {'$ref': '#/definitions/StorageConstraints'}, 'unit': {'type': 'string'}}, 'required': ['unit', 'name', 'storage'], 'type': 'object'}, 'StorageAttachment': {'additionalProperties': False, 'properties': {'kind': {'type': 'integer'}, 'life': {'type': 'string'}, 'location': {'type': 'string'}, 'owner-tag': {'type': 'string'}, 'storage-tag': {'type': 'string'}, 'unit-tag': {'type': 'string'}}, 'required': ['storage-tag', 'owner-tag', 'unit-tag', 'kind', 'location', 'life'], 'type': 'object'}, 'StorageAttachmentId': {'additionalProperties': False, 'properties': {'storage-tag': {'type': 'string'}, 'unit-tag': {'type': 'string'}}, 'required': ['storage-tag', 'unit-tag'], 'type': 'object'}, 'StorageAttachmentIds': {'additionalProperties': False, 'properties': {'ids': {'items': {'$ref': '#/definitions/StorageAttachmentId'}, 'type': 'array'}}, 'required': ['ids'], 'type': 'object'}, 'StorageAttachmentIdsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/StorageAttachmentIds'}}, 'required': ['result'], 'type': 'object'}, 'StorageAttachmentIdsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentIdsResult'}, 'type': 'array'}}, 'type': 'object'}, 'StorageAttachmentResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'$ref': '#/definitions/StorageAttachment'}}, 'required': ['result'], 'type': 'object'}, 'StorageAttachmentResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StorageAttachmentResult'}, 'type': 'array'}}, 'type': 'object'}, 'StorageConstraints': {'additionalProperties': False, 'properties': {'count': {'type': 'integer'}, 'pool': {'type': 'string'}, 'size': {'type': 'integer'}}, 'type': 'object'}, 'StoragesAddParams': {'additionalProperties': False, 'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'}, 'type': 'array'}}, 'required': ['storages'], 'type': 'object'}, 'StringBoolResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'ok': {'type': 'boolean'}, 'result': {'type': 'string'}}, 'required': ['result', 'ok'], 'type': 'object'}, 'StringBoolResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringBoolResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StringResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'type': 'string'}}, 'required': ['result'], 'type': 'object'}, 'StringResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StringsResult': {'additionalProperties': False, 'properties': {'error': {'$ref': '#/definitions/Error'}, 'result': {'items': {'type': 'string'}, 'type': 'array'}}, 'type': 'object'}, 'StringsResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'StringsWatchResult': {'additionalProperties': False, 'properties': {'changes': {'items': {'type': 'string'}, 'type': 'array'}, 'error': {'$ref': '#/definitions/Error'}, 'watcher-id': {'type': 'string'}}, 'required': ['watcher-id'], 'type': 'object'}, 'StringsWatchResults': {'additionalProperties': False, 'properties': {'results': {'items': {'$ref': '#/definitions/StringsWatchResult'}, 'type': 'array'}}, 'required': ['results'], 'type': 'object'}, 'UnitSettings': {'additionalProperties': False, 'properties': {'version': {'type': 'integer'}}, 'required': ['version'], 'type': 'object'}}, 'properties': {'APIAddresses': {'properties': {'Result': {'$ref': '#/definitions/StringsResult'}}, 'type': 'object'}, 'APIHostPorts': {'properties': {'Result': {'$ref': '#/definitions/APIHostPortsResult'}}, 'type': 'object'}, 'Actions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ActionResults'}}, 'type': 'object'}, 'AddMetricBatches': {'properties': {'Params': {'$ref': '#/definitions/MetricBatchParams'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'AddUnitStorage': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'AllMachinePorts': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/MachinePortsResults'}}, 'type': 'object'}, 'ApplicationStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ApplicationStatusResults'}}, 'type': 'object'}, 'AssignedMachine': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'AvailabilityZone': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'BeginActions': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'CACert': {'properties': {'Result': {'$ref': '#/definitions/BytesResult'}}, 'type': 'object'}, 'CharmArchiveSha256': {'properties': {'Params': {'$ref': '#/definitions/CharmURLs'}, 'Result': {'$ref': '#/definitions/StringResults'}}, 'type': 'object'}, 'CharmModifiedVersion': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/IntResults'}}, 'type': 'object'}, 'CharmURL': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/StringBoolResults'}}, 'type': 'object'}, 'ClearResolved': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'ClosePorts': {'properties': {'Params': {'$ref': '#/definitions/EntitiesPortRanges'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'ConfigSettings': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ConfigSettingsResults'}}, 'type': 'object'}, 'CurrentModel': {'properties': {'Result': {'$ref': '#/definitions/ModelResult'}}, 'type': 'object'}, 'Destroy': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'DestroyAllSubordinates': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'DestroyUnitStorageAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'EnterScope': {'properties': {'Params': {'$ref': '#/definitions/RelationUnits'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'FinishActions': {'properties': {'Params': {'$ref': '#/definitions/ActionExecutionResults'}, 'Result': {'$ref': '#/definitions/ErrorResults'}}, 'type': 'object'}, 'GetMeterStatus': {'properties': {'Params': {'$ref': '#/definitions/Entities'},