Class AmazonCognitoSyncClient

java.lang.Object
com.amazonaws.AmazonWebServiceClient
com.amazonaws.services.cognitosync.AmazonCognitoSyncClient
All Implemented Interfaces:
AmazonCognitoSync
Direct Known Subclasses:
AmazonCognitoSyncAsyncClient

@ThreadSafe public class AmazonCognitoSyncClient extends AmazonWebServiceClient implements AmazonCognitoSync
Client for accessing Amazon Cognito Sync. All service calls made using this client are blocking, and will not return until the service call completes.

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.

If you want to use Cognito Sync in an Android or iOS application, you will probably want to make API calls via the AWS Mobile SDK. To learn more, see the Developer Guide for Android and the Developer Guide for iOS.

  • Field Details

    • configFactory

      protected static final ClientConfigurationFactory configFactory
      Client configuration factory providing ClientConfigurations tailored to this client
  • Constructor Details

    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient()
      Constructs a new client to invoke service methods on Amazon Cognito Sync. A credentials provider chain will be used that searches for credentials in this order:
      • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
      • Java System Properties - aws.accessKeyId and aws.secretKey
      • Instance profile credentials delivered through the Amazon EC2 metadata service

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      See Also:
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(ClientConfiguration clientConfiguration)
      Constructs a new client to invoke service methods on Amazon Cognito Sync. A credentials provider chain will be used that searches for credentials in this order:
      • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
      • Java System Properties - aws.accessKeyId and aws.secretKey
      • Instance profile credentials delivered through the Amazon EC2 metadata service

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      clientConfiguration - The client configuration options controlling how this client connects to Amazon Cognito Sync (ex: proxy settings, retry counts, etc.).
      See Also:
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(AWSCredentials awsCredentials)
      Constructs a new client to invoke service methods on Amazon Cognito Sync using the specified AWS account credentials.

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration)
      Constructs a new client to invoke service methods on Amazon Cognito Sync using the specified AWS account credentials and client configuration options.

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
      clientConfiguration - The client configuration options controlling how this client connects to Amazon Cognito Sync (ex: proxy settings, retry counts, etc.).
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(AWSCredentialsProvider awsCredentialsProvider)
      Constructs a new client to invoke service methods on Amazon Cognito Sync using the specified AWS account credentials provider.

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      awsCredentialsProvider - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration)
      Constructs a new client to invoke service methods on Amazon Cognito Sync using the specified AWS account credentials provider and client configuration options.

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      awsCredentialsProvider - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
      clientConfiguration - The client configuration options controlling how this client connects to Amazon Cognito Sync (ex: proxy settings, retry counts, etc.).
    • AmazonCognitoSyncClient

      public AmazonCognitoSyncClient(AWSCredentialsProvider awsCredentialsProvider, ClientConfiguration clientConfiguration, RequestMetricCollector requestMetricCollector)
      Constructs a new client to invoke service methods on Amazon Cognito Sync using the specified AWS account credentials provider, client configuration options, and request metric collector.

      All service calls made using this new client object are blocking, and will not return until the service call completes.

      Parameters:
      awsCredentialsProvider - The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
      clientConfiguration - The client configuration options controlling how this client connects to Amazon Cognito Sync (ex: proxy settings, retry counts, etc.).
      requestMetricCollector - optional request metric collector
  • Method Details

    • bulkPublish

      public BulkPublishResult bulkPublish(BulkPublishRequest bulkPublishRequest)

      Initiates a bulk publish of all existing datasets for an Identity Pool to the configured stream. Customers are limited to one successful bulk publish per 24 hours. Bulk publish is an asynchronous request, customers can see the status of the request via the GetBulkPublishDetails operation.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      bulkPublish in interface AmazonCognitoSync
      Parameters:
      bulkPublishRequest - The input for the BulkPublish operation.
      Returns:
      Result of the BulkPublish operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      DuplicateRequestException - An exception thrown when there is an IN_PROGRESS bulk publish operation for the given identity pool.
      AlreadyStreamedException - An exception thrown when a bulk publish operation is requested less than 24 hours after a previous bulk publish operation completed successfully.
    • deleteDataset

      public DeleteDatasetResult deleteDataset(DeleteDatasetRequest deleteDatasetRequest)

      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 subsequent operation on this dataset will result in a ResourceNotFoundException.

      This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

      Specified by:
      deleteDataset in interface AmazonCognitoSync
      Parameters:
      deleteDatasetRequest - A request to delete the specific dataset.
      Returns:
      Result of the DeleteDataset operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
      ResourceConflictException - Thrown if an update can't be applied because the resource was changed by another call and this would result in a conflict.
    • describeDataset

      public DescribeDatasetResult describeDataset(DescribeDatasetRequest describeDatasetRequest)

      Gets meta data about a dataset by identity and dataset name. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

      This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

      Specified by:
      describeDataset in interface AmazonCognitoSync
      Parameters:
      describeDatasetRequest - A request for meta data about a dataset (creation date, number of records, size) by owner and dataset name.
      Returns:
      Result of the DescribeDataset operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • describeIdentityPoolUsage

      public DescribeIdentityPoolUsageResult describeIdentityPoolUsage(DescribeIdentityPoolUsageRequest describeIdentityPoolUsageRequest)

      Gets usage details (for example, data storage) about a particular identity pool.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      describeIdentityPoolUsage in interface AmazonCognitoSync
      Parameters:
      describeIdentityPoolUsageRequest - A request for usage information about the identity pool.
      Returns:
      Result of the DescribeIdentityPoolUsage operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • describeIdentityUsage

      public DescribeIdentityUsageResult describeIdentityUsage(DescribeIdentityUsageRequest describeIdentityUsageRequest)

      Gets usage information for an identity, including number of datasets and data usage.

      This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

      Specified by:
      describeIdentityUsage in interface AmazonCognitoSync
      Parameters:
      describeIdentityUsageRequest - A request for information about the usage of an identity pool.
      Returns:
      Result of the DescribeIdentityUsage operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • getBulkPublishDetails

      public GetBulkPublishDetailsResult getBulkPublishDetails(GetBulkPublishDetailsRequest getBulkPublishDetailsRequest)

      Get the status of the last BulkPublish operation for an identity pool.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      getBulkPublishDetails in interface AmazonCognitoSync
      Parameters:
      getBulkPublishDetailsRequest - The input for the GetBulkPublishDetails operation.
      Returns:
      Result of the GetBulkPublishDetails operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
    • getCognitoEvents

      public GetCognitoEventsResult getCognitoEvents(GetCognitoEventsRequest getCognitoEventsRequest)

      Gets the events and the corresponding Lambda functions associated with an identity pool.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      getCognitoEvents in interface AmazonCognitoSync
      Parameters:
      getCognitoEventsRequest - A request for a list of the configured Cognito Events
      Returns:
      Result of the GetCognitoEvents operation returned by the service.
      Throws:
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • getIdentityPoolConfiguration

      public GetIdentityPoolConfigurationResult getIdentityPoolConfiguration(GetIdentityPoolConfigurationRequest getIdentityPoolConfigurationRequest)

      Gets the configuration settings of an identity pool.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      getIdentityPoolConfiguration in interface AmazonCognitoSync
      Parameters:
      getIdentityPoolConfigurationRequest - The input for the GetIdentityPoolConfiguration operation.
      Returns:
      Result of the GetIdentityPoolConfiguration operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • listDatasets

      public ListDatasetsResult listDatasets(ListDatasetsRequest listDatasetsRequest)

      Lists datasets for an identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

      ListDatasets can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use the Cognito Identity credentials to make this API call.

      Specified by:
      listDatasets in interface AmazonCognitoSync
      Parameters:
      listDatasetsRequest - Request for a list of datasets for an identity.
      Returns:
      Result of the ListDatasets operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • listIdentityPoolUsage

      public ListIdentityPoolUsageResult listIdentityPoolUsage(ListIdentityPoolUsageRequest listIdentityPoolUsageRequest)

      Gets a list of identity pools registered with Cognito.

      ListIdentityPoolUsage can only be called with developer credentials. You cannot make this API call with the temporary user credentials provided by Cognito Identity.

      Specified by:
      listIdentityPoolUsage in interface AmazonCognitoSync
      Parameters:
      listIdentityPoolUsageRequest - A request for usage information on an identity pool.
      Returns:
      Result of the ListIdentityPoolUsage operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • listRecords

      public ListRecordsResult listRecords(ListRecordsRequest listRecordsRequest)

      Gets paginated records, optionally changed after a particular sync count for a dataset and identity. With Amazon Cognito Sync, each identity has access only to its own data. Thus, the credentials used to make this API call need to have access to the identity data.

      ListRecords can be called with temporary user credentials provided by Cognito Identity or with developer credentials. You should use Cognito Identity credentials to make this API call.

      Specified by:
      listRecords in interface AmazonCognitoSync
      Parameters:
      listRecordsRequest - A request for a list of records.
      Returns:
      Result of the ListRecords operation returned by the service.
      Throws:
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      TooManyRequestsException - Thrown if the request is throttled.
      InternalErrorException - Indicates an internal service error.
    • registerDevice

      public RegisterDeviceResult registerDevice(RegisterDeviceRequest registerDeviceRequest)

      Registers a device to receive push sync notifications.

      This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

      Specified by:
      registerDevice in interface AmazonCognitoSync
      Parameters:
      registerDeviceRequest - A request to RegisterDevice.
      Returns:
      Result of the RegisterDevice operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      InvalidConfigurationException
      TooManyRequestsException - Thrown if the request is throttled.
    • setCognitoEvents

      public SetCognitoEventsResult setCognitoEvents(SetCognitoEventsRequest setCognitoEventsRequest)

      Sets the AWS Lambda function for a given event type for an identity pool. This request only updates the key/value pair specified. Other key/values pairs are not updated. To remove a key value pair, pass a empty value for the particular key.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      setCognitoEvents in interface AmazonCognitoSync
      Parameters:
      setCognitoEventsRequest - A request to configure Cognito Events"
      Returns:
      Result of the SetCognitoEvents operation returned by the service.
      Throws:
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InternalErrorException - Indicates an internal service error.
      TooManyRequestsException - Thrown if the request is throttled.
    • setIdentityPoolConfiguration

      public SetIdentityPoolConfigurationResult setIdentityPoolConfiguration(SetIdentityPoolConfigurationRequest setIdentityPoolConfigurationRequest)

      Sets the necessary configuration for push sync.

      This API can only be called with developer credentials. You cannot call this API with the temporary user credentials provided by Cognito Identity.

      Specified by:
      setIdentityPoolConfiguration in interface AmazonCognitoSync
      Parameters:
      setIdentityPoolConfigurationRequest - The input for the SetIdentityPoolConfiguration operation.
      Returns:
      Result of the SetIdentityPoolConfiguration operation returned by the service.
    • subscribeToDataset

      public SubscribeToDatasetResult subscribeToDataset(SubscribeToDatasetRequest subscribeToDatasetRequest)

      Subscribes to receive notifications when a dataset is modified by another device.

      This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

      Specified by:
      subscribeToDataset in interface AmazonCognitoSync
      Parameters:
      subscribeToDatasetRequest - A request to SubscribeToDatasetRequest.
      Returns:
      Result of the SubscribeToDataset operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      InvalidConfigurationException
      TooManyRequestsException - Thrown if the request is throttled.
    • unsubscribeFromDataset

      public UnsubscribeFromDatasetResult unsubscribeFromDataset(UnsubscribeFromDatasetRequest unsubscribeFromDatasetRequest)

      Unsubscribes from receiving notifications when a dataset is modified by another device.

      This API can only be called with temporary credentials provided by Cognito Identity. You cannot call this API with developer credentials.

      Specified by:
      unsubscribeFromDataset in interface AmazonCognitoSync
      Parameters:
      unsubscribeFromDatasetRequest - A request to UnsubscribeFromDataset.
      Returns:
      Result of the UnsubscribeFromDataset operation returned by the service.
      Throws:
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      InternalErrorException - Indicates an internal service error.
      InvalidConfigurationException
      TooManyRequestsException - Thrown if the request is throttled.
    • updateRecords

      public UpdateRecordsResult updateRecords(UpdateRecordsRequest updateRecordsRequest)

      Posts updates to records and adds and deletes records for a dataset and user.

      The sync count in the record patch is your last known sync count for that record. The server will reject an UpdateRecords request with a ResourceConflictException if you try to patch a record with a new value but a stale sync count.

      For example, if the sync count on the server is 5 for a key called highScore and you try and submit a new highScore with sync count of 4, the request will be rejected. To obtain the current sync count for a record, call ListRecords. On a successful update of the record, the response returns the new sync count for that record. You should present that sync count the next time you try to update that same record. When the record does not exist, specify the sync count as 0.

      This API can be called with temporary user credentials provided by Cognito Identity or with developer credentials.

      Specified by:
      updateRecords in interface AmazonCognitoSync
      Parameters:
      updateRecordsRequest - A request to post updates to records or add and delete records for a dataset and user.
      Returns:
      Result of the UpdateRecords operation returned by the service.
      Throws:
      InvalidParameterException - Thrown when a request parameter does not comply with the associated constraints.
      LimitExceededException - Thrown when the limit on the number of objects or operations has been exceeded.
      NotAuthorizedException - Thrown when a user is not authorized to access the requested resource.
      ResourceNotFoundException - Thrown if the resource doesn't exist.
      ResourceConflictException - Thrown if an update can't be applied because the resource was changed by another call and this would result in a conflict.
      InvalidLambdaFunctionOutputException - The AWS Lambda function returned invalid output or an exception.
      LambdaThrottledException - AWS Lambda throttled your account, please contact AWS Support
      TooManyRequestsException - Thrown if the request is throttled.
      InternalErrorException - Indicates an internal service error.
    • getCachedResponseMetadata

      public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request)
      Returns additional metadata for a previously executed successful, request, typically used for debugging issues where a service isn't acting as expected. This data isn't considered part of the result data returned by an operation, so it's available through this separate, diagnostic interface.

      Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic information for an executed request, you should use this method to retrieve it as soon as possible after executing the request.

      Specified by:
      getCachedResponseMetadata in interface AmazonCognitoSync
      Parameters:
      request - The originally executed request
      Returns:
      The response metadata for the specified request, or null if none is available.