/* * 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. */ /* * 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 Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Kinesis.Model { /// <summary> /// 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. 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. /// /// /// <para> /// <code>MergeShards</code> 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 <a href="http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-merge.html">Merge /// Two Shards</a> in the <i>Amazon Kinesis Data Streams Developer Guide</i>. /// </para> /// /// <para> /// If the stream is in the <code>ACTIVE</code> state, you can call <code>MergeShards</code>. /// If a stream is in the <code>CREATING</code>, <code>UPDATING</code>, or <code>DELETING</code> /// state, <code>MergeShards</code> returns a <code>ResourceInUseException</code>. If /// the specified stream does not exist, <code>MergeShards</code> returns a <code>ResourceNotFoundException</code>. /// /// </para> /// /// <para> /// You can use <a>DescribeStream</a> to check the state of the stream, which is returned /// in <code>StreamStatus</code>. /// </para> /// /// <para> /// <code>MergeShards</code> is an asynchronous operation. Upon receiving a <code>MergeShards</code> /// request, Amazon Kinesis Data Streams immediately returns a response and sets the <code>StreamStatus</code> /// to <code>UPDATING</code>. After the operation is completed, Kinesis Data Streams sets /// the <code>StreamStatus</code> to <code>ACTIVE</code>. Read and write operations continue /// to work while the stream is in the <code>UPDATING</code> state. /// </para> /// /// <para> /// You use <a>DescribeStream</a> to determine the shard IDs that are specified in the /// <code>MergeShards</code> request. /// </para> /// /// <para> /// If you try to operate on too many streams in parallel using <a>CreateStream</a>, <a>DeleteStream</a>, /// <code>MergeShards</code>, or <a>SplitShard</a>, you receive a <code>LimitExceededException</code>. /// /// </para> /// /// <para> /// <code>MergeShards</code> has a limit of five transactions per second per account. /// </para> /// </summary> public partial class MergeShardsRequest : AmazonKinesisRequest { private string _adjacentShardToMerge; private string _shardToMerge; private string _streamName; /// <summary> /// Gets and sets the property AdjacentShardToMerge. /// <para> /// The shard ID of the adjacent shard for the merge. /// </para> /// </summary> [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; } /// <summary> /// Gets and sets the property ShardToMerge. /// <para> /// The shard ID of the shard to combine with the adjacent shard for the merge. /// </para> /// </summary> [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; } /// <summary> /// Gets and sets the property StreamName. /// <para> /// The name of the stream for the merge. /// </para> /// </summary> [AWSProperty(Required=true, 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; } } }