/*
 * 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 Amazon.Runtime;
namespace Amazon.SQS
{
    /// 
    /// Constants used for properties of type MessageSystemAttributeName.
    /// 
    public class MessageSystemAttributeName : ConstantClass
    {
        /// 
        /// Constant ApproximateFirstReceiveTimestamp for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName ApproximateFirstReceiveTimestamp = new MessageSystemAttributeName("ApproximateFirstReceiveTimestamp");
        /// 
        /// Constant ApproximateReceiveCount for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName ApproximateReceiveCount = new MessageSystemAttributeName("ApproximateReceiveCount");
        /// 
        /// Constant AWSTraceHeader for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName AWSTraceHeader = new MessageSystemAttributeName("AWSTraceHeader");
        /// 
        /// Constant DeadLetterQueueSourceArn for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName DeadLetterQueueSourceArn = new MessageSystemAttributeName("DeadLetterQueueSourceArn");
        /// 
        /// Constant MessageDeduplicationId for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName MessageDeduplicationId = new MessageSystemAttributeName("MessageDeduplicationId");
        /// 
        /// Constant MessageGroupId for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName MessageGroupId = new MessageSystemAttributeName("MessageGroupId");
        /// 
        /// Constant SenderId for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName SenderId = new MessageSystemAttributeName("SenderId");
        /// 
        /// Constant SentTimestamp for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName SentTimestamp = new MessageSystemAttributeName("SentTimestamp");
        /// 
        /// Constant SequenceNumber for MessageSystemAttributeName
        /// 
        public static readonly MessageSystemAttributeName SequenceNumber = new MessageSystemAttributeName("SequenceNumber");
        /// 
        /// This constant constructor does not need to be called if the constant
        /// you are attempting to use is already defined as a static instance of 
        /// this class.
        /// This constructor should be used to construct constants that are not
        /// defined as statics, for instance if attempting to use a feature that is
        /// newer than the current version of the SDK.
        /// 
        public MessageSystemAttributeName(string value)
            : base(value)
        {
        }
        /// 
        /// Finds the constant for the unique value.
        /// 
        /// The unique value for the constant
        /// The constant for the unique value
        public static MessageSystemAttributeName FindValue(string value)
        {
            return FindValue(value);
        }
        /// 
        /// Utility method to convert strings to the constant class.
        /// 
        /// The string value to convert to the constant class.
        /// 
        public static implicit operator MessageSystemAttributeName(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type MessageSystemAttributeNameForSends.
    /// 
    public class MessageSystemAttributeNameForSends : ConstantClass
    {
        /// 
        /// Constant AWSTraceHeader for MessageSystemAttributeNameForSends
        /// 
        public static readonly MessageSystemAttributeNameForSends AWSTraceHeader = new MessageSystemAttributeNameForSends("AWSTraceHeader");
        /// 
        /// This constant constructor does not need to be called if the constant
        /// you are attempting to use is already defined as a static instance of 
        /// this class.
        /// This constructor should be used to construct constants that are not
        /// defined as statics, for instance if attempting to use a feature that is
        /// newer than the current version of the SDK.
        /// 
        public MessageSystemAttributeNameForSends(string value)
            : base(value)
        {
        }
        /// 
        /// Finds the constant for the unique value.
        /// 
        /// The unique value for the constant
        /// The constant for the unique value
        public static MessageSystemAttributeNameForSends FindValue(string value)
        {
            return FindValue(value);
        }
        /// 
        /// Utility method to convert strings to the constant class.
        /// 
        /// The string value to convert to the constant class.
        /// 
        public static implicit operator MessageSystemAttributeNameForSends(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type QueueAttributeName.
    /// 
    public class QueueAttributeName : ConstantClass
    {
        /// 
        /// Constant All for QueueAttributeName
        /// 
        public static readonly QueueAttributeName All = new QueueAttributeName("All");
        /// 
        /// Constant ApproximateNumberOfMessages for QueueAttributeName
        /// 
        public static readonly QueueAttributeName ApproximateNumberOfMessages = new QueueAttributeName("ApproximateNumberOfMessages");
        /// 
        /// Constant ApproximateNumberOfMessagesDelayed for QueueAttributeName
        /// 
        public static readonly QueueAttributeName ApproximateNumberOfMessagesDelayed = new QueueAttributeName("ApproximateNumberOfMessagesDelayed");
        /// 
        /// Constant ApproximateNumberOfMessagesNotVisible for QueueAttributeName
        /// 
        public static readonly QueueAttributeName ApproximateNumberOfMessagesNotVisible = new QueueAttributeName("ApproximateNumberOfMessagesNotVisible");
        /// 
        /// Constant ContentBasedDeduplication for QueueAttributeName
        /// 
        public static readonly QueueAttributeName ContentBasedDeduplication = new QueueAttributeName("ContentBasedDeduplication");
        /// 
        /// Constant CreatedTimestamp for QueueAttributeName
        /// 
        public static readonly QueueAttributeName CreatedTimestamp = new QueueAttributeName("CreatedTimestamp");
        /// 
        /// Constant DeduplicationScope for QueueAttributeName
        /// 
        public static readonly QueueAttributeName DeduplicationScope = new QueueAttributeName("DeduplicationScope");
        /// 
        /// Constant DelaySeconds for QueueAttributeName
        /// 
        public static readonly QueueAttributeName DelaySeconds = new QueueAttributeName("DelaySeconds");
        /// 
        /// Constant FifoQueue for QueueAttributeName
        /// 
        public static readonly QueueAttributeName FifoQueue = new QueueAttributeName("FifoQueue");
        /// 
        /// Constant FifoThroughputLimit for QueueAttributeName
        /// 
        public static readonly QueueAttributeName FifoThroughputLimit = new QueueAttributeName("FifoThroughputLimit");
        /// 
        /// Constant KmsDataKeyReusePeriodSeconds for QueueAttributeName
        /// 
        public static readonly QueueAttributeName KmsDataKeyReusePeriodSeconds = new QueueAttributeName("KmsDataKeyReusePeriodSeconds");
        /// 
        /// Constant KmsMasterKeyId for QueueAttributeName
        /// 
        public static readonly QueueAttributeName KmsMasterKeyId = new QueueAttributeName("KmsMasterKeyId");
        /// 
        /// Constant LastModifiedTimestamp for QueueAttributeName
        /// 
        public static readonly QueueAttributeName LastModifiedTimestamp = new QueueAttributeName("LastModifiedTimestamp");
        /// 
        /// Constant MaximumMessageSize for QueueAttributeName
        /// 
        public static readonly QueueAttributeName MaximumMessageSize = new QueueAttributeName("MaximumMessageSize");
        /// 
        /// Constant MessageRetentionPeriod for QueueAttributeName
        /// 
        public static readonly QueueAttributeName MessageRetentionPeriod = new QueueAttributeName("MessageRetentionPeriod");
        /// 
        /// Constant Policy for QueueAttributeName
        /// 
        public static readonly QueueAttributeName Policy = new QueueAttributeName("Policy");
        /// 
        /// Constant QueueArn for QueueAttributeName
        /// 
        public static readonly QueueAttributeName QueueArn = new QueueAttributeName("QueueArn");
        /// 
        /// Constant ReceiveMessageWaitTimeSeconds for QueueAttributeName
        /// 
        public static readonly QueueAttributeName ReceiveMessageWaitTimeSeconds = new QueueAttributeName("ReceiveMessageWaitTimeSeconds");
        /// 
        /// Constant RedriveAllowPolicy for QueueAttributeName
        /// 
        public static readonly QueueAttributeName RedriveAllowPolicy = new QueueAttributeName("RedriveAllowPolicy");
        /// 
        /// Constant RedrivePolicy for QueueAttributeName
        /// 
        public static readonly QueueAttributeName RedrivePolicy = new QueueAttributeName("RedrivePolicy");
        /// 
        /// Constant SqsManagedSseEnabled for QueueAttributeName
        /// 
        public static readonly QueueAttributeName SqsManagedSseEnabled = new QueueAttributeName("SqsManagedSseEnabled");
        /// 
        /// Constant VisibilityTimeout for QueueAttributeName
        /// 
        public static readonly QueueAttributeName VisibilityTimeout = new QueueAttributeName("VisibilityTimeout");
        /// 
        /// This constant constructor does not need to be called if the constant
        /// you are attempting to use is already defined as a static instance of 
        /// this class.
        /// This constructor should be used to construct constants that are not
        /// defined as statics, for instance if attempting to use a feature that is
        /// newer than the current version of the SDK.
        /// 
        public QueueAttributeName(string value)
            : base(value)
        {
        }
        /// 
        /// Finds the constant for the unique value.
        /// 
        /// The unique value for the constant
        /// The constant for the unique value
        public static QueueAttributeName FindValue(string value)
        {
            return FindValue(value);
        }
        /// 
        /// Utility method to convert strings to the constant class.
        /// 
        /// The string value to convert to the constant class.
        /// 
        public static implicit operator QueueAttributeName(string value)
        {
            return FindValue(value);
        }
    }
}