/*
* 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.
*/
/*
* Do not modify this file. This file is generated from the kinesis-2013-12-02.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Kinesis.Model
{
///
/// Container for the parameters to the MergeShards operation.
/// Merges two adjacent shards in a Kinesis data stream and combines them into a single
/// shard to reduce the stream's capacity to ingest and transport data. This API is only
/// supported for the data streams with the provisioned capacity mode. Two shards are
/// considered adjacent if the union of the hash key ranges for the two shards form a
/// contiguous set with no gaps. For example, if you have two shards, one with a hash
/// key range of 276...381 and the other with a hash key range of 382...454, then you
/// could merge these two shards into a single shard that would have a hash key range
/// of 276...454. After the merge, the single child shard receives data for all hash key
/// values covered by the two parent shards.
///
///
///
/// When invoking this API, it is recommended you use the StreamARN
input
/// parameter rather than the StreamName
input parameter.
///
///
///
/// MergeShards
is called when there is a need to reduce the overall capacity
/// of a stream because of excess capacity that is not being used. You must specify the
/// shard to be merged and the adjacent shard for a stream. For more information about
/// merging shards, see Merge
/// Two Shards in the Amazon Kinesis Data Streams Developer Guide.
///
///
///
/// If the stream is in the ACTIVE
state, you can call MergeShards
.
/// If a stream is in the CREATING
, UPDATING
, or DELETING
/// state, MergeShards
returns a ResourceInUseException
. If
/// the specified stream does not exist, MergeShards
returns a ResourceNotFoundException
.
///
///
///
///
/// You can use DescribeStreamSummary to check the state of the stream, which is
/// returned in StreamStatus
.
///
///
///
/// MergeShards
is an asynchronous operation. Upon receiving a MergeShards
/// request, Amazon Kinesis Data Streams immediately returns a response and sets the StreamStatus
/// to UPDATING
. After the operation is completed, Kinesis Data Streams sets
/// the StreamStatus
to ACTIVE
. Read and write operations continue
/// to work while the stream is in the UPDATING
state.
///
///
///
/// You use DescribeStreamSummary and the ListShards APIs to determine the
/// shard IDs that are specified in the MergeShards
request.
///
///
///
/// If you try to operate on too many streams in parallel using CreateStream, DeleteStream,
/// MergeShards
, or SplitShard, you receive a LimitExceededException
.
///
///
///
///
/// MergeShards
has a limit of five transactions per second per account.
///
///
public partial class MergeShardsRequest : AmazonKinesisRequest
{
private string _adjacentShardToMerge;
private string _shardToMerge;
private string _streamARN;
private string _streamName;
///
/// Gets and sets the property AdjacentShardToMerge.
///
/// The shard ID of the adjacent shard for the merge.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string AdjacentShardToMerge
{
get { return this._adjacentShardToMerge; }
set { this._adjacentShardToMerge = value; }
}
// Check to see if AdjacentShardToMerge property is set
internal bool IsSetAdjacentShardToMerge()
{
return this._adjacentShardToMerge != null;
}
///
/// Gets and sets the property ShardToMerge.
///
/// The shard ID of the shard to combine with the adjacent shard for the merge.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string ShardToMerge
{
get { return this._shardToMerge; }
set { this._shardToMerge = value; }
}
// Check to see if ShardToMerge property is set
internal bool IsSetShardToMerge()
{
return this._shardToMerge != null;
}
///
/// Gets and sets the property StreamARN.
///
/// The ARN of the stream.
///
///
[AWSProperty(Min=1, Max=2048)]
public string StreamARN
{
get { return this._streamARN; }
set { this._streamARN = value; }
}
// Check to see if StreamARN property is set
internal bool IsSetStreamARN()
{
return this._streamARN != null;
}
///
/// Gets and sets the property StreamName.
///
/// The name of the stream for the merge.
///
///
[AWSProperty(Min=1, Max=128)]
public string StreamName
{
get { return this._streamName; }
set { this._streamName = value; }
}
// Check to see if StreamName property is set
internal bool IsSetStreamName()
{
return this._streamName != null;
}
}
}