
software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsAsyncClient Maven / Gradle / Ivy
/*
* Copyright 2013-2018 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.core.SdkClient;
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;
import software.amazon.awssdk.services.dynamodb.streams.paginators.DescribeStreamPublisher;
import software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher;
/**
* Service client for accessing null 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")
public interface DynamoDbStreamsAsyncClient extends SdkClient {
String SERVICE_NAME = "dynamodb";
/**
* 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();
}
/**
*
* 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 stream.
* - 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 DescribeStreamInput.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 stream.
* - 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());
}
/**
*
* 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 variant of
* {@link #describeStream(software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest)} operation. The
* return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will
* internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the forEach helper method
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.DescribeStreamPublisher publisher = client.describeStreamPaginator(request);
* CompletableFuture future = publisher.forEach(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.DescribeStreamPublisher publisher = client.describeStreamPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.dynamodb.model.DescribeStreamResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Note: If you prefer to have control on service calls, use the
* {@link #describeStream(software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest)} operation.
*
*
* @param describeStreamRequest
* Represents the input of a DescribeStream
operation.
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ResourceNotFoundException The operation tried to access a nonexistent stream.
* - 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 DescribeStreamPublisher describeStreamPaginator(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 variant of
* {@link #describeStream(software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest)} operation. The
* return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will
* internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the forEach helper method
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.DescribeStreamPublisher publisher = client.describeStreamPaginator(request);
* CompletableFuture future = publisher.forEach(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.DescribeStreamPublisher publisher = client.describeStreamPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.dynamodb.model.DescribeStreamResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Note: If you prefer to have control on service calls, use the
* {@link #describeStream(software.amazon.awssdk.services.dynamodb.model.DescribeStreamRequest)} operation.
*
*
* 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 DescribeStreamInput.Builder} to create a request.
* Represents the input of a DescribeStream
operation.
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ResourceNotFoundException The operation tried to access a nonexistent stream.
* - 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 DescribeStreamPublisher describeStreamPaginator(Consumer describeStreamRequest) {
return describeStreamPaginator(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 stream.
* - LimitExceededException Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
* requests that receive this exception. Your request is eventually successful, unless your retry queue is
* too large to finish. Reduce the frequency of requests and use exponential backoff. For more information,
* go to Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.
* - 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 GetRecordsInput.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 stream.
* - LimitExceededException Your request rate is too high. The AWS SDKs for DynamoDB automatically retry
* requests that receive this exception. Your request is eventually successful, unless your retry queue is
* too large to finish. Reduce the frequency of requests and use exponential backoff. For more information,
* go to Error Retries and Exponential Backoff in the Amazon DynamoDB Developer Guide.
* - 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 stream.
* - 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 GetShardIteratorInput.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 stream.
* - 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 stream.
* - 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 ListStreamsInput.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 stream.
* - 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 stream.
* - 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());
}
/**
*
* 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 variant of {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)}
* operation. The return type is a custom publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the forEach helper method
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* CompletableFuture future = publisher.forEach(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.dynamodb.model.ListStreamsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Note: If you prefer to have control on service calls, use the
* {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)} operation.
*
*
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ResourceNotFoundException The operation tried to access a nonexistent stream.
* - 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 ListStreamsPublisher listStreamsPaginator() {
return listStreamsPaginator(ListStreamsRequest.builder().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.
*
*
*
* This is a variant of {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)}
* operation. The return type is a custom publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the forEach helper method
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* CompletableFuture future = publisher.forEach(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.dynamodb.model.ListStreamsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Note: If you prefer to have control on service calls, use the
* {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)} operation.
*
*
* @param listStreamsRequest
* Represents the input of a ListStreams
operation.
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ResourceNotFoundException The operation tried to access a nonexistent stream.
* - 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 ListStreamsPublisher listStreamsPaginator(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 variant of {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)}
* operation. The return type is a custom publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the forEach helper method
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* CompletableFuture future = publisher.forEach(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.dynamodb.streams.paginators.ListStreamsPublisher publisher = client.listStreamsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.dynamodb.model.ListStreamsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Note: If you prefer to have control on service calls, use the
* {@link #listStreams(software.amazon.awssdk.services.dynamodb.model.ListStreamsRequest)} operation.
*
*
* 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 ListStreamsInput.Builder} to create a request.
* Represents the input of a ListStreams
operation.
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - ResourceNotFoundException The operation tried to access a nonexistent stream.
* - 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 ListStreamsPublisher listStreamsPaginator(Consumer listStreamsRequest) {
return listStreamsPaginator(ListStreamsRequest.builder().applyMutation(listStreamsRequest).build());
}
}