Bug 733 fixed
[osm/N2VC.git] / modules / libjuju / juju / client / _client4.py
index 68ee3f9..2336d2c 100644 (file)
@@ -1,8 +1,8 @@
 # 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 *
+from juju.client.facade import ReturnMapping, Type
 
 
 class ApplicationFacade(Type):
@@ -412,12 +412,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(AddRelationResults)
     async def AddRelation(self, endpoints):
         '''
-        endpoints : typing.Sequence<+T_co>[str]
-        Returns -> typing.Mapping<~KT, +VT_co>[str, ~CharmRelation]<~CharmRelation>
+        endpoints : typing.Sequence[str]
+        Returns -> typing.Mapping[str, ~CharmRelation]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='AddRelation', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='AddRelation',
+                   version=4,
+                   params=_params)
         _params['endpoints'] = endpoints
         reply = await self.rpc(msg)
         return reply
@@ -429,12 +432,15 @@ class ApplicationFacade(Type):
         '''
         application : str
         num_units : int
-        placement : typing.Sequence<+T_co>[~Placement]<~Placement>
-        Returns -> typing.Sequence<+T_co>[str]
+        placement : typing.Sequence[~Placement]
+        Returns -> typing.Sequence[str]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='AddUnits', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='AddUnits',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['num-units'] = num_units
         _params['placement'] = placement
@@ -447,11 +453,14 @@ class ApplicationFacade(Type):
     async def CharmRelations(self, application):
         '''
         application : str
-        Returns -> typing.Sequence<+T_co>[str]
+        Returns -> typing.Sequence[str]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='CharmRelations', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='CharmRelations',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -461,12 +470,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(ConsumeApplicationResults)
     async def Consume(self, args):
         '''
-        args : typing.Sequence<+T_co>[~ConsumeApplicationArg]<~ConsumeApplicationArg>
-        Returns -> typing.Sequence<+T_co>[~ConsumeApplicationResult]<~ConsumeApplicationResult>
+        args : typing.Sequence[~ConsumeApplicationArg]
+        Returns -> typing.Sequence[~ConsumeApplicationResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Consume', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Consume',
+                   version=4,
+                   params=_params)
         _params['args'] = args
         reply = await self.rpc(msg)
         return reply
@@ -476,12 +488,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(ErrorResults)
     async def Deploy(self, applications):
         '''
-        applications : typing.Sequence<+T_co>[~ApplicationDeploy]<~ApplicationDeploy>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        applications : typing.Sequence[~ApplicationDeploy]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Deploy', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Deploy',
+                   version=4,
+                   params=_params)
         _params['applications'] = applications
         reply = await self.rpc(msg)
         return reply
@@ -496,7 +511,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Destroy', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Destroy',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -506,12 +524,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(DestroyApplicationResults)
     async def DestroyApplication(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~DestroyApplicationResult]<~DestroyApplicationResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~DestroyApplicationResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='DestroyApplication', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='DestroyApplication',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -521,12 +542,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(None)
     async def DestroyRelation(self, endpoints):
         '''
-        endpoints : typing.Sequence<+T_co>[str]
+        endpoints : typing.Sequence[str]
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='DestroyRelation', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='DestroyRelation',
+                   version=4,
+                   params=_params)
         _params['endpoints'] = endpoints
         reply = await self.rpc(msg)
         return reply
@@ -536,12 +560,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(DestroyUnitResults)
     async def DestroyUnit(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~DestroyUnitResult]<~DestroyUnitResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~DestroyUnitResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='DestroyUnit', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='DestroyUnit',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -551,12 +578,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(None)
     async def DestroyUnits(self, unit_names):
         '''
-        unit_names : typing.Sequence<+T_co>[str]
+        unit_names : typing.Sequence[str]
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='DestroyUnits', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='DestroyUnits',
+                   version=4,
+                   params=_params)
         _params['unit-names'] = unit_names
         reply = await self.rpc(msg)
         return reply
@@ -571,7 +601,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Expose', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Expose',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -582,11 +615,14 @@ class ApplicationFacade(Type):
     async def Get(self, application):
         '''
         application : str
-        Returns -> typing.Union[str, typing.Mapping<~KT, +VT_co>[str, typing.Any], _ForwardRef('Value')]
+        Returns -> typing.Union[str, typing.Mapping[str, typing.Any], _ForwardRef('Value')]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Get', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Get',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -601,7 +637,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='GetCharmURL', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='GetCharmURL',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -616,7 +655,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='GetConstraints', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='GetConstraints',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -626,12 +668,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(RemoteApplicationInfoResults)
     async def RemoteApplicationInfo(self, application_urls):
         '''
-        application_urls : typing.Sequence<+T_co>[str]
-        Returns -> typing.Sequence<+T_co>[~RemoteApplicationInfoResult]<~RemoteApplicationInfoResult>
+        application_urls : typing.Sequence[str]
+        Returns -> typing.Sequence[~RemoteApplicationInfoResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='RemoteApplicationInfo', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='RemoteApplicationInfo',
+                   version=4,
+                   params=_params)
         _params['application-urls'] = application_urls
         reply = await self.rpc(msg)
         return reply
@@ -642,12 +687,15 @@ class ApplicationFacade(Type):
     async def Set(self, application, options):
         '''
         application : str
-        options : typing.Mapping<~KT, +VT_co>[str, str]
+        options : typing.Mapping[str, str]
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Set', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Set',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['options'] = options
         reply = await self.rpc(msg)
@@ -661,17 +709,20 @@ class ApplicationFacade(Type):
         application : str
         channel : str
         charm_url : str
-        config_settings : typing.Mapping<~KT, +VT_co>[str, str]
+        config_settings : typing.Mapping[str, str]
         config_settings_yaml : str
         force_series : bool
         force_units : bool
-        resource_ids : typing.Mapping<~KT, +VT_co>[str, str]
-        storage_constraints : typing.Mapping<~KT, +VT_co>[str, ~StorageConstraints]<~StorageConstraints>
+        resource_ids : typing.Mapping[str, str]
+        storage_constraints : typing.Mapping[str, ~StorageConstraints]
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='SetCharm', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='SetCharm',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['channel'] = channel
         _params['charm-url'] = charm_url
@@ -695,7 +746,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='SetConstraints', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='SetConstraints',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['constraints'] = constraints
         reply = await self.rpc(msg)
@@ -706,12 +760,15 @@ class ApplicationFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetMetricCredentials(self, creds):
         '''
-        creds : typing.Sequence<+T_co>[~ApplicationMetricCredential]<~ApplicationMetricCredential>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        creds : typing.Sequence[~ApplicationMetricCredential]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='SetMetricCredentials', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='SetMetricCredentials',
+                   version=4,
+                   params=_params)
         _params['creds'] = creds
         reply = await self.rpc(msg)
         return reply
@@ -726,7 +783,10 @@ class ApplicationFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Unexpose', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Unexpose',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         reply = await self.rpc(msg)
         return reply
@@ -737,12 +797,15 @@ class ApplicationFacade(Type):
     async def Unset(self, application, options):
         '''
         application : str
-        options : typing.Sequence<+T_co>[str]
+        options : typing.Sequence[str]
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Unset', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Unset',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['options'] = options
         reply = await self.rpc(msg)
@@ -759,13 +822,16 @@ class ApplicationFacade(Type):
         force_charm_url : bool
         force_series : bool
         min_units : int
-        settings : typing.Mapping<~KT, +VT_co>[str, str]
+        settings : typing.Mapping[str, str]
         settings_yaml : str
         Returns -> None
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Application', request='Update', version=4, params=_params)
+        msg = dict(type='Application',
+                   request='Update',
+                   version=4,
+                   params=_params)
         _params['application'] = application
         _params['charm-url'] = charm_url
         _params['constraints'] = constraints
@@ -779,6 +845,1687 @@ class ApplicationFacade(Type):
 
 
 
