+class CloudFacade(Type):
+ name = 'Cloud'
+ version = 1
+ schema = {'definitions': {'Cloud': {'additionalProperties': False,
+ 'properties': {'auth-types': {'items': {'type': 'string'},
+ 'type': 'array'},
+ 'endpoint': {'type': 'string'},
+ 'regions': {'items': {'$ref': '#/definitions/CloudRegion'},
+ 'type': 'array'},
+ 'type': {'type': 'string'}},
+ 'required': ['type'],
+ 'type': 'object'},
+ 'CloudCredential': {'additionalProperties': False,
+ 'properties': {'attrs': {'patternProperties': {'.*': {'type': 'string'}},
+ 'type': 'object'},
+ 'auth-type': {'type': 'string'}},
+ 'required': ['auth-type'],
+ 'type': 'object'},
+ 'CloudCredentialsResult': {'additionalProperties': False,
+ 'properties': {'credentials': {'patternProperties': {'.*': {'$ref': '#/definitions/CloudCredential'}},
+ 'type': 'object'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'CloudCredentialsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudCredentialsResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'CloudDefaults': {'additionalProperties': False,
+ 'properties': {'cloud-tag': {'type': 'string'},
+ 'credential': {'type': 'string'},
+ 'region': {'type': 'string'}},
+ 'required': ['cloud-tag'],
+ 'type': 'object'},
+ 'CloudDefaultsResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'},
+ 'result': {'$ref': '#/definitions/CloudDefaults'}},
+ 'required': ['error'],
+ 'type': 'object'},
+ 'CloudDefaultsResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudDefaultsResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'CloudRegion': {'additionalProperties': False,
+ 'properties': {'endpoint': {'type': 'string'},
+ 'name': {'type': 'string'}},
+ 'required': ['name'],
+ 'type': 'object'},
+ 'CloudResult': {'additionalProperties': False,
+ 'properties': {'cloud': {'$ref': '#/definitions/Cloud'},
+ 'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'CloudResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/CloudResult'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'Entities': {'additionalProperties': False,
+ 'properties': {'entities': {'items': {'$ref': '#/definitions/Entity'},
+ 'type': 'array'}},
+ 'required': ['entities'],
+ 'type': 'object'},
+ 'Entity': {'additionalProperties': False,
+ 'properties': {'tag': {'type': 'string'}},
+ 'required': ['tag'],
+ 'type': 'object'},
+ 'Error': {'additionalProperties': False,
+ 'properties': {'code': {'type': 'string'},
+ 'info': {'$ref': '#/definitions/ErrorInfo'},
+ 'message': {'type': 'string'}},
+ 'required': ['message', 'code'],
+ 'type': 'object'},
+ 'ErrorInfo': {'additionalProperties': False,
+ 'properties': {'macaroon': {'$ref': '#/definitions/Macaroon'},
+ 'macaroon-path': {'type': 'string'}},
+ 'type': 'object'},
+ 'ErrorResult': {'additionalProperties': False,
+ 'properties': {'error': {'$ref': '#/definitions/Error'}},
+ 'type': 'object'},
+ 'ErrorResults': {'additionalProperties': False,
+ 'properties': {'results': {'items': {'$ref': '#/definitions/ErrorResult'},
+ 'type': 'array'}},
+ 'required': ['results'],
+ 'type': 'object'},
+ 'Macaroon': {'additionalProperties': False, 'type': 'object'},
+ 'UserCloud': {'additionalProperties': False,
+ 'properties': {'cloud-tag': {'type': 'string'},
+ 'user-tag': {'type': 'string'}},
+ 'required': ['user-tag', 'cloud-tag'],
+ 'type': 'object'},
+ 'UserCloudCredentials': {'additionalProperties': False,
+ 'properties': {'cloud-tag': {'type': 'string'},
+ 'credentials': {'patternProperties': {'.*': {'$ref': '#/definitions/CloudCredential'}},
+ 'type': 'object'},
+ 'user-tag': {'type': 'string'}},
+ 'required': ['user-tag',
+ 'cloud-tag',
+ 'credentials'],
+ 'type': 'object'},
+ 'UserClouds': {'additionalProperties': False,
+ 'properties': {'user-clouds': {'items': {'$ref': '#/definitions/UserCloud'},
+ 'type': 'array'}},
+ 'type': 'object'},
+ 'UsersCloudCredentials': {'additionalProperties': False,
+ 'properties': {'users': {'items': {'$ref': '#/definitions/UserCloudCredentials'},
+ 'type': 'array'}},
+ 'required': ['users'],
+ 'type': 'object'}},
+ 'properties': {'Cloud': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/CloudResults'}},
+ 'type': 'object'},
+ 'CloudDefaults': {'properties': {'Params': {'$ref': '#/definitions/Entities'},
+ 'Result': {'$ref': '#/definitions/CloudDefaultsResults'}},
+ 'type': 'object'},
+ 'Credentials': {'properties': {'Params': {'$ref': '#/definitions/UserClouds'},
+ 'Result': {'$ref': '#/definitions/CloudCredentialsResults'}},
+ 'type': 'object'},
+ 'UpdateCredentials': {'properties': {'Params': {'$ref': '#/definitions/UsersCloudCredentials'},
+ 'Result': {'$ref': '#/definitions/ErrorResults'}},
+ 'type': 'object'}},
+ 'type': 'object'}
+
+
+ @ReturnMapping(CloudResults)
+ async def Cloud(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Cloud', Request='Cloud', Version=1, Params=params)
+ params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(CloudDefaultsResults)
+ async def CloudDefaults(self, entities):
+ '''
+ entities : typing.Sequence[~Entity]
+ Returns -> typing.Sequence[~CloudDefaultsResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Cloud', Request='CloudDefaults', Version=1, Params=params)
+ params['entities'] = entities
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(CloudCredentialsResults)
+ async def Credentials(self, user_clouds):
+ '''
+ user_clouds : typing.Sequence[~UserCloud]
+ Returns -> typing.Sequence[~CloudCredentialsResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Cloud', Request='Credentials', Version=1, Params=params)
+ params['user-clouds'] = user_clouds
+ reply = await self.rpc(msg)
+ return reply
+
+
+
+ @ReturnMapping(ErrorResults)
+ async def UpdateCredentials(self, users):
+ '''
+ users : typing.Sequence[~UserCloudCredentials]
+ Returns -> typing.Sequence[~ErrorResult]
+ '''
+ # map input types to rpc msg
+ params = dict()
+ msg = dict(Type='Cloud', Request='UpdateCredentials', Version=1, Params=params)
+ params['users'] = users
+ reply = await self.rpc(msg)
+ return reply
+
+