/*
 * 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 kafka-2018-11-14.normal.json service model.
 */
using System;
using Amazon.Runtime;
namespace Amazon.Kafka
{
    /// 
    /// Constants used for properties of type BrokerAZDistribution.
    /// 
    public class BrokerAZDistribution : ConstantClass
    {
        /// 
        /// Constant DEFAULT for BrokerAZDistribution
        /// 
        public static readonly BrokerAZDistribution DEFAULT = new BrokerAZDistribution("DEFAULT");
        /// 
        /// 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 BrokerAZDistribution(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 BrokerAZDistribution 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 BrokerAZDistribution(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ClientBroker.
    /// 
    public class ClientBroker : ConstantClass
    {
        /// 
        /// Constant PLAINTEXT for ClientBroker
        /// 
        public static readonly ClientBroker PLAINTEXT = new ClientBroker("PLAINTEXT");
        /// 
        /// Constant TLS for ClientBroker
        /// 
        public static readonly ClientBroker TLS = new ClientBroker("TLS");
        /// 
        /// Constant TLS_PLAINTEXT for ClientBroker
        /// 
        public static readonly ClientBroker TLS_PLAINTEXT = new ClientBroker("TLS_PLAINTEXT");
        /// 
        /// 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 ClientBroker(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 ClientBroker 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 ClientBroker(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ClusterState.
    /// 
    public class ClusterState : ConstantClass
    {
        /// 
        /// Constant ACTIVE for ClusterState
        /// 
        public static readonly ClusterState ACTIVE = new ClusterState("ACTIVE");
        /// 
        /// Constant CREATING for ClusterState
        /// 
        public static readonly ClusterState CREATING = new ClusterState("CREATING");
        /// 
        /// Constant DELETING for ClusterState
        /// 
        public static readonly ClusterState DELETING = new ClusterState("DELETING");
        /// 
        /// Constant FAILED for ClusterState
        /// 
        public static readonly ClusterState FAILED = new ClusterState("FAILED");
        /// 
        /// Constant HEALING for ClusterState
        /// 
        public static readonly ClusterState HEALING = new ClusterState("HEALING");
        /// 
        /// Constant MAINTENANCE for ClusterState
        /// 
        public static readonly ClusterState MAINTENANCE = new ClusterState("MAINTENANCE");
        /// 
        /// Constant REBOOTING_BROKER for ClusterState
        /// 
        public static readonly ClusterState REBOOTING_BROKER = new ClusterState("REBOOTING_BROKER");
        /// 
        /// Constant UPDATING for ClusterState
        /// 
        public static readonly ClusterState UPDATING = new ClusterState("UPDATING");
        /// 
        /// 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 ClusterState(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 ClusterState 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 ClusterState(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ClusterType.
    /// 
    public class ClusterType : ConstantClass
    {
        /// 
        /// Constant PROVISIONED for ClusterType
        /// 
        public static readonly ClusterType PROVISIONED = new ClusterType("PROVISIONED");
        /// 
        /// Constant SERVERLESS for ClusterType
        /// 
        public static readonly ClusterType SERVERLESS = new ClusterType("SERVERLESS");
        /// 
        /// 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 ClusterType(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 ClusterType 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 ClusterType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ConfigurationState.
    /// 
    public class ConfigurationState : ConstantClass
    {
        /// 
        /// Constant ACTIVE for ConfigurationState
        /// 
        public static readonly ConfigurationState ACTIVE = new ConfigurationState("ACTIVE");
        /// 
        /// Constant DELETE_FAILED for ConfigurationState
        /// 
        public static readonly ConfigurationState DELETE_FAILED = new ConfigurationState("DELETE_FAILED");
        /// 
        /// Constant DELETING for ConfigurationState
        /// 
        public static readonly ConfigurationState DELETING = new ConfigurationState("DELETING");
        /// 
        /// 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 ConfigurationState(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 ConfigurationState 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 ConfigurationState(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type EnhancedMonitoring.
    /// 
    public class EnhancedMonitoring : ConstantClass
    {
        /// 
        /// Constant DEFAULT for EnhancedMonitoring
        /// 
        public static readonly EnhancedMonitoring DEFAULT = new EnhancedMonitoring("DEFAULT");
        /// 
        /// Constant PER_BROKER for EnhancedMonitoring
        /// 
        public static readonly EnhancedMonitoring PER_BROKER = new EnhancedMonitoring("PER_BROKER");
        /// 
        /// Constant PER_TOPIC_PER_BROKER for EnhancedMonitoring
        /// 
        public static readonly EnhancedMonitoring PER_TOPIC_PER_BROKER = new EnhancedMonitoring("PER_TOPIC_PER_BROKER");
        /// 
        /// Constant PER_TOPIC_PER_PARTITION for EnhancedMonitoring
        /// 
        public static readonly EnhancedMonitoring PER_TOPIC_PER_PARTITION = new EnhancedMonitoring("PER_TOPIC_PER_PARTITION");
        /// 
        /// 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 EnhancedMonitoring(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 EnhancedMonitoring 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 EnhancedMonitoring(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type KafkaVersionStatus.
    /// 
    public class KafkaVersionStatus : ConstantClass
    {
        /// 
        /// Constant ACTIVE for KafkaVersionStatus
        /// 
        public static readonly KafkaVersionStatus ACTIVE = new KafkaVersionStatus("ACTIVE");
        /// 
        /// Constant DEPRECATED for KafkaVersionStatus
        /// 
        public static readonly KafkaVersionStatus DEPRECATED = new KafkaVersionStatus("DEPRECATED");
        /// 
        /// 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 KafkaVersionStatus(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 KafkaVersionStatus 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 KafkaVersionStatus(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type NodeType.
    /// 
    public class NodeType : ConstantClass
    {
        /// 
        /// Constant BROKER for NodeType
        /// 
        public static readonly NodeType BROKER = new NodeType("BROKER");
        /// 
        /// 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 NodeType(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 NodeType 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 NodeType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type StorageMode.
    /// 
    public class StorageMode : ConstantClass
    {
        /// 
        /// Constant LOCAL for StorageMode
        /// 
        public static readonly StorageMode LOCAL = new StorageMode("LOCAL");
        /// 
        /// Constant TIERED for StorageMode
        /// 
        public static readonly StorageMode TIERED = new StorageMode("TIERED");
        /// 
        /// 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 StorageMode(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 StorageMode 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 StorageMode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type UserIdentityType.
    /// 
    public class UserIdentityType : ConstantClass
    {
        /// 
        /// Constant AWSACCOUNT for UserIdentityType
        /// 
        public static readonly UserIdentityType AWSACCOUNT = new UserIdentityType("AWSACCOUNT");
        /// 
        /// Constant AWSSERVICE for UserIdentityType
        /// 
        public static readonly UserIdentityType AWSSERVICE = new UserIdentityType("AWSSERVICE");
        /// 
        /// 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 UserIdentityType(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 UserIdentityType 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 UserIdentityType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type VpcConnectionState.
    /// 
    public class VpcConnectionState : ConstantClass
    {
        /// 
        /// Constant AVAILABLE for VpcConnectionState
        /// 
        public static readonly VpcConnectionState AVAILABLE = new VpcConnectionState("AVAILABLE");
        /// 
        /// Constant CREATING for VpcConnectionState
        /// 
        public static readonly VpcConnectionState CREATING = new VpcConnectionState("CREATING");
        /// 
        /// Constant DEACTIVATING for VpcConnectionState
        /// 
        public static readonly VpcConnectionState DEACTIVATING = new VpcConnectionState("DEACTIVATING");
        /// 
        /// Constant DELETING for VpcConnectionState
        /// 
        public static readonly VpcConnectionState DELETING = new VpcConnectionState("DELETING");
        /// 
        /// Constant FAILED for VpcConnectionState
        /// 
        public static readonly VpcConnectionState FAILED = new VpcConnectionState("FAILED");
        /// 
        /// Constant INACTIVE for VpcConnectionState
        /// 
        public static readonly VpcConnectionState INACTIVE = new VpcConnectionState("INACTIVE");
        /// 
        /// Constant REJECTED for VpcConnectionState
        /// 
        public static readonly VpcConnectionState REJECTED = new VpcConnectionState("REJECTED");
        /// 
        /// Constant REJECTING for VpcConnectionState
        /// 
        public static readonly VpcConnectionState REJECTING = new VpcConnectionState("REJECTING");
        /// 
        /// 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 VpcConnectionState(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 VpcConnectionState 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 VpcConnectionState(string value)
        {
            return FindValue(value);
        }
    }
}