Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/cognito/sync/layer1.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/cognito/sync/layer1.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,494 +0,0 @@ -# Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, dis- -# tribute, sublicense, and/or sell copies of the Software, and to permit -# persons to whom the Software is furnished to do so, subject to the fol- -# lowing conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# -from boto.compat import json -from boto.exception import JSONResponseError -from boto.connection import AWSAuthConnection -from boto.regioninfo import RegionInfo -from boto.cognito.sync import exceptions - - -class CognitoSyncConnection(AWSAuthConnection): - """ - Amazon Cognito Sync - Amazon Cognito Sync provides an AWS service and client library - that enable cross-device syncing of application-related user data. - High-level client libraries are available for both iOS and - Android. You can use these libraries to persist data locally so - that it's available even if the device is offline. Developer - credentials don't need to be stored on the mobile device to access - the service. You can use Amazon Cognito to obtain a normalized - user ID and credentials. User data is persisted in a dataset that - can store up to 1 MB of key-value pairs, and you can have up to 20 - datasets per user identity. - - With Amazon Cognito Sync, the data stored for each identity is - accessible only to credentials assigned to that identity. In order - to use the Cognito Sync service, you need to make API calls using - credentials retrieved with `Amazon Cognito Identity service`_. - """ - APIVersion = "2014-06-30" - DefaultRegionName = "us-east-1" - DefaultRegionEndpoint = "cognito-sync.us-east-1.amazonaws.com" - ResponseError = JSONResponseError - - _faults = { - "LimitExceededException": exceptions.LimitExceededException, - "ResourceConflictException": exceptions.ResourceConflictException, - "InvalidConfigurationException": exceptions.InvalidConfigurationException, - "TooManyRequestsException": exceptions.TooManyRequestsException, - "InvalidParameterException": exceptions.InvalidParameterException, - "ResourceNotFoundException": exceptions.ResourceNotFoundException, - "InternalErrorException": exceptions.InternalErrorException, - "NotAuthorizedException": exceptions.NotAuthorizedException, - } - - - def __init__(self, **kwargs): - region = kwargs.get('region') - if not region: - region = RegionInfo(self, self.DefaultRegionName, - self.DefaultRegionEndpoint) - else: - del kwargs['region'] - kwargs['host'] = region.endpoint - super(CognitoSyncConnection, self).__init__(**kwargs) - self.region = region - - def _required_auth_capability(self): - return ['hmac-v4'] - - def delete_dataset(self, identity_pool_id, identity_id, dataset_name): - """ - Deletes the specific dataset. The dataset will be deleted - permanently, and the action can't be undone. Datasets that - this dataset was merged with will no longer report the merge. - Any consequent operation on this dataset will result in a - ResourceNotFoundException. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type dataset_name: string - :param dataset_name: A string of up to 128 characters. Allowed - characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' - (dot). - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}'.format( - identity_pool_id, identity_id, dataset_name) - return self.make_request('DELETE', uri, expected_status=200) - - def describe_dataset(self, identity_pool_id, identity_id, dataset_name): - """ - Gets metadata about a dataset by identity and dataset name. - The credentials used to make this API call need to have access - to the identity data. With Amazon Cognito Sync, each identity - has access only to its own data. You should use Amazon Cognito - Identity service to retrieve the credentials necessary to make - this API call. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type dataset_name: string - :param dataset_name: A string of up to 128 characters. Allowed - characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' - (dot). - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}'.format( - identity_pool_id, identity_id, dataset_name) - return self.make_request('GET', uri, expected_status=200) - - def describe_identity_pool_usage(self, identity_pool_id): - """ - Gets usage details (for example, data storage) about a - particular identity pool. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - """ - - uri = '/identitypools/{0}'.format(identity_pool_id) - return self.make_request('GET', uri, expected_status=200) - - def describe_identity_usage(self, identity_pool_id, identity_id): - """ - Gets usage information for an identity, including number of - datasets and data usage. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - """ - - uri = '/identitypools/{0}/identities/{1}'.format( - identity_pool_id, identity_id) - return self.make_request('GET', uri, expected_status=200) - - def get_identity_pool_configuration(self, identity_pool_id): - """ - Gets the configuration settings of an identity pool. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. This is the ID of the pool for which to return a - configuration. - - """ - - uri = '/identitypools/{0}/configuration'.format(identity_pool_id) - return self.make_request('GET', uri, expected_status=200) - - def list_datasets(self, identity_pool_id, identity_id, next_token=None, - max_results=None): - """ - Lists datasets for an identity. The credentials used to make - this API call need to have access to the identity data. With - Amazon Cognito Sync, each identity has access only to its own - data. You should use Amazon Cognito Identity service to - retrieve the credentials necessary to make this API call. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type next_token: string - :param next_token: A pagination token for obtaining the next page of - results. - - :type max_results: integer - :param max_results: The maximum number of results to be returned. - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets'.format( - identity_pool_id, identity_id) - params = {} - headers = {} - query_params = {} - if next_token is not None: - query_params['nextToken'] = next_token - if max_results is not None: - query_params['maxResults'] = max_results - return self.make_request('GET', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def list_identity_pool_usage(self, next_token=None, max_results=None): - """ - Gets a list of identity pools registered with Cognito. - - :type next_token: string - :param next_token: A pagination token for obtaining the next page of - results. - - :type max_results: integer - :param max_results: The maximum number of results to be returned. - - """ - - uri = '/identitypools' - params = {} - headers = {} - query_params = {} - if next_token is not None: - query_params['nextToken'] = next_token - if max_results is not None: - query_params['maxResults'] = max_results - return self.make_request('GET', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def list_records(self, identity_pool_id, identity_id, dataset_name, - last_sync_count=None, next_token=None, max_results=None, - sync_session_token=None): - """ - Gets paginated records, optionally changed after a particular - sync count for a dataset and identity. The credentials used to - make this API call need to have access to the identity data. - With Amazon Cognito Sync, each identity has access only to its - own data. You should use Amazon Cognito Identity service to - retrieve the credentials necessary to make this API call. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type dataset_name: string - :param dataset_name: A string of up to 128 characters. Allowed - characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' - (dot). - - :type last_sync_count: long - :param last_sync_count: The last server sync count for this record. - - :type next_token: string - :param next_token: A pagination token for obtaining the next page of - results. - - :type max_results: integer - :param max_results: The maximum number of results to be returned. - - :type sync_session_token: string - :param sync_session_token: A token containing a session ID, identity - ID, and expiration. - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}/records'.format( - identity_pool_id, identity_id, dataset_name) - params = {} - headers = {} - query_params = {} - if last_sync_count is not None: - query_params['lastSyncCount'] = last_sync_count - if next_token is not None: - query_params['nextToken'] = next_token - if max_results is not None: - query_params['maxResults'] = max_results - if sync_session_token is not None: - query_params['syncSessionToken'] = sync_session_token - return self.make_request('GET', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def register_device(self, identity_pool_id, identity_id, platform, token): - """ - Registers a device to receive push sync notifications. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. Here, the ID of the pool that the identity belongs to. - - :type identity_id: string - :param identity_id: The unique ID for this identity. - - :type platform: string - :param platform: The SNS platform type (e.g. GCM, SDM, APNS, - APNS_SANDBOX). - - :type token: string - :param token: The push token. - - """ - - uri = '/identitypools/{0}/identity/{1}/device'.format( - identity_pool_id, identity_id) - params = {'Platform': platform, 'Token': token, } - headers = {} - query_params = {} - return self.make_request('POST', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def set_identity_pool_configuration(self, identity_pool_id, - push_sync=None): - """ - Sets the necessary configuration for push sync. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. This is the ID of the pool to modify. - - :type push_sync: dict - :param push_sync: Configuration options to be applied to the identity - pool. - - """ - - uri = '/identitypools/{0}/configuration'.format(identity_pool_id) - params = {} - headers = {} - query_params = {} - if push_sync is not None: - params['PushSync'] = push_sync - return self.make_request('POST', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def subscribe_to_dataset(self, identity_pool_id, identity_id, - dataset_name, device_id): - """ - Subscribes to receive notifications when a dataset is modified - by another device. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. The ID of the pool to which the identity belongs. - - :type identity_id: string - :param identity_id: Unique ID for this identity. - - :type dataset_name: string - :param dataset_name: The name of the dataset to subcribe to. - - :type device_id: string - :param device_id: The unique ID generated for this device by Cognito. - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}/subscriptions/{3}'.format( - identity_pool_id, identity_id, dataset_name, device_id) - return self.make_request('POST', uri, expected_status=200) - - def unsubscribe_from_dataset(self, identity_pool_id, identity_id, - dataset_name, device_id): - """ - Unsubscribe from receiving notifications when a dataset is - modified by another device. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. The ID of the pool to which this identity belongs. - - :type identity_id: string - :param identity_id: Unique ID for this identity. - - :type dataset_name: string - :param dataset_name: The name of the dataset from which to unsubcribe. - - :type device_id: string - :param device_id: The unique ID generated for this device by Cognito. - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}/subscriptions/{3}'.format( - identity_pool_id, identity_id, dataset_name, device_id) - return self.make_request('DELETE', uri, expected_status=200) - - def update_records(self, identity_pool_id, identity_id, dataset_name, - sync_session_token, device_id=None, - record_patches=None, client_context=None): - """ - Posts updates to records and add and delete records for a - dataset and user. The credentials used to make this API call - need to have access to the identity data. With Amazon Cognito - Sync, each identity has access only to its own data. You - should use Amazon Cognito Identity service to retrieve the - credentials necessary to make this API call. - - :type identity_pool_id: string - :param identity_pool_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type identity_id: string - :param identity_id: A name-spaced GUID (for example, us- - east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon - Cognito. GUID generation is unique within a region. - - :type dataset_name: string - :param dataset_name: A string of up to 128 characters. Allowed - characters are a-z, A-Z, 0-9, '_' (underscore), '-' (dash), and '.' - (dot). - - :type device_id: string - :param device_id: The unique ID generated for this device by Cognito. - - :type record_patches: list - :param record_patches: A list of patch operations. - - :type sync_session_token: string - :param sync_session_token: The SyncSessionToken returned by a previous - call to ListRecords for this dataset and identity. - - :type client_context: string - :param client_context: Intended to supply a device ID that will - populate the `lastModifiedBy` field referenced in other methods. - The `ClientContext` field is not yet implemented. - - """ - - uri = '/identitypools/{0}/identities/{1}/datasets/{2}'.format( - identity_pool_id, identity_id, dataset_name) - params = {'SyncSessionToken': sync_session_token, } - headers = {} - query_params = {} - if device_id is not None: - params['DeviceId'] = device_id - if record_patches is not None: - params['RecordPatches'] = record_patches - if client_context is not None: - headers['x-amz-Client-Context'] = client_context - if client_context is not None: - headers['x-amz-Client-Context'] = client_context - return self.make_request('POST', uri, expected_status=200, - data=json.dumps(params), headers=headers, - params=query_params) - - def make_request(self, verb, resource, headers=None, data='', - expected_status=None, params=None): - if headers is None: - headers = {} - response = AWSAuthConnection.make_request( - self, verb, resource, headers=headers, data=data, params=params) - body = json.loads(response.read().decode('utf-8')) - if response.status == expected_status: - return body - else: - error_type = response.getheader('x-amzn-ErrorType').split(':')[0] - error_class = self._faults.get(error_type, self.ResponseError) - raise error_class(response.status, response.reason, body)