com.amazonaws.services.kinesis.model.GetShardIteratorRequest Maven / Gradle / Ivy
Show all versions of aws-android-sdk-mobileanalytics Show documentation
/*
* Copyright 2010-2014 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 com.amazonaws.services.kinesis.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
* Container for the parameters to the {@link com.amazonaws.services.kinesis.AmazonKinesis#getShardIterator(GetShardIteratorRequest) GetShardIterator operation}.
*
* This operation returns a shard iterator in ShardIterator
* . The shard iterator specifies the position in the shard from which
* you want to start reading data records sequentially. A shard iterator
* specifies this position using the sequence number of a data record in
* a shard. A sequence number is the identifier associated with every
* record ingested in the Amazon Kinesis stream. The sequence number is
* assigned by the Amazon Kinesis service when a record is put into the
* stream.
*
*
* You must specify the shard iterator type in the
* GetShardIterator
request. For example, you can set the
* ShardIteratorType
parameter to read exactly from the
* position denoted by a specific sequence number by using the
* AT_SEQUENCE_NUMBER shard iterator type, or right after the sequence
* number by using the AFTER_SEQUENCE_NUMBER shard iterator type, using
* sequence numbers returned by earlier PutRecord, GetRecords or
* DescribeStream requests. You can specify the shard iterator type
* TRIM_HORIZON in the request to cause ShardIterator
to
* point to the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard. Or you can point to just after
* the most recent record in the shard, by using the shard iterator type
* LATEST, so that you always read the most recent data in the shard.
*
*
* Note: Each shard iterator expires five minutes after it is
* returned to the requester.
*
*
* When you repeatedly read from an Amazon Kinesis stream use a
* GetShardIterator request to get the first shard iterator to to use in
* your first GetRecords
request and then use the shard
* iterator returned by the GetRecords
request in
* NextShardIterator
for subsequent reads. A new shard
* iterator is returned by every GetRecords
request in
* NextShardIterator
,
* which you use in the ShardIterator
parameter
* of the next GetRecords
request.
*
*
* If a GetShardIterator
request is made too often, you will
* receive a ProvisionedThroughputExceededException
.
* For more information about throughput limits, see the
* Amazon Kinesis Developer Guide
* .
*
*
* GetShardIterator
can return null
for its
* ShardIterator
to indicate that the shard has been closed
* and that the requested iterator will return no more data. A shard can
* be closed by a SplitShard or MergeShards operation.
*
*
* GetShardIterator
has a limit of 5 transactions per
* second per account per open shard.
*
*
* @see com.amazonaws.services.kinesis.AmazonKinesis#getShardIterator(GetShardIteratorRequest)
*/
public class GetShardIteratorRequest extends AmazonWebServiceRequest implements Serializable {
/**
* The name of the stream.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*/
private String streamName;
/**
* The shard ID of the shard to get the iterator for.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*/
private String shardId;
/**
* Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*/
private String shardIteratorType;
/**
* The sequence number of the data record in the shard from which to
* start reading from.
*
* Constraints:
* Pattern: 0|([1-9]\d{0,128})
*/
private String startingSequenceNumber;
/**
* The name of the stream.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @return The name of the stream.
*/
public String getStreamName() {
return streamName;
}
/**
* The name of the stream.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param streamName The name of the stream.
*/
public void setStreamName(String streamName) {
this.streamName = streamName;
}
/**
* The name of the stream.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param streamName The name of the stream.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetShardIteratorRequest withStreamName(String streamName) {
this.streamName = streamName;
return this;
}
/**
* The shard ID of the shard to get the iterator for.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @return The shard ID of the shard to get the iterator for.
*/
public String getShardId() {
return shardId;
}
/**
* The shard ID of the shard to get the iterator for.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param shardId The shard ID of the shard to get the iterator for.
*/
public void setShardId(String shardId) {
this.shardId = shardId;
}
/**
* The shard ID of the shard to get the iterator for.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Length: 1 - 128
* Pattern: [a-zA-Z0-9_.-]+
*
* @param shardId The shard ID of the shard to get the iterator for.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetShardIteratorRequest withShardId(String shardId) {
this.shardId = shardId;
return this;
}
/**
* Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*
* @return Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* @see ShardIteratorType
*/
public String getShardIteratorType() {
return shardIteratorType;
}
/**
* Determines how the shard iterator is used to start reading data
* records from the shard. The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*
* @param shardIteratorType Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* @see ShardIteratorType
*/
public void setShardIteratorType(String shardIteratorType) {
this.shardIteratorType = shardIteratorType;
}
/**
* Determines how the shard iterator is used to start reading data
* records from the shard. The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*
* @param shardIteratorType Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*
* @see ShardIteratorType
*/
public GetShardIteratorRequest withShardIteratorType(String shardIteratorType) {
this.shardIteratorType = shardIteratorType;
return this;
}
/**
* Determines how the shard iterator is used to start reading data
* records from the shard. The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*
* @param shardIteratorType Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* @see ShardIteratorType
*/
public void setShardIteratorType(ShardIteratorType shardIteratorType) {
this.shardIteratorType = shardIteratorType.toString();
}
/**
* Determines how the shard iterator is used to start reading data
* records from the shard. The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Allowed Values: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST
*
* @param shardIteratorType Determines how the shard iterator is used to start reading data
* records from the shard.
The following are the valid shard iterator
* types:
- AT_SEQUENCE_NUMBER - Start reading exactly from the
* position denoted by a specific sequence number.
* - AFTER_SEQUENCE_NUMBER - Start reading right after the position
* denoted by a specific sequence number.
- TRIM_HORIZON - Start
* reading at the last untrimmed record in the shard in the system, which
* is the oldest data record in the shard.
- LATEST - Start
* reading just after the most recent record in the shard, so that you
* always read the most recent data in the shard.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*
* @see ShardIteratorType
*/
public GetShardIteratorRequest withShardIteratorType(ShardIteratorType shardIteratorType) {
this.shardIteratorType = shardIteratorType.toString();
return this;
}
/**
* The sequence number of the data record in the shard from which to
* start reading from.
*
* Constraints:
* Pattern: 0|([1-9]\d{0,128})
*
* @return The sequence number of the data record in the shard from which to
* start reading from.
*/
public String getStartingSequenceNumber() {
return startingSequenceNumber;
}
/**
* The sequence number of the data record in the shard from which to
* start reading from.
*
* Constraints:
* Pattern: 0|([1-9]\d{0,128})
*
* @param startingSequenceNumber The sequence number of the data record in the shard from which to
* start reading from.
*/
public void setStartingSequenceNumber(String startingSequenceNumber) {
this.startingSequenceNumber = startingSequenceNumber;
}
/**
* The sequence number of the data record in the shard from which to
* start reading from.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Pattern: 0|([1-9]\d{0,128})
*
* @param startingSequenceNumber The sequence number of the data record in the shard from which to
* start reading from.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetShardIteratorRequest withStartingSequenceNumber(String startingSequenceNumber) {
this.startingSequenceNumber = startingSequenceNumber;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getStreamName() != null) sb.append("StreamName: " + getStreamName() + ",");
if (getShardId() != null) sb.append("ShardId: " + getShardId() + ",");
if (getShardIteratorType() != null) sb.append("ShardIteratorType: " + getShardIteratorType() + ",");
if (getStartingSequenceNumber() != null) sb.append("StartingSequenceNumber: " + getStartingSequenceNumber() );
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getStreamName() == null) ? 0 : getStreamName().hashCode());
hashCode = prime * hashCode + ((getShardId() == null) ? 0 : getShardId().hashCode());
hashCode = prime * hashCode + ((getShardIteratorType() == null) ? 0 : getShardIteratorType().hashCode());
hashCode = prime * hashCode + ((getStartingSequenceNumber() == null) ? 0 : getStartingSequenceNumber().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (obj instanceof GetShardIteratorRequest == false) return false;
GetShardIteratorRequest other = (GetShardIteratorRequest)obj;
if (other.getStreamName() == null ^ this.getStreamName() == null) return false;
if (other.getStreamName() != null && other.getStreamName().equals(this.getStreamName()) == false) return false;
if (other.getShardId() == null ^ this.getShardId() == null) return false;
if (other.getShardId() != null && other.getShardId().equals(this.getShardId()) == false) return false;
if (other.getShardIteratorType() == null ^ this.getShardIteratorType() == null) return false;
if (other.getShardIteratorType() != null && other.getShardIteratorType().equals(this.getShardIteratorType()) == false) return false;
if (other.getStartingSequenceNumber() == null ^ this.getStartingSequenceNumber() == null) return false;
if (other.getStartingSequenceNumber() != null && other.getStartingSequenceNumber().equals(this.getStartingSequenceNumber()) == false) return false;
return true;
}
}