+class StorageFacade(Type):
+    name = 'Storage'
+    version = 4
+    schema =     {'definitions': {'AddStorageDetails': {'additionalProperties': False,
+                                           'properties': {'storage-tags': {'items': {'type': 'string'},
+                                                                           'type': 'array'}},
+                                           'required': ['storage-tags'],
+                                           'type': 'object'},
+                     'AddStorageResult': {'additionalProperties': False,
+                                          'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                         'result': {'$ref': '#/definitions/AddStorageDetails'}},
+                                          'type': 'object'},
+                     'AddStorageResults': {'additionalProperties': False,
+                                           'properties': {'results': {'items': {'$ref': '#/definitions/AddStorageResult'},
+                                                                      'type': 'array'}},
+                                           'required': ['results'],
+                                           'type': 'object'},
+                     'BulkImportStorageParams': {'additionalProperties': False,
+                                                 'properties': {'storage': {'items': {'$ref': '#/definitions/ImportStorageParams'},
+                                                                            'type': 'array'}},
+                                                 'required': ['storage'],
+                                                 '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'},
+                     'FilesystemAttachmentDetails': {'additionalProperties': False,
+                                                     'properties': {'FilesystemAttachmentInfo': {'$ref': '#/definitions/FilesystemAttachmentInfo'},
+                                                                    'life': {'type': 'string'}},
+                                                     'required': ['FilesystemAttachmentInfo'],
+                                                     'type': 'object'},
+                     'FilesystemAttachmentInfo': {'additionalProperties': False,
+                                                  'properties': {'mount-point': {'type': 'string'},
+                                                                 'read-only': {'type': 'boolean'}},
+                                                  'type': 'object'},
+                     'FilesystemDetails': {'additionalProperties': False,
+                                           'properties': {'filesystem-tag': {'type': 'string'},
+                                                          'info': {'$ref': '#/definitions/FilesystemInfo'},
+                                                          'life': {'type': 'string'},
+                                                          'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}},
+                                                                                  'type': 'object'},
+                                                          'status': {'$ref': '#/definitions/EntityStatus'},
+                                                          'storage': {'$ref': '#/definitions/StorageDetails'},
+                                                          'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/FilesystemAttachmentDetails'}},
+                                                                               'type': 'object'},
+                                                          'volume-tag': {'type': 'string'}},
+                                           'required': ['filesystem-tag',
+                                                        'info',
+                                                        'status'],
+                                           'type': 'object'},
+                     'FilesystemDetailsListResult': {'additionalProperties': False,
+                                                     'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                    'result': {'items': {'$ref': '#/definitions/FilesystemDetails'},
+                                                                               'type': 'array'}},
+                                                     'type': 'object'},
+                     'FilesystemDetailsListResults': {'additionalProperties': False,
+                                                      'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemDetailsListResult'},
+                                                                                 'type': 'array'}},
+                                                      'type': 'object'},
+                     'FilesystemFilter': {'additionalProperties': False,
+                                          'properties': {'machines': {'items': {'type': 'string'},
+                                                                      'type': 'array'}},
+                                          'type': 'object'},
+                     'FilesystemFilters': {'additionalProperties': False,
+                                           'properties': {'filters': {'items': {'$ref': '#/definitions/FilesystemFilter'},
+                                                                      'type': 'array'}},
+                                           'type': 'object'},
+                     'FilesystemInfo': {'additionalProperties': False,
+                                        'properties': {'filesystem-id': {'type': 'string'},
+                                                       'pool': {'type': 'string'},
+                                                       'size': {'type': 'integer'}},
+                                        'required': ['filesystem-id',
+                                                     'pool',
+                                                     'size'],
+                                        'type': 'object'},
+                     'ImportStorageDetails': {'additionalProperties': False,
+                                              'properties': {'storage-tag': {'type': 'string'}},
+                                              'required': ['storage-tag'],
+                                              'type': 'object'},
+                     'ImportStorageParams': {'additionalProperties': False,
+                                             'properties': {'kind': {'type': 'integer'},
+                                                            'pool': {'type': 'string'},
+                                                            'provider-id': {'type': 'string'},
+                                                            'storage-name': {'type': 'string'}},
+                                             'required': ['kind',
+                                                          'pool',
+                                                          'provider-id',
+                                                          'storage-name'],
+                                             'type': 'object'},
+                     'ImportStorageResult': {'additionalProperties': False,
+                                             'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                            'result': {'$ref': '#/definitions/ImportStorageDetails'}},
+                                             'type': 'object'},
+                     'ImportStorageResults': {'additionalProperties': False,
+                                              'properties': {'results': {'items': {'$ref': '#/definitions/ImportStorageResult'},
+                                                                         'type': 'array'}},
+                                              'required': ['results'],
+                                              'type': 'object'},
+                     'Macaroon': {'additionalProperties': False, 'type': 'object'},
+                     'RemoveStorage': {'additionalProperties': False,
+                                       'properties': {'storage': {'items': {'$ref': '#/definitions/RemoveStorageInstance'},
+                                                                  'type': 'array'}},
+                                       'required': ['storage'],
+                                       'type': 'object'},
+                     'RemoveStorageInstance': {'additionalProperties': False,
+                                               'properties': {'destroy-attachments': {'type': 'boolean'},
+                                                              'destroy-storage': {'type': 'boolean'},
+                                                              'tag': {'type': 'string'}},
+                                               'required': ['tag'],
+                                               'type': 'object'},
+                     'StorageAddParams': {'additionalProperties': False,
+                                          'properties': {'name': {'type': 'string'},
+                                                         'storage': {'$ref': '#/definitions/StorageConstraints'},
+                                                         'unit': {'type': 'string'}},
+                                          'required': ['unit', 'name', 'storage'],
+                                          'type': 'object'},
+                     'StorageAttachmentDetails': {'additionalProperties': False,
+                                                  'properties': {'life': {'type': 'string'},
+                                                                 'location': {'type': 'string'},
+                                                                 'machine-tag': {'type': 'string'},
+                                                                 'storage-tag': {'type': 'string'},
+                                                                 'unit-tag': {'type': 'string'}},
+                                                  'required': ['storage-tag',
+                                                               'unit-tag',
+                                                               'machine-tag'],
+                                                  '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'},
+                     'StorageConstraints': {'additionalProperties': False,
+                                            'properties': {'count': {'type': 'integer'},
+                                                           'pool': {'type': 'string'},
+                                                           'size': {'type': 'integer'}},
+                                            'type': 'object'},
+                     'StorageDetails': {'additionalProperties': False,
+                                        'properties': {'attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/StorageAttachmentDetails'}},
+                                                                       'type': 'object'},
+                                                       'kind': {'type': 'integer'},
+                                                       'life': {'type': 'string'},
+                                                       'owner-tag': {'type': 'string'},
+                                                       'persistent': {'type': 'boolean'},
+                                                       'status': {'$ref': '#/definitions/EntityStatus'},
+                                                       'storage-tag': {'type': 'string'}},
+                                        'required': ['storage-tag',
+                                                     'owner-tag',
+                                                     'kind',
+                                                     'status',
+                                                     'persistent'],
+                                        'type': 'object'},
+                     'StorageDetailsListResult': {'additionalProperties': False,
+                                                  'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                 'result': {'items': {'$ref': '#/definitions/StorageDetails'},
+                                                                            'type': 'array'}},
+                                                  'type': 'object'},
+                     'StorageDetailsListResults': {'additionalProperties': False,
+                                                   'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsListResult'},
+                                                                              'type': 'array'}},
+                                                   'type': 'object'},
+                     'StorageDetailsResult': {'additionalProperties': False,
+                                              'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                             'result': {'$ref': '#/definitions/StorageDetails'}},
+                                              'type': 'object'},
+                     'StorageDetailsResults': {'additionalProperties': False,
+                                               'properties': {'results': {'items': {'$ref': '#/definitions/StorageDetailsResult'},
+                                                                          'type': 'array'}},
+                                               'type': 'object'},
+                     'StorageFilter': {'additionalProperties': False,
+                                       'type': 'object'},
+                     'StorageFilters': {'additionalProperties': False,
+                                        'properties': {'filters': {'items': {'$ref': '#/definitions/StorageFilter'},
+                                                                   'type': 'array'}},
+                                        'type': 'object'},
+                     'StoragePool': {'additionalProperties': False,
+                                     'properties': {'attrs': {'patternProperties': {'.*': {'additionalProperties': True,
+                                                                                           'type': 'object'}},
+                                                              'type': 'object'},
+                                                    'name': {'type': 'string'},
+                                                    'provider': {'type': 'string'}},
+                                     'required': ['name', 'provider', 'attrs'],
+                                     'type': 'object'},
+                     'StoragePoolFilter': {'additionalProperties': False,
+                                           'properties': {'names': {'items': {'type': 'string'},
+                                                                    'type': 'array'},
+                                                          'providers': {'items': {'type': 'string'},
+                                                                        'type': 'array'}},
+                                           'type': 'object'},
+                     'StoragePoolFilters': {'additionalProperties': False,
+                                            'properties': {'filters': {'items': {'$ref': '#/definitions/StoragePoolFilter'},
+                                                                       'type': 'array'}},
+                                            'type': 'object'},
+                     'StoragePoolsResult': {'additionalProperties': False,
+                                            'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                           'storage-pools': {'items': {'$ref': '#/definitions/StoragePool'},
+                                                                             'type': 'array'}},
+                                            'type': 'object'},
+                     'StoragePoolsResults': {'additionalProperties': False,
+                                             'properties': {'results': {'items': {'$ref': '#/definitions/StoragePoolsResult'},
+                                                                        'type': 'array'}},
+                                             'type': 'object'},
+                     'StoragesAddParams': {'additionalProperties': False,
+                                           'properties': {'storages': {'items': {'$ref': '#/definitions/StorageAddParams'},
+                                                                       'type': 'array'}},
+                                           'required': ['storages'],
+                                           'type': 'object'},
+                     'VolumeAttachmentDetails': {'additionalProperties': False,
+                                                 'properties': {'VolumeAttachmentInfo': {'$ref': '#/definitions/VolumeAttachmentInfo'},
+                                                                'life': {'type': 'string'}},
+                                                 'required': ['VolumeAttachmentInfo'],
+                                                 'type': 'object'},
+                     'VolumeAttachmentInfo': {'additionalProperties': False,
+                                              'properties': {'bus-address': {'type': 'string'},
+                                                             'device-link': {'type': 'string'},
+                                                             'device-name': {'type': 'string'},
+                                                             'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'},
+                                                             'read-only': {'type': 'boolean'}},
+                                              'type': 'object'},
+                     'VolumeAttachmentPlanInfo': {'additionalProperties': False,
+                                                  'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}},
+                                                                                       'type': 'object'},
+                                                                 'device-type': {'type': 'string'}},
+                                                  'type': 'object'},
+                     'VolumeDetails': {'additionalProperties': False,
+                                       'properties': {'info': {'$ref': '#/definitions/VolumeInfo'},
+                                                      'life': {'type': 'string'},
+                                                      'machine-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}},
+                                                                              'type': 'object'},
+                                                      'status': {'$ref': '#/definitions/EntityStatus'},
+                                                      'storage': {'$ref': '#/definitions/StorageDetails'},
+                                                      'unit-attachments': {'patternProperties': {'.*': {'$ref': '#/definitions/VolumeAttachmentDetails'}},
+                                                                           'type': 'object'},
+                                                      'volume-tag': {'type': 'string'}},
+                                       'required': ['volume-tag', 'info', 'status'],
+                                       'type': 'object'},
+                     'VolumeDetailsListResult': {'additionalProperties': False,
+                                                 'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                'result': {'items': {'$ref': '#/definitions/VolumeDetails'},
+                                                                           'type': 'array'}},
+                                                 'type': 'object'},
+                     'VolumeDetailsListResults': {'additionalProperties': False,
+                                                  'properties': {'results': {'items': {'$ref': '#/definitions/VolumeDetailsListResult'},
+                                                                             'type': 'array'}},
+                                                  'type': 'object'},
+                     'VolumeFilter': {'additionalProperties': False,
+                                      'properties': {'machines': {'items': {'type': 'string'},
+                                                                  'type': 'array'}},
+                                      'type': 'object'},
+                     'VolumeFilters': {'additionalProperties': False,
+                                       'properties': {'filters': {'items': {'$ref': '#/definitions/VolumeFilter'},
+                                                                  'type': 'array'}},
+                                       'type': 'object'},
+                     'VolumeInfo': {'additionalProperties': False,
+                                    'properties': {'hardware-id': {'type': 'string'},
+                                                   'persistent': {'type': 'boolean'},
+                                                   'pool': {'type': 'string'},
+                                                   'size': {'type': 'integer'},
+                                                   'volume-id': {'type': 'string'},
+                                                   'wwn': {'type': 'string'}},
+                                    'required': ['volume-id', 'size', 'persistent'],
+                                    'type': 'object'}},
+     'properties': {'AddToUnit': {'properties': {'Params': {'$ref': '#/definitions/StoragesAddParams'},
+                                                 'Result': {'$ref': '#/definitions/AddStorageResults'}},
+                                  'type': 'object'},
+                    'Attach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'},
+                                              'Result': {'$ref': '#/definitions/ErrorResults'}},
+                               'type': 'object'},
+                    'CreatePool': {'properties': {'Params': {'$ref': '#/definitions/StoragePool'}},
+                                   'type': 'object'},
+                    'Detach': {'properties': {'Params': {'$ref': '#/definitions/StorageAttachmentIds'},
+                                              'Result': {'$ref': '#/definitions/ErrorResults'}},
+                               'type': 'object'},
+                    'Import': {'properties': {'Params': {'$ref': '#/definitions/BulkImportStorageParams'},
+                                              'Result': {'$ref': '#/definitions/ImportStorageResults'}},
+                               'type': 'object'},
+                    'ListFilesystems': {'properties': {'Params': {'$ref': '#/definitions/FilesystemFilters'},
+                                                       'Result': {'$ref': '#/definitions/FilesystemDetailsListResults'}},
+                                        'type': 'object'},
+                    'ListPools': {'properties': {'Params': {'$ref': '#/definitions/StoragePoolFilters'},
+                                                 'Result': {'$ref': '#/definitions/StoragePoolsResults'}},
+                                  'type': 'object'},
+                    'ListStorageDetails': {'properties': {'Params': {'$ref': '#/definitions/StorageFilters'},
+                                                          'Result': {'$ref': '#/definitions/StorageDetailsListResults'}},
+                                           'type': 'object'},
+                    'ListVolumes': {'properties': {'Params': {'$ref': '#/definitions/VolumeFilters'},
+                                                   'Result': {'$ref': '#/definitions/VolumeDetailsListResults'}},
+                                    'type': 'object'},
+                    'Remove': {'properties': {'Params': {'$ref': '#/definitions/RemoveStorage'},
+                                              'Result': {'$ref': '#/definitions/ErrorResults'}},
+                               'type': 'object'},
+                    'StorageDetails': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                      'Result': {'$ref': '#/definitions/StorageDetailsResults'}},
+                                       'type': 'object'}},
+     'type': 'object'}
+    
+
+    @ReturnMapping(AddStorageResults)
+    async def AddToUnit(self, storages):
+        '''
+        storages : typing.Sequence[~StorageAddParams]
+        Returns -> typing.Sequence[~AddStorageResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='AddToUnit',
+                   version=4,
+                   params=_params)
+        _params['storages'] = storages
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def Attach(self, ids):
+        '''
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='Attach',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(None)
+    async def CreatePool(self, attrs, name, provider):
+        '''
+        attrs : typing.Mapping[str, typing.Any]
+        name : str
+        provider : str
+        Returns -> None
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='CreatePool',
+                   version=4,
+                   params=_params)
+        _params['attrs'] = attrs
+        _params['name'] = name
+        _params['provider'] = provider
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def Detach(self, ids):
+        '''
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='Detach',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ImportStorageResults)
+    async def Import(self, storage):
+        '''
+        storage : typing.Sequence[~ImportStorageParams]
+        Returns -> typing.Sequence[~ImportStorageResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='Import',
+                   version=4,
+                   params=_params)
+        _params['storage'] = storage
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(FilesystemDetailsListResults)
+    async def ListFilesystems(self, filters):
+        '''
+        filters : typing.Sequence[~FilesystemFilter]
+        Returns -> typing.Sequence[~FilesystemDetailsListResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='ListFilesystems',
+                   version=4,
+                   params=_params)
+        _params['filters'] = filters
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StoragePoolsResults)
+    async def ListPools(self, filters):
+        '''
+        filters : typing.Sequence[~StoragePoolFilter]
+        Returns -> typing.Sequence[~StoragePoolsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='ListPools',
+                   version=4,
+                   params=_params)
+        _params['filters'] = filters
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StorageDetailsListResults)
+    async def ListStorageDetails(self, filters):
+        '''
+        filters : typing.Sequence[~StorageFilter]
+        Returns -> typing.Sequence[~StorageDetailsListResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='ListStorageDetails',
+                   version=4,
+                   params=_params)
+        _params['filters'] = filters
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeDetailsListResults)
+    async def ListVolumes(self, filters):
+        '''
+        filters : typing.Sequence[~VolumeFilter]
+        Returns -> typing.Sequence[~VolumeDetailsListResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='ListVolumes',
+                   version=4,
+                   params=_params)
+        _params['filters'] = filters
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def Remove(self, storage):
+        '''
+        storage : typing.Sequence[~RemoveStorageInstance]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='Remove',
+                   version=4,
+                   params=_params)
+        _params['storage'] = storage
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StorageDetailsResults)
+    async def StorageDetails(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StorageDetailsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='Storage',
+                   request='StorageDetails',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+class StorageProvisionerFacade(Type):
+    name = 'StorageProvisioner'
+    version = 4
+    schema =     {'definitions': {'BlockDevice': {'additionalProperties': False,
+                                     'properties': {'BusAddress': {'type': 'string'},
+                                                    'DeviceLinks': {'items': {'type': 'string'},
+                                                                    'type': 'array'},
+                                                    'DeviceName': {'type': 'string'},
+                                                    'FilesystemType': {'type': 'string'},
+                                                    'HardwareId': {'type': 'string'},
+                                                    'InUse': {'type': 'boolean'},
+                                                    'Label': {'type': 'string'},
+                                                    'MountPoint': {'type': 'string'},
+                                                    'Size': {'type': 'integer'},
+                                                    'UUID': {'type': 'string'},
+                                                    'WWN': {'type': 'string'}},
+                                     'required': ['DeviceName',
+                                                  'DeviceLinks',
+                                                  'Label',
+                                                  'UUID',
+                                                  'HardwareId',
+                                                  'WWN',
+                                                  'BusAddress',
+                                                  'Size',
+                                                  'FilesystemType',
+                                                  'InUse',
+                                                  'MountPoint'],
+                                     'type': 'object'},
+                     'BlockDeviceResult': {'additionalProperties': False,
+                                           'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                          'result': {'$ref': '#/definitions/BlockDevice'}},
+                                           'required': ['result'],
+                                           'type': 'object'},
+                     'BlockDeviceResults': {'additionalProperties': False,
+                                            'properties': {'results': {'items': {'$ref': '#/definitions/BlockDeviceResult'},
+                                                                       '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'},
+                     'EntityStatusArgs': {'additionalProperties': False,
+                                          'properties': {'data': {'patternProperties': {'.*': {'additionalProperties': True,
+                                                                                               'type': 'object'}},
+                                                                  'type': 'object'},
+                                                         'info': {'type': 'string'},
+                                                         'status': {'type': 'string'},
+                                                         'tag': {'type': 'string'}},
+                                          'required': ['tag',
+                                                       'status',
+                                                       'info',
+                                                       'data'],
+                                          'type': 'object'},
+                     'Error': {'additionalProperties': False,
+                               'properties': {'code': {'type': 'string'},
+                                              'info': {'$ref': '#/definitions/ErrorInfo'},
+                                              'message': {'type': 'string'}},
+                               'required': ['message', 'code'],
+                               'type': 'object'},
+                     'ErrorInfo': {'additionalProperties': False,
+                                   'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+                                                  'macaroon-path': {'type': 'string'}},
+                                   'type': 'object'},
+                     'ErrorResult': {'additionalProperties': False,
+                                     'properties': {'error': {'$ref': '#/definitions/Error'}},
+                                     'type': 'object'},
+                     'ErrorResults': {'additionalProperties': False,
+                                      'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+                                                                 'type': 'array'}},
+                                      'required': ['results'],
+                                      'type': 'object'},
+                     'Filesystem': {'additionalProperties': False,
+                                    'properties': {'filesystem-tag': {'type': 'string'},
+                                                   'info': {'$ref': '#/definitions/FilesystemInfo'},
+                                                   'volume-tag': {'type': 'string'}},
+                                    'required': ['filesystem-tag', 'info'],
+                                    'type': 'object'},
+                     'FilesystemAttachment': {'additionalProperties': False,
+                                              'properties': {'filesystem-tag': {'type': 'string'},
+                                                             'info': {'$ref': '#/definitions/FilesystemAttachmentInfo'},
+                                                             'machine-tag': {'type': 'string'}},
+                                              'required': ['filesystem-tag',
+                                                           'machine-tag',
+                                                           'info'],
+                                              'type': 'object'},
+                     'FilesystemAttachmentInfo': {'additionalProperties': False,
+                                                  'properties': {'mount-point': {'type': 'string'},
+                                                                 'read-only': {'type': 'boolean'}},
+                                                  'type': 'object'},
+                     'FilesystemAttachmentParams': {'additionalProperties': False,
+                                                    'properties': {'filesystem-id': {'type': 'string'},
+                                                                   'filesystem-tag': {'type': 'string'},
+                                                                   'instance-id': {'type': 'string'},
+                                                                   'machine-tag': {'type': 'string'},
+                                                                   'mount-point': {'type': 'string'},
+                                                                   'provider': {'type': 'string'},
+                                                                   'read-only': {'type': 'boolean'}},
+                                                    'required': ['filesystem-tag',
+                                                                 'machine-tag',
+                                                                 'provider'],
+                                                    'type': 'object'},
+                     'FilesystemAttachmentParamsResult': {'additionalProperties': False,
+                                                          'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                         'result': {'$ref': '#/definitions/FilesystemAttachmentParams'}},
+                                                          'required': ['result'],
+                                                          'type': 'object'},
+                     'FilesystemAttachmentParamsResults': {'additionalProperties': False,
+                                                           'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentParamsResult'},
+                                                                                      'type': 'array'}},
+                                                           'type': 'object'},
+                     'FilesystemAttachmentResult': {'additionalProperties': False,
+                                                    'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                   'result': {'$ref': '#/definitions/FilesystemAttachment'}},
+                                                    'required': ['result'],
+                                                    'type': 'object'},
+                     'FilesystemAttachmentResults': {'additionalProperties': False,
+                                                     'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemAttachmentResult'},
+                                                                                'type': 'array'}},
+                                                     'type': 'object'},
+                     'FilesystemAttachments': {'additionalProperties': False,
+                                               'properties': {'filesystem-attachments': {'items': {'$ref': '#/definitions/FilesystemAttachment'},
+                                                                                         'type': 'array'}},
+                                               'required': ['filesystem-attachments'],
+                                               'type': 'object'},
+                     'FilesystemInfo': {'additionalProperties': False,
+                                        'properties': {'filesystem-id': {'type': 'string'},
+                                                       'pool': {'type': 'string'},
+                                                       'size': {'type': 'integer'}},
+                                        'required': ['filesystem-id',
+                                                     'pool',
+                                                     'size'],
+                                        'type': 'object'},
+                     'FilesystemParams': {'additionalProperties': False,
+                                          'properties': {'attachment': {'$ref': '#/definitions/FilesystemAttachmentParams'},
+                                                         'attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+                                                                                                     'type': 'object'}},
+                                                                        'type': 'object'},
+                                                         'filesystem-tag': {'type': 'string'},
+                                                         'provider': {'type': 'string'},
+                                                         'size': {'type': 'integer'},
+                                                         'tags': {'patternProperties': {'.*': {'type': 'string'}},
+                                                                  'type': 'object'},
+                                                         'volume-tag': {'type': 'string'}},
+                                          'required': ['filesystem-tag',
+                                                       'size',
+                                                       'provider'],
+                                          'type': 'object'},
+                     'FilesystemParamsResult': {'additionalProperties': False,
+                                                'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                               'result': {'$ref': '#/definitions/FilesystemParams'}},
+                                                'required': ['result'],
+                                                'type': 'object'},
+                     'FilesystemParamsResults': {'additionalProperties': False,
+                                                 'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemParamsResult'},
+                                                                            'type': 'array'}},
+                                                 'type': 'object'},
+                     'FilesystemResult': {'additionalProperties': False,
+                                          'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                         'result': {'$ref': '#/definitions/Filesystem'}},
+                                          'required': ['result'],
+                                          'type': 'object'},
+                     'FilesystemResults': {'additionalProperties': False,
+                                           'properties': {'results': {'items': {'$ref': '#/definitions/FilesystemResult'},
+                                                                      'type': 'array'}},
+                                           'type': 'object'},
+                     'Filesystems': {'additionalProperties': False,
+                                     'properties': {'filesystems': {'items': {'$ref': '#/definitions/Filesystem'},
+                                                                    'type': 'array'}},
+                                     'required': ['filesystems'],
+                                     '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'},
+                     'MachineStorageId': {'additionalProperties': False,
+                                          'properties': {'attachment-tag': {'type': 'string'},
+                                                         'machine-tag': {'type': 'string'}},
+                                          'required': ['machine-tag',
+                                                       'attachment-tag'],
+                                          'type': 'object'},
+                     'MachineStorageIds': {'additionalProperties': False,
+                                           'properties': {'ids': {'items': {'$ref': '#/definitions/MachineStorageId'},
+                                                                  'type': 'array'}},
+                                           'required': ['ids'],
+                                           'type': 'object'},
+                     'MachineStorageIdsWatchResult': {'additionalProperties': False,
+                                                      'properties': {'changes': {'items': {'$ref': '#/definitions/MachineStorageId'},
+                                                                                 'type': 'array'},
+                                                                     'error': {'$ref': '#/definitions/Error'},
+                                                                     'watcher-id': {'type': 'string'}},
+                                                      'required': ['watcher-id',
+                                                                   'changes'],
+                                                      'type': 'object'},
+                     'MachineStorageIdsWatchResults': {'additionalProperties': False,
+                                                       'properties': {'results': {'items': {'$ref': '#/definitions/MachineStorageIdsWatchResult'},
+                                                                                  'type': 'array'}},
+                                                       'required': ['results'],
+                                                       'type': 'object'},
+                     'NotifyWatchResult': {'additionalProperties': False,
+                                           'properties': {'NotifyWatcherId': {'type': 'string'},
+                                                          'error': {'$ref': '#/definitions/Error'}},
+                                           'required': ['NotifyWatcherId'],
+                                           'type': 'object'},
+                     'NotifyWatchResults': {'additionalProperties': False,
+                                            'properties': {'results': {'items': {'$ref': '#/definitions/NotifyWatchResult'},
+                                                                       'type': 'array'}},
+                                            'required': ['results'],
+                                            'type': 'object'},
+                     'RemoveFilesystemParams': {'additionalProperties': False,
+                                                'properties': {'destroy': {'type': 'boolean'},
+                                                               'filesystem-id': {'type': 'string'},
+                                                               'provider': {'type': 'string'}},
+                                                'required': ['provider',
+                                                             'filesystem-id'],
+                                                'type': 'object'},
+                     'RemoveFilesystemParamsResult': {'additionalProperties': False,
+                                                      'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                     'result': {'$ref': '#/definitions/RemoveFilesystemParams'}},
+                                                      'required': ['result'],
+                                                      'type': 'object'},
+                     'RemoveFilesystemParamsResults': {'additionalProperties': False,
+                                                       'properties': {'results': {'items': {'$ref': '#/definitions/RemoveFilesystemParamsResult'},
+                                                                                  'type': 'array'}},
+                                                       'type': 'object'},
+                     'RemoveVolumeParams': {'additionalProperties': False,
+                                            'properties': {'destroy': {'type': 'boolean'},
+                                                           'provider': {'type': 'string'},
+                                                           'volume-id': {'type': 'string'}},
+                                            'required': ['provider', 'volume-id'],
+                                            'type': 'object'},
+                     'RemoveVolumeParamsResult': {'additionalProperties': False,
+                                                  'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                 'result': {'$ref': '#/definitions/RemoveVolumeParams'}},
+                                                  'required': ['result'],
+                                                  'type': 'object'},
+                     'RemoveVolumeParamsResults': {'additionalProperties': False,
+                                                   'properties': {'results': {'items': {'$ref': '#/definitions/RemoveVolumeParamsResult'},
+                                                                              'type': 'array'}},
+                                                   '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'},
+                     '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'},
+                     'Volume': {'additionalProperties': False,
+                                'properties': {'info': {'$ref': '#/definitions/VolumeInfo'},
+                                               'volume-tag': {'type': 'string'}},
+                                'required': ['volume-tag', 'info'],
+                                'type': 'object'},
+                     'VolumeAttachment': {'additionalProperties': False,
+                                          'properties': {'info': {'$ref': '#/definitions/VolumeAttachmentInfo'},
+                                                         'machine-tag': {'type': 'string'},
+                                                         'volume-tag': {'type': 'string'}},
+                                          'required': ['volume-tag',
+                                                       'machine-tag',
+                                                       'info'],
+                                          'type': 'object'},
+                     'VolumeAttachmentInfo': {'additionalProperties': False,
+                                              'properties': {'bus-address': {'type': 'string'},
+                                                             'device-link': {'type': 'string'},
+                                                             'device-name': {'type': 'string'},
+                                                             'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'},
+                                                             'read-only': {'type': 'boolean'}},
+                                              'type': 'object'},
+                     'VolumeAttachmentParams': {'additionalProperties': False,
+                                                'properties': {'instance-id': {'type': 'string'},
+                                                               'machine-tag': {'type': 'string'},
+                                                               'provider': {'type': 'string'},
+                                                               'read-only': {'type': 'boolean'},
+                                                               'volume-id': {'type': 'string'},
+                                                               'volume-tag': {'type': 'string'}},
+                                                'required': ['volume-tag',
+                                                             'machine-tag',
+                                                             'provider'],
+                                                'type': 'object'},
+                     'VolumeAttachmentParamsResult': {'additionalProperties': False,
+                                                      'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                     'result': {'$ref': '#/definitions/VolumeAttachmentParams'}},
+                                                      'required': ['result'],
+                                                      'type': 'object'},
+                     'VolumeAttachmentParamsResults': {'additionalProperties': False,
+                                                       'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentParamsResult'},
+                                                                                  'type': 'array'}},
+                                                       'type': 'object'},
+                     'VolumeAttachmentPlan': {'additionalProperties': False,
+                                              'properties': {'block-device': {'$ref': '#/definitions/BlockDevice'},
+                                                             'life': {'type': 'string'},
+                                                             'machine-tag': {'type': 'string'},
+                                                             'plan-info': {'$ref': '#/definitions/VolumeAttachmentPlanInfo'},
+                                                             'volume-tag': {'type': 'string'}},
+                                              'required': ['volume-tag',
+                                                           'machine-tag',
+                                                           'plan-info'],
+                                              'type': 'object'},
+                     'VolumeAttachmentPlanInfo': {'additionalProperties': False,
+                                                  'properties': {'device-attributes': {'patternProperties': {'.*': {'type': 'string'}},
+                                                                                       'type': 'object'},
+                                                                 'device-type': {'type': 'string'}},
+                                                  'type': 'object'},
+                     'VolumeAttachmentPlanResult': {'additionalProperties': False,
+                                                    'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                                   'result': {'$ref': '#/definitions/VolumeAttachmentPlan'}},
+                                                    'required': ['result'],
+                                                    'type': 'object'},
+                     'VolumeAttachmentPlanResults': {'additionalProperties': False,
+                                                     'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentPlanResult'},
+                                                                                'type': 'array'}},
+                                                     'type': 'object'},
+                     'VolumeAttachmentPlans': {'additionalProperties': False,
+                                               'properties': {'volume-plans': {'items': {'$ref': '#/definitions/VolumeAttachmentPlan'},
+                                                                               'type': 'array'}},
+                                               'required': ['volume-plans'],
+                                               'type': 'object'},
+                     'VolumeAttachmentResult': {'additionalProperties': False,
+                                                'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                               'result': {'$ref': '#/definitions/VolumeAttachment'}},
+                                                'required': ['result'],
+                                                'type': 'object'},
+                     'VolumeAttachmentResults': {'additionalProperties': False,
+                                                 'properties': {'results': {'items': {'$ref': '#/definitions/VolumeAttachmentResult'},
+                                                                            'type': 'array'}},
+                                                 'type': 'object'},
+                     'VolumeAttachments': {'additionalProperties': False,
+                                           'properties': {'volume-attachments': {'items': {'$ref': '#/definitions/VolumeAttachment'},
+                                                                                 'type': 'array'}},
+                                           'required': ['volume-attachments'],
+                                           'type': 'object'},
+                     'VolumeInfo': {'additionalProperties': False,
+                                    'properties': {'hardware-id': {'type': 'string'},
+                                                   'persistent': {'type': 'boolean'},
+                                                   'pool': {'type': 'string'},
+                                                   'size': {'type': 'integer'},
+                                                   'volume-id': {'type': 'string'},
+                                                   'wwn': {'type': 'string'}},
+                                    'required': ['volume-id', 'size', 'persistent'],
+                                    'type': 'object'},
+                     'VolumeParams': {'additionalProperties': False,
+                                      'properties': {'attachment': {'$ref': '#/definitions/VolumeAttachmentParams'},
+                                                     'attributes': {'patternProperties': {'.*': {'additionalProperties': True,
+                                                                                                 'type': 'object'}},
+                                                                    'type': 'object'},
+                                                     'provider': {'type': 'string'},
+                                                     'size': {'type': 'integer'},
+                                                     'tags': {'patternProperties': {'.*': {'type': 'string'}},
+                                                              'type': 'object'},
+                                                     'volume-tag': {'type': 'string'}},
+                                      'required': ['volume-tag',
+                                                   'size',
+                                                   'provider'],
+                                      'type': 'object'},
+                     'VolumeParamsResult': {'additionalProperties': False,
+                                            'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                           'result': {'$ref': '#/definitions/VolumeParams'}},
+                                            'required': ['result'],
+                                            'type': 'object'},
+                     'VolumeParamsResults': {'additionalProperties': False,
+                                             'properties': {'results': {'items': {'$ref': '#/definitions/VolumeParamsResult'},
+                                                                        'type': 'array'}},
+                                             'type': 'object'},
+                     'VolumeResult': {'additionalProperties': False,
+                                      'properties': {'error': {'$ref': '#/definitions/Error'},
+                                                     'result': {'$ref': '#/definitions/Volume'}},
+                                      'required': ['result'],
+                                      'type': 'object'},
+                     'VolumeResults': {'additionalProperties': False,
+                                       'properties': {'results': {'items': {'$ref': '#/definitions/VolumeResult'},
+                                                                  'type': 'array'}},
+                                       'type': 'object'},
+                     'Volumes': {'additionalProperties': False,
+                                 'properties': {'volumes': {'items': {'$ref': '#/definitions/Volume'},
+                                                            'type': 'array'}},
+                                 'required': ['volumes'],
+                                 'type': 'object'}},
+     'properties': {'AttachmentLife': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                      'Result': {'$ref': '#/definitions/LifeResults'}},
+                                       'type': 'object'},
+                    'CreateVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'},
+                                                                   'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                                    'type': 'object'},
+                    'EnsureDead': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                  'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                   'type': 'object'},
+                    'FilesystemAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                                  'Result': {'$ref': '#/definitions/FilesystemAttachmentParamsResults'}},
+                                                   'type': 'object'},
+                    'FilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                             'Result': {'$ref': '#/definitions/FilesystemAttachmentResults'}},
+                                              'type': 'object'},
+                    'FilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                        'Result': {'$ref': '#/definitions/FilesystemParamsResults'}},
+                                         'type': 'object'},
+                    'Filesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                   'Result': {'$ref': '#/definitions/FilesystemResults'}},
+                                    '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'},
+                    'Remove': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                              'Result': {'$ref': '#/definitions/ErrorResults'}},
+                               'type': 'object'},
+                    'RemoveAttachment': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                        'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                         'type': 'object'},
+                    'RemoveFilesystemParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                              'Result': {'$ref': '#/definitions/RemoveFilesystemParamsResults'}},
+                                               'type': 'object'},
+                    'RemoveVolumeAttachmentPlan': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                                  'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                                   'type': 'object'},
+                    'RemoveVolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                          'Result': {'$ref': '#/definitions/RemoveVolumeParamsResults'}},
+                                           'type': 'object'},
+                    'SetFilesystemAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/FilesystemAttachments'},
+                                                                   'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                                    'type': 'object'},
+                    'SetFilesystemInfo': {'properties': {'Params': {'$ref': '#/definitions/Filesystems'},
+                                                         'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                          'type': 'object'},
+                    'SetStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+                                                 'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                  'type': 'object'},
+                    'SetVolumeAttachmentInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachments'},
+                                                               'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                                'type': 'object'},
+                    'SetVolumeAttachmentPlanBlockInfo': {'properties': {'Params': {'$ref': '#/definitions/VolumeAttachmentPlans'},
+                                                                        'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                                         'type': 'object'},
+                    'SetVolumeInfo': {'properties': {'Params': {'$ref': '#/definitions/Volumes'},
+                                                     'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                      'type': 'object'},
+                    'UpdateStatus': {'properties': {'Params': {'$ref': '#/definitions/SetStatus'},
+                                                    'Result': {'$ref': '#/definitions/ErrorResults'}},
+                                     'type': 'object'},
+                    'VolumeAttachmentParams': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                              'Result': {'$ref': '#/definitions/VolumeAttachmentParamsResults'}},
+                                               'type': 'object'},
+                    'VolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                             'Result': {'$ref': '#/definitions/VolumeAttachmentPlanResults'}},
+                                              'type': 'object'},
+                    'VolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                         'Result': {'$ref': '#/definitions/VolumeAttachmentResults'}},
+                                          'type': 'object'},
+                    'VolumeBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/MachineStorageIds'},
+                                                          'Result': {'$ref': '#/definitions/BlockDeviceResults'}},
+                                           'type': 'object'},
+                    'VolumeParams': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                    'Result': {'$ref': '#/definitions/VolumeParamsResults'}},
+                                     'type': 'object'},
+                    'Volumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                               'Result': {'$ref': '#/definitions/VolumeResults'}},
+                                'type': 'object'},
+                    'WatchApplications': {'properties': {'Result': {'$ref': '#/definitions/StringsWatchResult'}},
+                                          'type': 'object'},
+                    'WatchBlockDevices': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                         'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+                                          'type': 'object'},
+                    'WatchFilesystemAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                                  'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}},
+                                                   'type': 'object'},
+                    'WatchFilesystems': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                        'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+                                         'type': 'object'},
+                    'WatchMachines': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                     'Result': {'$ref': '#/definitions/NotifyWatchResults'}},
+                                      'type': 'object'},
+                    'WatchVolumeAttachmentPlans': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                                  'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}},
+                                                   'type': 'object'},
+                    'WatchVolumeAttachments': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                              'Result': {'$ref': '#/definitions/MachineStorageIdsWatchResults'}},
+                                               'type': 'object'},
+                    'WatchVolumes': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+                                                    'Result': {'$ref': '#/definitions/StringsWatchResults'}},
+                                     'type': 'object'}},
+     'type': 'object'}
+    
+
+    @ReturnMapping(LifeResults)
+    async def AttachmentLife(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~LifeResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='AttachmentLife',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def CreateVolumeAttachmentPlans(self, volume_plans):
+        '''
+        volume_plans : typing.Sequence[~VolumeAttachmentPlan]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='CreateVolumeAttachmentPlans',
+                   version=4,
+                   params=_params)
+        _params['volume-plans'] = volume_plans
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def EnsureDead(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='EnsureDead',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(FilesystemAttachmentParamsResults)
+    async def FilesystemAttachmentParams(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~FilesystemAttachmentParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='FilesystemAttachmentParams',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(FilesystemAttachmentResults)
+    async def FilesystemAttachments(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~FilesystemAttachmentResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='FilesystemAttachments',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(FilesystemParamsResults)
+    async def FilesystemParams(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~FilesystemParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='FilesystemParams',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(FilesystemResults)
+    async def Filesystems(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~FilesystemResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='Filesystems',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StringResults)
+    async def InstanceId(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='InstanceId',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(LifeResults)
+    async def Life(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~LifeResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='Life',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def Remove(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='Remove',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def RemoveAttachment(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='RemoveAttachment',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(RemoveFilesystemParamsResults)
+    async def RemoveFilesystemParams(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~RemoveFilesystemParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='RemoveFilesystemParams',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def RemoveVolumeAttachmentPlan(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='RemoveVolumeAttachmentPlan',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(RemoveVolumeParamsResults)
+    async def RemoveVolumeParams(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~RemoveVolumeParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='RemoveVolumeParams',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetFilesystemAttachmentInfo(self, filesystem_attachments):
+        '''
+        filesystem_attachments : typing.Sequence[~FilesystemAttachment]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetFilesystemAttachmentInfo',
+                   version=4,
+                   params=_params)
+        _params['filesystem-attachments'] = filesystem_attachments
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetFilesystemInfo(self, filesystems):
+        '''
+        filesystems : typing.Sequence[~Filesystem]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetFilesystemInfo',
+                   version=4,
+                   params=_params)
+        _params['filesystems'] = filesystems
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetStatus(self, entities):
+        '''
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetStatus',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetVolumeAttachmentInfo(self, volume_attachments):
+        '''
+        volume_attachments : typing.Sequence[~VolumeAttachment]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetVolumeAttachmentInfo',
+                   version=4,
+                   params=_params)
+        _params['volume-attachments'] = volume_attachments
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetVolumeAttachmentPlanBlockInfo(self, volume_plans):
+        '''
+        volume_plans : typing.Sequence[~VolumeAttachmentPlan]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetVolumeAttachmentPlanBlockInfo',
+                   version=4,
+                   params=_params)
+        _params['volume-plans'] = volume_plans
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def SetVolumeInfo(self, volumes):
+        '''
+        volumes : typing.Sequence[~Volume]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='SetVolumeInfo',
+                   version=4,
+                   params=_params)
+        _params['volumes'] = volumes
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(ErrorResults)
+    async def UpdateStatus(self, entities):
+        '''
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='UpdateStatus',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeAttachmentParamsResults)
+    async def VolumeAttachmentParams(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~VolumeAttachmentParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='VolumeAttachmentParams',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeAttachmentPlanResults)
+    async def VolumeAttachmentPlans(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~VolumeAttachmentPlanResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='VolumeAttachmentPlans',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeAttachmentResults)
+    async def VolumeAttachments(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~VolumeAttachmentResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='VolumeAttachments',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(BlockDeviceResults)
+    async def VolumeBlockDevices(self, ids):
+        '''
+        ids : typing.Sequence[~MachineStorageId]
+        Returns -> typing.Sequence[~BlockDeviceResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='VolumeBlockDevices',
+                   version=4,
+                   params=_params)
+        _params['ids'] = ids
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeParamsResults)
+    async def VolumeParams(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~VolumeParamsResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='VolumeParams',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(VolumeResults)
+    async def Volumes(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~VolumeResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='Volumes',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StringsWatchResult)
+    async def WatchApplications(self):
+        '''
+
+        Returns -> typing.Union[typing.Sequence[str], _ForwardRef('Error'), str]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchApplications',
+                   version=4,
+                   params=_params)
+
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(NotifyWatchResults)
+    async def WatchBlockDevices(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchBlockDevices',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(MachineStorageIdsWatchResults)
+    async def WatchFilesystemAttachments(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~MachineStorageIdsWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchFilesystemAttachments',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StringsWatchResults)
+    async def WatchFilesystems(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchFilesystems',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(NotifyWatchResults)
+    async def WatchMachines(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchMachines',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(MachineStorageIdsWatchResults)
+    async def WatchVolumeAttachmentPlans(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~MachineStorageIdsWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchVolumeAttachmentPlans',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(MachineStorageIdsWatchResults)
+    async def WatchVolumeAttachments(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~MachineStorageIdsWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchVolumeAttachments',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
+    @ReturnMapping(StringsWatchResults)
+    async def WatchVolumes(self, entities):
+        '''
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsWatchResult]
+        '''
+        # map input types to rpc msg
+        _params = dict()
+        msg = dict(type='StorageProvisioner',
+                   request='WatchVolumes',
+                   version=4,
+                   params=_params)
+        _params['entities'] = entities
+        reply = await self.rpc(msg)
+        return reply
+
+
+
 class UniterFacade(Type):
     name = 'Uniter'
     version = 4
@@ -1624,11 +3371,14 @@ class UniterFacade(Type):
     async def APIAddresses(self):
         '''
 
-        Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence<+T_co>[str]]
+        Returns -> typing.Union[_ForwardRef('Error'), typing.Sequence[str]]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='APIAddresses', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='APIAddresses',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -1639,11 +3389,14 @@ class UniterFacade(Type):
     async def APIHostPorts(self):
         '''
 
-        Returns -> typing.Sequence<+T_co>[~HostPort]<~HostPort>
+        Returns -> typing.Sequence[~HostPort]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='APIHostPorts', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='APIHostPorts',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -1653,12 +3406,15 @@ class UniterFacade(Type):
     @ReturnMapping(ActionResults)
     async def Actions(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ActionResult]<~ActionResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ActionResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Actions', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Actions',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1668,12 +3424,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def AddMetricBatches(self, batches):
         '''
-        batches : typing.Sequence<+T_co>[~MetricBatchParam]<~MetricBatchParam>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        batches : typing.Sequence[~MetricBatchParam]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='AddMetricBatches', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='AddMetricBatches',
+                   version=4,
+                   params=_params)
         _params['batches'] = batches
         reply = await self.rpc(msg)
         return reply
@@ -1683,12 +3442,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def AddUnitStorage(self, storages):
         '''
-        storages : typing.Sequence<+T_co>[~StorageAddParams]<~StorageAddParams>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        storages : typing.Sequence[~StorageAddParams]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='AddUnitStorage', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='AddUnitStorage',
+                   version=4,
+                   params=_params)
         _params['storages'] = storages
         reply = await self.rpc(msg)
         return reply
@@ -1698,12 +3460,15 @@ class UniterFacade(Type):
     @ReturnMapping(MachinePortsResults)
     async def AllMachinePorts(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~MachinePortsResult]<~MachinePortsResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~MachinePortsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='AllMachinePorts', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='AllMachinePorts',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1713,12 +3478,15 @@ class UniterFacade(Type):
     @ReturnMapping(ApplicationStatusResults)
     async def ApplicationStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ApplicationStatusResult]<~ApplicationStatusResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ApplicationStatusResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ApplicationStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ApplicationStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1728,12 +3496,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def AssignedMachine(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='AssignedMachine', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='AssignedMachine',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1743,12 +3514,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def AvailabilityZone(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='AvailabilityZone', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='AvailabilityZone',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1758,12 +3532,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def BeginActions(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='BeginActions', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='BeginActions',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1774,11 +3551,14 @@ class UniterFacade(Type):
     async def CACert(self):
         '''
 
-        Returns -> typing.Sequence<+T_co>[int]
+        Returns -> typing.Sequence[int]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='CACert', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='CACert',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -1788,12 +3568,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def CharmArchiveSha256(self, urls):
         '''
-        urls : typing.Sequence<+T_co>[~CharmURL]<~CharmURL>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        urls : typing.Sequence[~CharmURL]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='CharmArchiveSha256', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='CharmArchiveSha256',
+                   version=4,
+                   params=_params)
         _params['urls'] = urls
         reply = await self.rpc(msg)
         return reply
@@ -1803,12 +3586,15 @@ class UniterFacade(Type):
     @ReturnMapping(IntResults)
     async def CharmModifiedVersion(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~IntResult]<~IntResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~IntResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='CharmModifiedVersion', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='CharmModifiedVersion',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1818,12 +3604,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringBoolResults)
     async def CharmURL(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringBoolResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='CharmURL', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='CharmURL',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1833,12 +3622,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def ClearResolved(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ClearResolved', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ClearResolved',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1848,12 +3640,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def ClosePorts(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityPortRange]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ClosePorts', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ClosePorts',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1863,12 +3658,15 @@ class UniterFacade(Type):
     @ReturnMapping(ConfigSettingsResults)
     async def ConfigSettings(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ConfigSettingsResult]<~ConfigSettingsResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ConfigSettingsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ConfigSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ConfigSettings',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1883,7 +3681,10 @@ class UniterFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='CurrentModel', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='CurrentModel',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -1893,12 +3694,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def Destroy(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Destroy', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Destroy',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1908,12 +3712,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def DestroyAllSubordinates(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='DestroyAllSubordinates', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='DestroyAllSubordinates',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1923,12 +3730,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def DestroyUnitStorageAttachments(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='DestroyUnitStorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='DestroyUnitStorageAttachments',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1938,12 +3748,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def EnsureDead(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='EnsureDead', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='EnsureDead',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1953,12 +3766,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def EnterScope(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        relation_units : typing.Sequence[~RelationUnit]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='EnterScope', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='EnterScope',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -1968,12 +3784,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def FinishActions(self, results):
         '''
-        results : typing.Sequence<+T_co>[~ActionExecutionResult]<~ActionExecutionResult>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        results : typing.Sequence[~ActionExecutionResult]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='FinishActions', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='FinishActions',
+                   version=4,
+                   params=_params)
         _params['results'] = results
         reply = await self.rpc(msg)
         return reply
@@ -1983,12 +3802,15 @@ class UniterFacade(Type):
     @ReturnMapping(MeterStatusResults)
     async def GetMeterStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~MeterStatusResult]<~MeterStatusResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~MeterStatusResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='GetMeterStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='GetMeterStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -1998,12 +3820,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringBoolResults)
     async def GetPrincipal(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringBoolResult]<~StringBoolResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringBoolResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='GetPrincipal', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='GetPrincipal',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2013,12 +3838,15 @@ class UniterFacade(Type):
     @ReturnMapping(BoolResults)
     async def HasSubordinates(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~BoolResult]<~BoolResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~BoolResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='HasSubordinates', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='HasSubordinates',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2028,12 +3856,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringsResults)
     async def JoinedRelations(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringsResult]<~StringsResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='JoinedRelations', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='JoinedRelations',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2043,12 +3874,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def LeaveScope(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        relation_units : typing.Sequence[~RelationUnit]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='LeaveScope', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='LeaveScope',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -2058,12 +3892,15 @@ class UniterFacade(Type):
     @ReturnMapping(LifeResults)
     async def Life(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~LifeResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Life', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Life',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2073,12 +3910,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def Merge(self, params):
         '''
-        params : typing.Sequence<+T_co>[~MergeLeadershipSettingsParam]<~MergeLeadershipSettingsParam>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        params : typing.Sequence[~MergeLeadershipSettingsParam]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Merge', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Merge',
+                   version=4,
+                   params=_params)
         _params['params'] = params
         reply = await self.rpc(msg)
         return reply
@@ -2089,11 +3929,14 @@ class UniterFacade(Type):
     async def ModelConfig(self):
         '''
 
-        Returns -> typing.Mapping<~KT, +VT_co>[str, typing.Any]
+        Returns -> typing.Mapping[str, typing.Any]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ModelConfig', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ModelConfig',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -2108,7 +3951,10 @@ class UniterFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ModelUUID', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ModelUUID',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -2118,12 +3964,15 @@ class UniterFacade(Type):
     @ReturnMapping(UnitNetworkConfigResults)
     async def NetworkConfig(self, args):
         '''
-        args : typing.Sequence<+T_co>[~UnitNetworkConfig]<~UnitNetworkConfig>
-        Returns -> typing.Sequence<+T_co>[~UnitNetworkConfigResult]<~UnitNetworkConfigResult>
+        args : typing.Sequence[~UnitNetworkConfig]
+        Returns -> typing.Sequence[~UnitNetworkConfigResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='NetworkConfig', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='NetworkConfig',
+                   version=4,
+                   params=_params)
         _params['args'] = args
         reply = await self.rpc(msg)
         return reply
@@ -2133,12 +3982,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def OpenPorts(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityPortRange]<~EntityPortRange>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityPortRange]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='OpenPorts', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='OpenPorts',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2148,12 +4000,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def PrivateAddress(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='PrivateAddress', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='PrivateAddress',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2168,7 +4023,10 @@ class UniterFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ProviderType', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ProviderType',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -2178,12 +4036,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def PublicAddress(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='PublicAddress', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='PublicAddress',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2193,12 +4054,15 @@ class UniterFacade(Type):
     @ReturnMapping(GetLeadershipSettingsBulkResults)
     async def Read(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~GetLeadershipSettingsResult]<~GetLeadershipSettingsResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~GetLeadershipSettingsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Read', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Read',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2208,12 +4072,15 @@ class UniterFacade(Type):
     @ReturnMapping(SettingsResults)
     async def ReadRemoteSettings(self, relation_unit_pairs):
         '''
-        relation_unit_pairs : typing.Sequence<+T_co>[~RelationUnitPair]<~RelationUnitPair>
-        Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult>
+        relation_unit_pairs : typing.Sequence[~RelationUnitPair]
+        Returns -> typing.Sequence[~SettingsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ReadRemoteSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ReadRemoteSettings',
+                   version=4,
+                   params=_params)
         _params['relation-unit-pairs'] = relation_unit_pairs
         reply = await self.rpc(msg)
         return reply
@@ -2223,12 +4090,15 @@ class UniterFacade(Type):
     @ReturnMapping(SettingsResults)
     async def ReadSettings(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit>
-        Returns -> typing.Sequence<+T_co>[~SettingsResult]<~SettingsResult>
+        relation_units : typing.Sequence[~RelationUnit]
+        Returns -> typing.Sequence[~SettingsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='ReadSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='ReadSettings',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -2238,12 +4108,15 @@ class UniterFacade(Type):
     @ReturnMapping(RelationResults)
     async def Relation(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit>
-        Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult>
+        relation_units : typing.Sequence[~RelationUnit]
+        Returns -> typing.Sequence[~RelationResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Relation', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Relation',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -2253,12 +4126,15 @@ class UniterFacade(Type):
     @ReturnMapping(RelationResults)
     async def RelationById(self, relation_ids):
         '''
-        relation_ids : typing.Sequence<+T_co>[int]
-        Returns -> typing.Sequence<+T_co>[~RelationResult]<~RelationResult>
+        relation_ids : typing.Sequence[int]
+        Returns -> typing.Sequence[~RelationResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='RelationById', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='RelationById',
+                   version=4,
+                   params=_params)
         _params['relation-ids'] = relation_ids
         reply = await self.rpc(msg)
         return reply
@@ -2268,12 +4144,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def RemoveStorageAttachments(self, ids):
         '''
-        ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='RemoveStorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='RemoveStorageAttachments',
+                   version=4,
+                   params=_params)
         _params['ids'] = ids
         reply = await self.rpc(msg)
         return reply
@@ -2283,12 +4162,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def RequestReboot(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='RequestReboot', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='RequestReboot',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2298,12 +4180,15 @@ class UniterFacade(Type):
     @ReturnMapping(ResolvedModeResults)
     async def Resolved(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~ResolvedModeResult]<~ResolvedModeResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~ResolvedModeResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Resolved', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Resolved',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2313,12 +4198,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetAgentStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetAgentStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetAgentStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2328,12 +4216,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetApplicationStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetApplicationStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetApplicationStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2343,12 +4234,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetCharmURL(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityCharmURL]<~EntityCharmURL>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityCharmURL]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetCharmURL', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetCharmURL',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2358,12 +4252,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2373,12 +4270,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetUnitStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityStatusArgs]<~EntityStatusArgs>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityStatusArgs]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetUnitStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetUnitStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2388,12 +4288,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def SetWorkloadVersion(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~EntityWorkloadVersion]<~EntityWorkloadVersion>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        entities : typing.Sequence[~EntityWorkloadVersion]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='SetWorkloadVersion', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='SetWorkloadVersion',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2403,12 +4306,15 @@ class UniterFacade(Type):
     @ReturnMapping(LifeResults)
     async def StorageAttachmentLife(self, ids):
         '''
-        ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId>
-        Returns -> typing.Sequence<+T_co>[~LifeResult]<~LifeResult>
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~LifeResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='StorageAttachmentLife', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='StorageAttachmentLife',
+                   version=4,
+                   params=_params)
         _params['ids'] = ids
         reply = await self.rpc(msg)
         return reply
@@ -2418,12 +4324,15 @@ class UniterFacade(Type):
     @ReturnMapping(StorageAttachmentResults)
     async def StorageAttachments(self, ids):
         '''
-        ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId>
-        Returns -> typing.Sequence<+T_co>[~StorageAttachmentResult]<~StorageAttachmentResult>
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~StorageAttachmentResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='StorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='StorageAttachments',
+                   version=4,
+                   params=_params)
         _params['ids'] = ids
         reply = await self.rpc(msg)
         return reply
@@ -2433,12 +4342,15 @@ class UniterFacade(Type):
     @ReturnMapping(StatusResults)
     async def UnitStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StatusResult]<~StatusResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StatusResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='UnitStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='UnitStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2448,12 +4360,15 @@ class UniterFacade(Type):
     @ReturnMapping(StorageAttachmentIdsResults)
     async def UnitStorageAttachments(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StorageAttachmentIdsResult]<~StorageAttachmentIdsResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StorageAttachmentIdsResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='UnitStorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='UnitStorageAttachments',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2463,12 +4378,15 @@ class UniterFacade(Type):
     @ReturnMapping(ErrorResults)
     async def UpdateSettings(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnitSettings]<~RelationUnitSettings>
-        Returns -> typing.Sequence<+T_co>[~ErrorResult]<~ErrorResult>
+        relation_units : typing.Sequence[~RelationUnitSettings]
+        Returns -> typing.Sequence[~ErrorResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='UpdateSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='UpdateSettings',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -2478,12 +4396,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def Watch(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='Watch', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='Watch',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2498,7 +4419,10 @@ class UniterFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchAPIHostPorts', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchAPIHostPorts',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -2508,12 +4432,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringsWatchResults)
     async def WatchActionNotifications(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchActionNotifications', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchActionNotifications',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2523,12 +4450,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringsWatchResults)
     async def WatchApplicationRelations(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchApplicationRelations', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchApplicationRelations',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2538,12 +4468,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def WatchConfigSettings(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchConfigSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchConfigSettings',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2558,7 +4491,10 @@ class UniterFacade(Type):
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchForModelConfigChanges', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchForModelConfigChanges',
+                   version=4,
+                   params=_params)
 
         reply = await self.rpc(msg)
         return reply
@@ -2568,12 +4504,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def WatchLeadershipSettings(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchLeadershipSettings', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchLeadershipSettings',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2583,12 +4522,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def WatchMeterStatus(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchMeterStatus', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchMeterStatus',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2598,12 +4540,15 @@ class UniterFacade(Type):
     @ReturnMapping(RelationUnitsWatchResults)
     async def WatchRelationUnits(self, relation_units):
         '''
-        relation_units : typing.Sequence<+T_co>[~RelationUnit]<~RelationUnit>
-        Returns -> typing.Sequence<+T_co>[~RelationUnitsWatchResult]<~RelationUnitsWatchResult>
+        relation_units : typing.Sequence[~RelationUnit]
+        Returns -> typing.Sequence[~RelationUnitsWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchRelationUnits', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchRelationUnits',
+                   version=4,
+                   params=_params)
         _params['relation-units'] = relation_units
         reply = await self.rpc(msg)
         return reply
@@ -2613,12 +4558,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def WatchStorageAttachments(self, ids):
         '''
-        ids : typing.Sequence<+T_co>[~StorageAttachmentId]<~StorageAttachmentId>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        ids : typing.Sequence[~StorageAttachmentId]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchStorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchStorageAttachments',
+                   version=4,
+                   params=_params)
         _params['ids'] = ids
         reply = await self.rpc(msg)
         return reply
@@ -2628,12 +4576,15 @@ class UniterFacade(Type):
     @ReturnMapping(NotifyWatchResults)
     async def WatchUnitAddresses(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~NotifyWatchResult]<~NotifyWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~NotifyWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchUnitAddresses', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchUnitAddresses',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2643,12 +4594,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringsWatchResults)
     async def WatchUnitStorageAttachments(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringsWatchResult]<~StringsWatchResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringsWatchResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WatchUnitStorageAttachments', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WatchUnitStorageAttachments',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
@@ -2658,14 +4612,15 @@ class UniterFacade(Type):
     @ReturnMapping(StringResults)
     async def WorkloadVersion(self, entities):
         '''
-        entities : typing.Sequence<+T_co>[~Entity]<~Entity>
-        Returns -> typing.Sequence<+T_co>[~StringResult]<~StringResult>
+        entities : typing.Sequence[~Entity]
+        Returns -> typing.Sequence[~StringResult]
         '''
         # map input types to rpc msg
         _params = dict()
-        msg = dict(type='Uniter', request='WorkloadVersion', version=4, params=_params)
+        msg = dict(type='Uniter',
+                   request='WorkloadVersion',
+                   version=4,
+                   params=_params)
         _params['entities'] = entities
         reply = await self.rpc(msg)
         return reply
-
-