/* * 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 sqs-2012-11-05.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.SQS.Model { /// /// Container for the parameters to the ChangeMessageVisibility operation. /// Changes the visibility timeout of a specified message in a queue to a new value. The /// default visibility timeout for a message is 30 seconds. The minimum is 0 seconds. /// The maximum is 12 hours. For more information, see Visibility /// Timeout in the Amazon SQS Developer Guide. /// /// /// /// For example, if the default timeout for a queue is 60 seconds, 15 seconds have elapsed /// since you received the message, and you send a ChangeMessageVisibility call with VisibilityTimeout /// set to 10 seconds, the 10 seconds begin to count from the time that you make the ChangeMessageVisibility /// call. Thus, any attempt to change the visibility timeout or to delete that message /// 10 seconds after you initially change the visibility timeout (a total of 25 seconds) /// might result in an error. /// /// /// /// An Amazon SQS message has three basic states: /// ///
  1. /// /// Sent to a queue by a producer. /// ///
  2. /// /// Received from the queue by a consumer. /// ///
  3. /// /// Deleted from the queue. /// ///
/// /// A message is considered to be stored after it is sent to a queue by a producer, /// but not yet received from the queue by a consumer (that is, between states 1 and 2). /// There is no limit to the number of stored messages. A message is considered to be /// in flight after it is received from a queue by a consumer, but not yet deleted /// from the queue (that is, between states 2 and 3). There is a limit to the number of /// in flight messages. /// /// /// /// Limits that apply to in flight messages are unrelated to the unlimited number /// of stored messages. /// /// /// /// For most standard queues (depending on queue traffic and message backlog), there can /// be a maximum of approximately 120,000 in flight messages (received from a queue by /// a consumer, but not yet deleted from the queue). If you reach this limit, Amazon SQS /// returns the OverLimit error message. To avoid reaching the limit, you /// should delete messages from the queue after they're processed. You can also increase /// the number of queues you use to process your messages. To request a limit increase, /// file /// a support request. /// /// /// /// For FIFO queues, there can be a maximum of 20,000 in flight messages (received from /// a queue by a consumer, but not yet deleted from the queue). If you reach this limit, /// Amazon SQS returns no error messages. /// /// /// /// If you attempt to set the VisibilityTimeout to a value greater than the /// maximum time left, Amazon SQS returns an error. Amazon SQS doesn't automatically recalculate /// and increase the timeout to the maximum remaining time. /// /// /// /// Unlike with a queue, when you change the visibility timeout for a specific message /// the timeout value is applied immediately but isn't saved in memory for that message. /// If you don't delete a message after it is received, the visibility timeout for the /// message reverts to the original timeout value (not to the value you set using the /// ChangeMessageVisibility action) the next time the message is received. /// /// ///
public partial class ChangeMessageVisibilityRequest : AmazonSQSRequest { private string _queueUrl; private string _receiptHandle; private int? _visibilityTimeout; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public ChangeMessageVisibilityRequest() { } /// /// Instantiates ChangeMessageVisibilityRequest with the parameterized properties /// /// The URL of the Amazon SQS queue whose message's visibility is changed. Queue URLs and names are case-sensitive. /// The receipt handle associated with the message, whose visibility timeout is changed. This parameter is returned by the ReceiveMessage action. /// The new value for the message's visibility timeout (in seconds). Values range: 0 to 43200. Maximum: 12 hours. public ChangeMessageVisibilityRequest(string queueUrl, string receiptHandle, int visibilityTimeout) { _queueUrl = queueUrl; _receiptHandle = receiptHandle; _visibilityTimeout = visibilityTimeout; } /// /// Gets and sets the property QueueUrl. /// /// The URL of the Amazon SQS queue whose message's visibility is changed. /// /// /// /// Queue URLs and names are case-sensitive. /// /// [AWSProperty(Required=true)] public string QueueUrl { get { return this._queueUrl; } set { this._queueUrl = value; } } // Check to see if QueueUrl property is set internal bool IsSetQueueUrl() { return this._queueUrl != null; } /// /// Gets and sets the property ReceiptHandle. /// /// The receipt handle associated with the message, whose visibility timeout is changed. /// This parameter is returned by the ReceiveMessage action. /// /// [AWSProperty(Required=true)] public string ReceiptHandle { get { return this._receiptHandle; } set { this._receiptHandle = value; } } // Check to see if ReceiptHandle property is set internal bool IsSetReceiptHandle() { return this._receiptHandle != null; } /// /// Gets and sets the property VisibilityTimeout. /// /// The new value for the message's visibility timeout (in seconds). Values range: 0 /// to 43200. Maximum: 12 hours. /// /// [AWSProperty(Required=true)] public int VisibilityTimeout { get { return this._visibilityTimeout.GetValueOrDefault(); } set { this._visibilityTimeout = value; } } // Check to see if VisibilityTimeout property is set internal bool IsSetVisibilityTimeout() { return this._visibilityTimeout.HasValue; } } }