/*
 * 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 iotfleetwise-2021-06-17.normal.json service model.
 */
using System;
using Amazon.Runtime;
namespace Amazon.IoTFleetWise
{
    /// 
    /// Constants used for properties of type CampaignStatus.
    /// 
    public class CampaignStatus : ConstantClass
    {
        /// 
        /// Constant CREATING for CampaignStatus
        /// 
        public static readonly CampaignStatus CREATING = new CampaignStatus("CREATING");
        /// 
        /// Constant RUNNING for CampaignStatus
        /// 
        public static readonly CampaignStatus RUNNING = new CampaignStatus("RUNNING");
        /// 
        /// Constant SUSPENDED for CampaignStatus
        /// 
        public static readonly CampaignStatus SUSPENDED = new CampaignStatus("SUSPENDED");
        /// 
        /// Constant WAITING_FOR_APPROVAL for CampaignStatus
        /// 
        public static readonly CampaignStatus WAITING_FOR_APPROVAL = new CampaignStatus("WAITING_FOR_APPROVAL");
        /// 
        /// 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 CampaignStatus(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 CampaignStatus 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 CampaignStatus(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type Compression.
    /// 
    public class Compression : ConstantClass
    {
        /// 
        /// Constant OFF for Compression
        /// 
        public static readonly Compression OFF = new Compression("OFF");
        /// 
        /// Constant SNAPPY for Compression
        /// 
        public static readonly Compression SNAPPY = new Compression("SNAPPY");
        /// 
        /// 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 Compression(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 Compression 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 Compression(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type DataFormat.
    /// 
    public class DataFormat : ConstantClass
    {
        /// 
        /// Constant JSON for DataFormat
        /// 
        public static readonly DataFormat JSON = new DataFormat("JSON");
        /// 
        /// Constant PARQUET for DataFormat
        /// 
        public static readonly DataFormat PARQUET = new DataFormat("PARQUET");
        /// 
        /// 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 DataFormat(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 DataFormat 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 DataFormat(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type DiagnosticsMode.
    /// 
    public class DiagnosticsMode : ConstantClass
    {
        /// 
        /// Constant OFF for DiagnosticsMode
        /// 
        public static readonly DiagnosticsMode OFF = new DiagnosticsMode("OFF");
        /// 
        /// Constant SEND_ACTIVE_DTCS for DiagnosticsMode
        /// 
        public static readonly DiagnosticsMode SEND_ACTIVE_DTCS = new DiagnosticsMode("SEND_ACTIVE_DTCS");
        /// 
        /// 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 DiagnosticsMode(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 DiagnosticsMode 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 DiagnosticsMode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type LogType.
    /// 
    public class LogType : ConstantClass
    {
        /// 
        /// Constant ERROR for LogType
        /// 
        public static readonly LogType ERROR = new LogType("ERROR");
        /// 
        /// Constant OFF for LogType
        /// 
        public static readonly LogType OFF = new LogType("OFF");
        /// 
        /// 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 LogType(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 LogType 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 LogType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ManifestStatus.
    /// 
    public class ManifestStatus : ConstantClass
    {
        /// 
        /// Constant ACTIVE for ManifestStatus
        /// 
        public static readonly ManifestStatus ACTIVE = new ManifestStatus("ACTIVE");
        /// 
        /// Constant DRAFT for ManifestStatus
        /// 
        public static readonly ManifestStatus DRAFT = new ManifestStatus("DRAFT");
        /// 
        /// 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 ManifestStatus(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 ManifestStatus 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 ManifestStatus(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type NetworkInterfaceFailureReason.
    /// 
    public class NetworkInterfaceFailureReason : ConstantClass
    {
        /// 
        /// Constant CAN_NETWORK_INTERFACE_INFO_IS_NULL for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason CAN_NETWORK_INTERFACE_INFO_IS_NULL = new NetworkInterfaceFailureReason("CAN_NETWORK_INTERFACE_INFO_IS_NULL");
        /// 
        /// Constant CONFLICTING_NETWORK_INTERFACE for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason CONFLICTING_NETWORK_INTERFACE = new NetworkInterfaceFailureReason("CONFLICTING_NETWORK_INTERFACE");
        /// 
        /// Constant DUPLICATE_NETWORK_INTERFACE for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason DUPLICATE_NETWORK_INTERFACE = new NetworkInterfaceFailureReason("DUPLICATE_NETWORK_INTERFACE");
        /// 
        /// Constant NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS = new NetworkInterfaceFailureReason("NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS");
        /// 
        /// Constant NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS = new NetworkInterfaceFailureReason("NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS");
        /// 
        /// Constant OBD_NETWORK_INTERFACE_INFO_IS_NULL for NetworkInterfaceFailureReason
        /// 
        public static readonly NetworkInterfaceFailureReason OBD_NETWORK_INTERFACE_INFO_IS_NULL = new NetworkInterfaceFailureReason("OBD_NETWORK_INTERFACE_INFO_IS_NULL");
        /// 
        /// 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 NetworkInterfaceFailureReason(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 NetworkInterfaceFailureReason 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 NetworkInterfaceFailureReason(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type NetworkInterfaceType.
    /// 
    public class NetworkInterfaceType : ConstantClass
    {
        /// 
        /// Constant CAN_INTERFACE for NetworkInterfaceType
        /// 
        public static readonly NetworkInterfaceType CAN_INTERFACE = new NetworkInterfaceType("CAN_INTERFACE");
        /// 
        /// Constant OBD_INTERFACE for NetworkInterfaceType
        /// 
        public static readonly NetworkInterfaceType OBD_INTERFACE = new NetworkInterfaceType("OBD_INTERFACE");
        /// 
        /// 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 NetworkInterfaceType(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 NetworkInterfaceType 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 NetworkInterfaceType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type NodeDataType.
    /// 
    public class NodeDataType : ConstantClass
    {
        /// 
        /// Constant BOOLEAN for NodeDataType
        /// 
        public static readonly NodeDataType BOOLEAN = new NodeDataType("BOOLEAN");
        /// 
        /// Constant BOOLEAN_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType BOOLEAN_ARRAY = new NodeDataType("BOOLEAN_ARRAY");
        /// 
        /// Constant DOUBLE for NodeDataType
        /// 
        public static readonly NodeDataType DOUBLE = new NodeDataType("DOUBLE");
        /// 
        /// Constant DOUBLE_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType DOUBLE_ARRAY = new NodeDataType("DOUBLE_ARRAY");
        /// 
        /// Constant FLOAT for NodeDataType
        /// 
        public static readonly NodeDataType FLOAT = new NodeDataType("FLOAT");
        /// 
        /// Constant FLOAT_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType FLOAT_ARRAY = new NodeDataType("FLOAT_ARRAY");
        /// 
        /// Constant INT16 for NodeDataType
        /// 
        public static readonly NodeDataType INT16 = new NodeDataType("INT16");
        /// 
        /// Constant INT16_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType INT16_ARRAY = new NodeDataType("INT16_ARRAY");
        /// 
        /// Constant INT32 for NodeDataType
        /// 
        public static readonly NodeDataType INT32 = new NodeDataType("INT32");
        /// 
        /// Constant INT32_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType INT32_ARRAY = new NodeDataType("INT32_ARRAY");
        /// 
        /// Constant INT64 for NodeDataType
        /// 
        public static readonly NodeDataType INT64 = new NodeDataType("INT64");
        /// 
        /// Constant INT64_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType INT64_ARRAY = new NodeDataType("INT64_ARRAY");
        /// 
        /// Constant INT8 for NodeDataType
        /// 
        public static readonly NodeDataType INT8 = new NodeDataType("INT8");
        /// 
        /// Constant INT8_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType INT8_ARRAY = new NodeDataType("INT8_ARRAY");
        /// 
        /// Constant STRING for NodeDataType
        /// 
        public static readonly NodeDataType STRING = new NodeDataType("STRING");
        /// 
        /// Constant STRING_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType STRING_ARRAY = new NodeDataType("STRING_ARRAY");
        /// 
        /// Constant UINT16 for NodeDataType
        /// 
        public static readonly NodeDataType UINT16 = new NodeDataType("UINT16");
        /// 
        /// Constant UINT16_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType UINT16_ARRAY = new NodeDataType("UINT16_ARRAY");
        /// 
        /// Constant UINT32 for NodeDataType
        /// 
        public static readonly NodeDataType UINT32 = new NodeDataType("UINT32");
        /// 
        /// Constant UINT32_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType UINT32_ARRAY = new NodeDataType("UINT32_ARRAY");
        /// 
        /// Constant UINT64 for NodeDataType
        /// 
        public static readonly NodeDataType UINT64 = new NodeDataType("UINT64");
        /// 
        /// Constant UINT64_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType UINT64_ARRAY = new NodeDataType("UINT64_ARRAY");
        /// 
        /// Constant UINT8 for NodeDataType
        /// 
        public static readonly NodeDataType UINT8 = new NodeDataType("UINT8");
        /// 
        /// Constant UINT8_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType UINT8_ARRAY = new NodeDataType("UINT8_ARRAY");
        /// 
        /// Constant UNIX_TIMESTAMP for NodeDataType
        /// 
        public static readonly NodeDataType UNIX_TIMESTAMP = new NodeDataType("UNIX_TIMESTAMP");
        /// 
        /// Constant UNIX_TIMESTAMP_ARRAY for NodeDataType
        /// 
        public static readonly NodeDataType UNIX_TIMESTAMP_ARRAY = new NodeDataType("UNIX_TIMESTAMP_ARRAY");
        /// 
        /// Constant UNKNOWN for NodeDataType
        /// 
        public static readonly NodeDataType UNKNOWN = new NodeDataType("UNKNOWN");
        /// 
        /// 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 NodeDataType(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 NodeDataType 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 NodeDataType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type RegistrationStatus.
    /// 
    public class RegistrationStatus : ConstantClass
    {
        /// 
        /// Constant REGISTRATION_FAILURE for RegistrationStatus
        /// 
        public static readonly RegistrationStatus REGISTRATION_FAILURE = new RegistrationStatus("REGISTRATION_FAILURE");
        /// 
        /// Constant REGISTRATION_PENDING for RegistrationStatus
        /// 
        public static readonly RegistrationStatus REGISTRATION_PENDING = new RegistrationStatus("REGISTRATION_PENDING");
        /// 
        /// Constant REGISTRATION_SUCCESS for RegistrationStatus
        /// 
        public static readonly RegistrationStatus REGISTRATION_SUCCESS = new RegistrationStatus("REGISTRATION_SUCCESS");
        /// 
        /// 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 RegistrationStatus(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 RegistrationStatus 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 RegistrationStatus(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type SignalDecoderFailureReason.
    /// 
    public class SignalDecoderFailureReason : ConstantClass
    {
        /// 
        /// Constant CAN_SIGNAL_INFO_IS_NULL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason CAN_SIGNAL_INFO_IS_NULL = new SignalDecoderFailureReason("CAN_SIGNAL_INFO_IS_NULL");
        /// 
        /// Constant CONFLICTING_SIGNAL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason CONFLICTING_SIGNAL = new SignalDecoderFailureReason("CONFLICTING_SIGNAL");
        /// 
        /// Constant DUPLICATE_SIGNAL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason DUPLICATE_SIGNAL = new SignalDecoderFailureReason("DUPLICATE_SIGNAL");
        /// 
        /// Constant NETWORK_INTERFACE_TYPE_INCOMPATIBLE_WITH_SIGNAL_DECODER_TYPE for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason NETWORK_INTERFACE_TYPE_INCOMPATIBLE_WITH_SIGNAL_DECODER_TYPE = new SignalDecoderFailureReason("NETWORK_INTERFACE_TYPE_INCOMPATIBLE_WITH_SIGNAL_DECODER_TYPE");
        /// 
        /// Constant NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL = new SignalDecoderFailureReason("NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL");
        /// 
        /// Constant OBD_SIGNAL_INFO_IS_NULL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason OBD_SIGNAL_INFO_IS_NULL = new SignalDecoderFailureReason("OBD_SIGNAL_INFO_IS_NULL");
        /// 
        /// Constant SIGNAL_NOT_ASSOCIATED_WITH_NETWORK_INTERFACE for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason SIGNAL_NOT_ASSOCIATED_WITH_NETWORK_INTERFACE = new SignalDecoderFailureReason("SIGNAL_NOT_ASSOCIATED_WITH_NETWORK_INTERFACE");
        /// 
        /// Constant SIGNAL_NOT_IN_MODEL for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason SIGNAL_NOT_IN_MODEL = new SignalDecoderFailureReason("SIGNAL_NOT_IN_MODEL");
        /// 
        /// Constant SIGNAL_TO_ADD_ALREADY_EXISTS for SignalDecoderFailureReason
        /// 
        public static readonly SignalDecoderFailureReason SIGNAL_TO_ADD_ALREADY_EXISTS = new SignalDecoderFailureReason("SIGNAL_TO_ADD_ALREADY_EXISTS");
        /// 
        /// 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 SignalDecoderFailureReason(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 SignalDecoderFailureReason 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 SignalDecoderFailureReason(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type SignalDecoderType.
    /// 
    public class SignalDecoderType : ConstantClass
    {
        /// 
        /// Constant CAN_SIGNAL for SignalDecoderType
        /// 
        public static readonly SignalDecoderType CAN_SIGNAL = new SignalDecoderType("CAN_SIGNAL");
        /// 
        /// Constant OBD_SIGNAL for SignalDecoderType
        /// 
        public static readonly SignalDecoderType OBD_SIGNAL = new SignalDecoderType("OBD_SIGNAL");
        /// 
        /// 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 SignalDecoderType(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 SignalDecoderType 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 SignalDecoderType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type SpoolingMode.
    /// 
    public class SpoolingMode : ConstantClass
    {
        /// 
        /// Constant OFF for SpoolingMode
        /// 
        public static readonly SpoolingMode OFF = new SpoolingMode("OFF");
        /// 
        /// Constant TO_DISK for SpoolingMode
        /// 
        public static readonly SpoolingMode TO_DISK = new SpoolingMode("TO_DISK");
        /// 
        /// 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 SpoolingMode(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 SpoolingMode 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 SpoolingMode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type StorageCompressionFormat.
    /// 
    public class StorageCompressionFormat : ConstantClass
    {
        /// 
        /// Constant GZIP for StorageCompressionFormat
        /// 
        public static readonly StorageCompressionFormat GZIP = new StorageCompressionFormat("GZIP");
        /// 
        /// Constant NONE for StorageCompressionFormat
        /// 
        public static readonly StorageCompressionFormat NONE = new StorageCompressionFormat("NONE");
        /// 
        /// 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 StorageCompressionFormat(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 StorageCompressionFormat 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 StorageCompressionFormat(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type TriggerMode.
    /// 
    public class TriggerMode : ConstantClass
    {
        /// 
        /// Constant ALWAYS for TriggerMode
        /// 
        public static readonly TriggerMode ALWAYS = new TriggerMode("ALWAYS");
        /// 
        /// Constant RISING_EDGE for TriggerMode
        /// 
        public static readonly TriggerMode RISING_EDGE = new TriggerMode("RISING_EDGE");
        /// 
        /// 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 TriggerMode(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 TriggerMode 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 TriggerMode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type UpdateCampaignAction.
    /// 
    public class UpdateCampaignAction : ConstantClass
    {
        /// 
        /// Constant APPROVE for UpdateCampaignAction
        /// 
        public static readonly UpdateCampaignAction APPROVE = new UpdateCampaignAction("APPROVE");
        /// 
        /// Constant RESUME for UpdateCampaignAction
        /// 
        public static readonly UpdateCampaignAction RESUME = new UpdateCampaignAction("RESUME");
        /// 
        /// Constant SUSPEND for UpdateCampaignAction
        /// 
        public static readonly UpdateCampaignAction SUSPEND = new UpdateCampaignAction("SUSPEND");
        /// 
        /// Constant UPDATE for UpdateCampaignAction
        /// 
        public static readonly UpdateCampaignAction UPDATE = new UpdateCampaignAction("UPDATE");
        /// 
        /// 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 UpdateCampaignAction(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 UpdateCampaignAction 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 UpdateCampaignAction(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type UpdateMode.
    /// 
    public class UpdateMode : ConstantClass
    {
        /// 
        /// Constant Merge for UpdateMode
        /// 
        public static readonly UpdateMode Merge = new UpdateMode("Merge");
        /// 
        /// Constant Overwrite for UpdateMode
        /// 
        public static readonly UpdateMode Overwrite = new UpdateMode("Overwrite");
        /// 
        /// 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 UpdateMode(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 UpdateMode 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 UpdateMode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ValidationExceptionReason.
    /// 
    public class ValidationExceptionReason : ConstantClass
    {
        /// 
        /// Constant CannotParse for ValidationExceptionReason
        /// 
        public static readonly ValidationExceptionReason CannotParse = new ValidationExceptionReason("cannotParse");
        /// 
        /// Constant FieldValidationFailed for ValidationExceptionReason
        /// 
        public static readonly ValidationExceptionReason FieldValidationFailed = new ValidationExceptionReason("fieldValidationFailed");
        /// 
        /// Constant Other for ValidationExceptionReason
        /// 
        public static readonly ValidationExceptionReason Other = new ValidationExceptionReason("other");
        /// 
        /// Constant UnknownOperation for ValidationExceptionReason
        /// 
        public static readonly ValidationExceptionReason UnknownOperation = new ValidationExceptionReason("unknownOperation");
        /// 
        /// 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 ValidationExceptionReason(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 ValidationExceptionReason 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 ValidationExceptionReason(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type VehicleAssociationBehavior.
    /// 
    public class VehicleAssociationBehavior : ConstantClass
    {
        /// 
        /// Constant CreateIotThing for VehicleAssociationBehavior
        /// 
        public static readonly VehicleAssociationBehavior CreateIotThing = new VehicleAssociationBehavior("CreateIotThing");
        /// 
        /// Constant ValidateIotThingExists for VehicleAssociationBehavior
        /// 
        public static readonly VehicleAssociationBehavior ValidateIotThingExists = new VehicleAssociationBehavior("ValidateIotThingExists");
        /// 
        /// 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 VehicleAssociationBehavior(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 VehicleAssociationBehavior 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 VehicleAssociationBehavior(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type VehicleState.
    /// 
    public class VehicleState : ConstantClass
    {
        /// 
        /// Constant CREATED for VehicleState
        /// 
        public static readonly VehicleState CREATED = new VehicleState("CREATED");
        /// 
        /// Constant DELETING for VehicleState
        /// 
        public static readonly VehicleState DELETING = new VehicleState("DELETING");
        /// 
        /// Constant HEALTHY for VehicleState
        /// 
        public static readonly VehicleState HEALTHY = new VehicleState("HEALTHY");
        /// 
        /// Constant READY for VehicleState
        /// 
        public static readonly VehicleState READY = new VehicleState("READY");
        /// 
        /// Constant SUSPENDED for VehicleState
        /// 
        public static readonly VehicleState SUSPENDED = new VehicleState("SUSPENDED");
        /// 
        /// 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 VehicleState(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 VehicleState 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 VehicleState(string value)
        {
            return FindValue(value);
        }
    }
}