All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsAsyncClient Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.dynamodb.streams;

import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.annotations.ThreadSafe;
import software.amazon.awssdk.awscore.AwsClient;
import software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest;
import software.amazon.awssdk.services.dynamodb.model.DescribeStreamResponse;
import software.amazon.awssdk.services.dynamodb.model.GetRecordsRequest;
import software.amazon.awssdk.services.dynamodb.model.GetRecordsResponse;
import software.amazon.awssdk.services.dynamodb.model.GetShardIteratorRequest;
import software.amazon.awssdk.services.dynamodb.model.GetShardIteratorResponse;
import software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest;
import software.amazon.awssdk.services.dynamodb.model.ListStreamsResponse;

/**
 * Service client for accessing Amazon DynamoDB Streams asynchronously. This can be created using the static
 * {@link #builder()} method.
 *
 * Amazon DynamoDB
 * 

* Amazon DynamoDB Streams provides API actions for accessing streams and processing stream records. To learn more about * application development with Streams, see Capturing Table Activity with * DynamoDB Streams in the Amazon DynamoDB Developer Guide. *

*/ @Generated("software.amazon.awssdk:codegen") @SdkPublicApi @ThreadSafe public interface DynamoDbStreamsAsyncClient extends AwsClient { String SERVICE_NAME = "dynamodb"; /** * Value for looking up the service's metadata from the * {@link software.amazon.awssdk.regions.ServiceMetadataProvider}. */ String SERVICE_METADATA_ID = "streams.dynamodb"; /** *

* Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), * the composition of its shards, and its corresponding DynamoDB table. *

* *

* You can call DescribeStream at a maximum rate of 10 times per second. *

*
*

* Each shard in the stream has a SequenceNumberRange associated with it. If the * SequenceNumberRange has a StartingSequenceNumber but no * EndingSequenceNumber, then the shard is still open (able to receive more stream records). If both * StartingSequenceNumber and EndingSequenceNumber are present, then that shard is closed * and can no longer receive more data. *

* * @param describeStreamRequest * Represents the input of a DescribeStream operation. * @return A Java Future containing the result of the DescribeStream operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
  • *
  • InternalServerErrorException An error occurred on the server side.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample DynamoDbStreamsAsyncClient.DescribeStream * @see AWS API Documentation */ default CompletableFuture describeStream(DescribeStreamRequest describeStreamRequest) { throw new UnsupportedOperationException(); } /** *

* Returns information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), * the composition of its shards, and its corresponding DynamoDB table. *

* *

* You can call DescribeStream at a maximum rate of 10 times per second. *

*
*

* Each shard in the stream has a SequenceNumberRange associated with it. If the * SequenceNumberRange has a StartingSequenceNumber but no * EndingSequenceNumber, then the shard is still open (able to receive more stream records). If both * StartingSequenceNumber and EndingSequenceNumber are present, then that shard is closed * and can no longer receive more data. *

*
*

* This is a convenience which creates an instance of the {@link DescribeStreamRequest.Builder} avoiding the need to * create one manually via {@link DescribeStreamRequest#builder()} *

* * @param describeStreamRequest * A {@link Consumer} that will call methods on * {@link software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest.Builder} to create a request. * Represents the input of a DescribeStream operation. * @return A Java Future containing the result of the DescribeStream operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
  • *
  • InternalServerErrorException An error occurred on the server side.
  • *
  • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
  • *
  • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
  • *
  • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
  • *
* @sample DynamoDbStreamsAsyncClient.DescribeStream * @see AWS API Documentation */ default CompletableFuture describeStream(Consumer describeStreamRequest) { return describeStream(DescribeStreamRequest.builder().applyMutation(describeStreamRequest).build()); } /** *

* Retrieves the stream records from a given shard. *

*

* Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the * position in the shard from which you want to start reading stream records sequentially. If there are no stream * records available in the portion of the shard that the iterator points to, GetRecords returns an * empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records. *

* *

* GetRecords can retrieve a maximum of 1 MB of data or 1000 stream records, whichever comes first. *

*
* * @param getRecordsRequest * Represents the input of a GetRecords operation. * @return A Java Future containing the result of the GetRecords operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
    *
  • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
  • *
  • LimitExceededException There is no limit to the number of daily on-demand backups that can be taken. *

    *

    * For most purposes, up to 500 simultaneous table operations are allowed per account. These operations * include CreateTable, UpdateTable, DeleteTable, * UpdateTimeToLive, RestoreTableFromBackup, and * RestoreTableToPointInTime. *

    *

    * When you are creating a table with one or more secondary indexes, you can have up to 250 such requests * running at a time. However, if the table or index specifications are complex, then DynamoDB might * temporarily reduce the number of concurrent operations. *

    *

    * When importing into DynamoDB, up to 50 simultaneous import table operations are allowed per account. *

    *

    * There is a soft account quota of 2,500 tables. *

    *

    * GetRecords was called with a value of more than 1000 for the limit request parameter. *

    *

    * More than 2 processes are reading from the same streams shard at the same time. Exceeding this limit may * result in request throttling.

  • *
  • InternalServerErrorException An error occurred on the server side.
  • *
  • ExpiredIteratorException The shard iterator has expired and can no longer be used to retrieve stream * records. A shard iterator expires 15 minutes after it is retrieved using the * GetShardIterator action.
  • *
  • TrimmedDataAccessException The operation attempted to read past the oldest stream record in a * shard.

    *

    * In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this * limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException * if: *

    *
      *
    • *

      * You request a shard iterator with a sequence number older than the trim point (24 hours). *

      *
    • *
    • *

      * You obtain a shard iterator, but before you use the iterator in a GetRecords request, a * stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access * a record that no longer exists. *

      *
    • *
    • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
    • *
    • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
    • *
    • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
    • *
    * @sample DynamoDbStreamsAsyncClient.GetRecords * @see AWS * API Documentation */ default CompletableFuture getRecords(GetRecordsRequest getRecordsRequest) { throw new UnsupportedOperationException(); } /** *

    * Retrieves the stream records from a given shard. *

    *

    * Specify a shard iterator using the ShardIterator parameter. The shard iterator specifies the * position in the shard from which you want to start reading stream records sequentially. If there are no stream * records available in the portion of the shard that the iterator points to, GetRecords returns an * empty list. Note that it might take multiple calls to get to a portion of the shard that contains stream records. *

    * *

    * GetRecords can retrieve a maximum of 1 MB of data or 1000 stream records, whichever comes first. *

    *

    *

    * This is a convenience which creates an instance of the {@link GetRecordsRequest.Builder} avoiding the need to * create one manually via {@link GetRecordsRequest#builder()} *

    * * @param getRecordsRequest * A {@link Consumer} that will call methods on * {@link software.amazon.awssdk.services.dynamodb.model.GetRecordsRequest.Builder} to create a request. * Represents the input of a GetRecords operation. * @return A Java Future containing the result of the GetRecords operation returned by the service.
    * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
      *
    • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
    • *
    • LimitExceededException There is no limit to the number of daily on-demand backups that can be taken. *

      *

      * For most purposes, up to 500 simultaneous table operations are allowed per account. These operations * include CreateTable, UpdateTable, DeleteTable, * UpdateTimeToLive, RestoreTableFromBackup, and * RestoreTableToPointInTime. *

      *

      * When you are creating a table with one or more secondary indexes, you can have up to 250 such requests * running at a time. However, if the table or index specifications are complex, then DynamoDB might * temporarily reduce the number of concurrent operations. *

      *

      * When importing into DynamoDB, up to 50 simultaneous import table operations are allowed per account. *

      *

      * There is a soft account quota of 2,500 tables. *

      *

      * GetRecords was called with a value of more than 1000 for the limit request parameter. *

      *

      * More than 2 processes are reading from the same streams shard at the same time. Exceeding this limit may * result in request throttling.

    • *
    • InternalServerErrorException An error occurred on the server side.
    • *
    • ExpiredIteratorException The shard iterator has expired and can no longer be used to retrieve stream * records. A shard iterator expires 15 minutes after it is retrieved using the * GetShardIterator action.
    • *
    • TrimmedDataAccessException The operation attempted to read past the oldest stream record in a * shard.

      *

      * In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this * limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException * if: *

      *
        *
      • *

        * You request a shard iterator with a sequence number older than the trim point (24 hours). *

        *
      • *
      • *

        * You obtain a shard iterator, but before you use the iterator in a GetRecords request, a * stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access * a record that no longer exists. *

        *
      • *
      • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
      • *
      • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
      • *
      • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
      • *
      * @sample DynamoDbStreamsAsyncClient.GetRecords * @see AWS * API Documentation */ default CompletableFuture getRecords(Consumer getRecordsRequest) { return getRecords(GetRecordsRequest.builder().applyMutation(getRecordsRequest).build()); } /** *

      * Returns a shard iterator. A shard iterator provides information about how to retrieve the stream records from * within a shard. Use the shard iterator in a subsequent GetRecords request to read the stream records * from the shard. *

      * *

      * A shard iterator expires 15 minutes after it is returned to the requester. *

      *
      * * @param getShardIteratorRequest * Represents the input of a GetShardIterator operation. * @return A Java Future containing the result of the GetShardIterator operation returned by the service.
      * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
        *
      • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
      • *
      • InternalServerErrorException An error occurred on the server side.
      • *
      • TrimmedDataAccessException The operation attempted to read past the oldest stream record in a * shard.

        *

        * In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this * limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException * if: *

        *
          *
        • *

          * You request a shard iterator with a sequence number older than the trim point (24 hours). *

          *
        • *
        • *

          * You obtain a shard iterator, but before you use the iterator in a GetRecords request, a * stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access * a record that no longer exists. *

          *
        • *
        • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
        • *
        • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
        • *
        • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
        • *
        * @sample DynamoDbStreamsAsyncClient.GetShardIterator * @see AWS API Documentation */ default CompletableFuture getShardIterator(GetShardIteratorRequest getShardIteratorRequest) { throw new UnsupportedOperationException(); } /** *

        * Returns a shard iterator. A shard iterator provides information about how to retrieve the stream records from * within a shard. Use the shard iterator in a subsequent GetRecords request to read the stream records * from the shard. *

        * *

        * A shard iterator expires 15 minutes after it is returned to the requester. *

        *

        *

        * This is a convenience which creates an instance of the {@link GetShardIteratorRequest.Builder} avoiding the need * to create one manually via {@link GetShardIteratorRequest#builder()} *

        * * @param getShardIteratorRequest * A {@link Consumer} that will call methods on * {@link software.amazon.awssdk.services.dynamodb.model.GetShardIteratorRequest.Builder} to create a * request. Represents the input of a GetShardIterator operation. * @return A Java Future containing the result of the GetShardIterator operation returned by the service.
        * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
          *
        • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
        • *
        • InternalServerErrorException An error occurred on the server side.
        • *
        • TrimmedDataAccessException The operation attempted to read past the oldest stream record in a * shard.

          *

          * In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records whose age exceeds this * limit are subject to removal (trimming) from the stream. You might receive a TrimmedDataAccessException * if: *

          *
            *
          • *

            * You request a shard iterator with a sequence number older than the trim point (24 hours). *

            *
          • *
          • *

            * You obtain a shard iterator, but before you use the iterator in a GetRecords request, a * stream record in the shard exceeds the 24 hour period and is trimmed. This causes the iterator to access * a record that no longer exists. *

            *
          • *
          • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
          • *
          • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
          • *
          • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
          • *
          * @sample DynamoDbStreamsAsyncClient.GetShardIterator * @see AWS API Documentation */ default CompletableFuture getShardIterator( Consumer getShardIteratorRequest) { return getShardIterator(GetShardIteratorRequest.builder().applyMutation(getShardIteratorRequest).build()); } /** *

          * Returns an array of stream ARNs associated with the current account and endpoint. If the TableName * parameter is present, then ListStreams will return only the streams ARNs for that table. *

          * *

          * You can call ListStreams at a maximum rate of 5 times per second. *

          *
          * * @param listStreamsRequest * Represents the input of a ListStreams operation. * @return A Java Future containing the result of the ListStreams operation returned by the service.
          * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
            *
          • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
          • *
          • InternalServerErrorException An error occurred on the server side.
          • *
          • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
          • *
          • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
          • *
          • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
          • *
          * @sample DynamoDbStreamsAsyncClient.ListStreams * @see AWS * API Documentation */ default CompletableFuture listStreams(ListStreamsRequest listStreamsRequest) { throw new UnsupportedOperationException(); } /** *

          * Returns an array of stream ARNs associated with the current account and endpoint. If the TableName * parameter is present, then ListStreams will return only the streams ARNs for that table. *

          * *

          * You can call ListStreams at a maximum rate of 5 times per second. *

          *

          *

          * This is a convenience which creates an instance of the {@link ListStreamsRequest.Builder} avoiding the need to * create one manually via {@link ListStreamsRequest#builder()} *

          * * @param listStreamsRequest * A {@link Consumer} that will call methods on * {@link software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest.Builder} to create a request. * Represents the input of a ListStreams operation. * @return A Java Future containing the result of the ListStreams operation returned by the service.
          * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
            *
          • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
          • *
          • InternalServerErrorException An error occurred on the server side.
          • *
          • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
          • *
          • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
          • *
          • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
          • *
          * @sample DynamoDbStreamsAsyncClient.ListStreams * @see AWS * API Documentation */ default CompletableFuture listStreams(Consumer listStreamsRequest) { return listStreams(ListStreamsRequest.builder().applyMutation(listStreamsRequest).build()); } /** *

          * Returns an array of stream ARNs associated with the current account and endpoint. If the TableName * parameter is present, then ListStreams will return only the streams ARNs for that table. *

          * *

          * You can call ListStreams at a maximum rate of 5 times per second. *

          *
          * * @return A Java Future containing the result of the ListStreams operation returned by the service.
          * The CompletableFuture returned by this method can be completed exceptionally with the following * exceptions. *
            *
          • ResourceNotFoundException The operation tried to access a nonexistent table or index. The resource * might not be specified correctly, or its status might not be ACTIVE.
          • *
          • InternalServerErrorException An error occurred on the server side.
          • *
          • SdkException Base class for all exceptions that can be thrown by the SDK (both service and client). * Can be used for catch all scenarios.
          • *
          • SdkClientException If any client side error occurs such as an IO related failure, failure to get * credentials, etc.
          • *
          • DynamoDbStreamsException Base class for all service exceptions. Unknown exceptions will be thrown as * an instance of this type.
          • *
          * @sample DynamoDbStreamsAsyncClient.ListStreams * @see AWS * API Documentation */ default CompletableFuture listStreams() { return listStreams(ListStreamsRequest.builder().build()); } @Override default DynamoDbStreamsServiceClientConfiguration serviceClientConfiguration() { throw new UnsupportedOperationException(); } /** * Create a {@link DynamoDbStreamsAsyncClient} with the region loaded from the * {@link software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain} and credentials loaded from the * {@link software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider}. */ static DynamoDbStreamsAsyncClient create() { return builder().build(); } /** * Create a builder that can be used to configure and create a {@link DynamoDbStreamsAsyncClient}. */ static DynamoDbStreamsAsyncClientBuilder builder() { return new DefaultDynamoDbStreamsAsyncClientBuilder(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy