/*
 * 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 lambda-2015-03-31.normal.json service model.
 */
using System;
using Amazon.Runtime;
namespace Amazon.Lambda
{
    /// 
    /// Constants used for properties of type EventSourcePosition.
    /// 
    public class EventSourcePosition : ConstantClass
    {
        /// 
        /// Constant AT_TIMESTAMP for EventSourcePosition
        /// 
        public static readonly EventSourcePosition AT_TIMESTAMP = new EventSourcePosition("AT_TIMESTAMP");
        /// 
        /// Constant LATEST for EventSourcePosition
        /// 
        public static readonly EventSourcePosition LATEST = new EventSourcePosition("LATEST");
        /// 
        /// Constant TRIM_HORIZON for EventSourcePosition
        /// 
        public static readonly EventSourcePosition TRIM_HORIZON = new EventSourcePosition("TRIM_HORIZON");
        /// 
        /// 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 EventSourcePosition(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 EventSourcePosition 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 EventSourcePosition(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type FunctionVersion.
    /// 
    public class FunctionVersion : ConstantClass
    {
        /// 
        /// Constant ALL for FunctionVersion
        /// 
        public static readonly FunctionVersion ALL = new FunctionVersion("ALL");
        /// 
        /// 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 FunctionVersion(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 FunctionVersion 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 FunctionVersion(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type InvocationType.
    /// 
    public class InvocationType : ConstantClass
    {
        /// 
        /// Constant DryRun for InvocationType
        /// 
        public static readonly InvocationType DryRun = new InvocationType("DryRun");
        /// 
        /// Constant Event for InvocationType
        /// 
        public static readonly InvocationType Event = new InvocationType("Event");
        /// 
        /// Constant RequestResponse for InvocationType
        /// 
        public static readonly InvocationType RequestResponse = new InvocationType("RequestResponse");
        /// 
        /// 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 InvocationType(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 InvocationType 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 InvocationType(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type LastUpdateStatus.
    /// 
    public class LastUpdateStatus : ConstantClass
    {
        /// 
        /// Constant Failed for LastUpdateStatus
        /// 
        public static readonly LastUpdateStatus Failed = new LastUpdateStatus("Failed");
        /// 
        /// Constant InProgress for LastUpdateStatus
        /// 
        public static readonly LastUpdateStatus InProgress = new LastUpdateStatus("InProgress");
        /// 
        /// Constant Successful for LastUpdateStatus
        /// 
        public static readonly LastUpdateStatus Successful = new LastUpdateStatus("Successful");
        /// 
        /// 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 LastUpdateStatus(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 LastUpdateStatus 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 LastUpdateStatus(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type LastUpdateStatusReasonCode.
    /// 
    public class LastUpdateStatusReasonCode : ConstantClass
    {
        /// 
        /// Constant EniLimitExceeded for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode EniLimitExceeded = new LastUpdateStatusReasonCode("EniLimitExceeded");
        /// 
        /// Constant InsufficientRolePermissions for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode InsufficientRolePermissions = new LastUpdateStatusReasonCode("InsufficientRolePermissions");
        /// 
        /// Constant InternalError for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode InternalError = new LastUpdateStatusReasonCode("InternalError");
        /// 
        /// Constant InvalidConfiguration for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode InvalidConfiguration = new LastUpdateStatusReasonCode("InvalidConfiguration");
        /// 
        /// Constant InvalidSecurityGroup for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode InvalidSecurityGroup = new LastUpdateStatusReasonCode("InvalidSecurityGroup");
        /// 
        /// Constant InvalidSubnet for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode InvalidSubnet = new LastUpdateStatusReasonCode("InvalidSubnet");
        /// 
        /// Constant SubnetOutOfIPAddresses for LastUpdateStatusReasonCode
        /// 
        public static readonly LastUpdateStatusReasonCode SubnetOutOfIPAddresses = new LastUpdateStatusReasonCode("SubnetOutOfIPAddresses");
        /// 
        /// 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 LastUpdateStatusReasonCode(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 LastUpdateStatusReasonCode 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 LastUpdateStatusReasonCode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type LogType.
    /// 
    public class LogType : ConstantClass
    {
        /// 
        /// Constant None for LogType
        /// 
        public static readonly LogType None = new LogType("None");
        /// 
        /// Constant Tail for LogType
        /// 
        public static readonly LogType Tail = new LogType("Tail");
        /// 
        /// 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 ProvisionedConcurrencyStatusEnum.
    /// 
    public class ProvisionedConcurrencyStatusEnum : ConstantClass
    {
        /// 
        /// Constant FAILED for ProvisionedConcurrencyStatusEnum
        /// 
        public static readonly ProvisionedConcurrencyStatusEnum FAILED = new ProvisionedConcurrencyStatusEnum("FAILED");
        /// 
        /// Constant IN_PROGRESS for ProvisionedConcurrencyStatusEnum
        /// 
        public static readonly ProvisionedConcurrencyStatusEnum IN_PROGRESS = new ProvisionedConcurrencyStatusEnum("IN_PROGRESS");
        /// 
        /// Constant READY for ProvisionedConcurrencyStatusEnum
        /// 
        public static readonly ProvisionedConcurrencyStatusEnum READY = new ProvisionedConcurrencyStatusEnum("READY");
        /// 
        /// 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 ProvisionedConcurrencyStatusEnum(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 ProvisionedConcurrencyStatusEnum 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 ProvisionedConcurrencyStatusEnum(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type Runtime.
    /// 
    public class Runtime : ConstantClass
    {
        /// 
        /// Constant Dotnetcore10 for Runtime
        /// 
        public static readonly Runtime Dotnetcore10 = new Runtime("dotnetcore1.0");
        /// 
        /// Constant Dotnetcore20 for Runtime
        /// 
        public static readonly Runtime Dotnetcore20 = new Runtime("dotnetcore2.0");
        /// 
        /// Constant Dotnetcore21 for Runtime
        /// 
        public static readonly Runtime Dotnetcore21 = new Runtime("dotnetcore2.1");
        /// 
        /// Constant Go1X for Runtime
        /// 
        public static readonly Runtime Go1X = new Runtime("go1.x");
        /// 
        /// Constant Java11 for Runtime
        /// 
        public static readonly Runtime Java11 = new Runtime("java11");
        /// 
        /// Constant Java8 for Runtime
        /// 
        public static readonly Runtime Java8 = new Runtime("java8");
        /// 
        /// Constant Nodejs for Runtime
        /// 
        public static readonly Runtime Nodejs = new Runtime("nodejs");
        /// 
        /// Constant Nodejs10X for Runtime
        /// 
        public static readonly Runtime Nodejs10X = new Runtime("nodejs10.x");
        /// 
        /// Constant Nodejs12X for Runtime
        /// 
        public static readonly Runtime Nodejs12X = new Runtime("nodejs12.x");
        /// 
        /// Constant Nodejs43 for Runtime
        /// 
        public static readonly Runtime Nodejs43 = new Runtime("nodejs4.3");
        /// 
        /// Constant Nodejs43Edge for Runtime
        /// 
        public static readonly Runtime Nodejs43Edge = new Runtime("nodejs4.3-edge");
        /// 
        /// Constant Nodejs610 for Runtime
        /// 
        public static readonly Runtime Nodejs610 = new Runtime("nodejs6.10");
        /// 
        /// Constant Nodejs810 for Runtime
        /// 
        public static readonly Runtime Nodejs810 = new Runtime("nodejs8.10");
        /// 
        /// Constant Provided for Runtime
        /// 
        public static readonly Runtime Provided = new Runtime("provided");
        /// 
        /// Constant Python27 for Runtime
        /// 
        public static readonly Runtime Python27 = new Runtime("python2.7");
        /// 
        /// Constant Python36 for Runtime
        /// 
        public static readonly Runtime Python36 = new Runtime("python3.6");
        /// 
        /// Constant Python37 for Runtime
        /// 
        public static readonly Runtime Python37 = new Runtime("python3.7");
        /// 
        /// Constant Python38 for Runtime
        /// 
        public static readonly Runtime Python38 = new Runtime("python3.8");
        /// 
        /// Constant Ruby25 for Runtime
        /// 
        public static readonly Runtime Ruby25 = new Runtime("ruby2.5");
        /// 
        /// 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 Runtime(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 Runtime 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 Runtime(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type State.
    /// 
    public class State : ConstantClass
    {
        /// 
        /// Constant Active for State
        /// 
        public static readonly State Active = new State("Active");
        /// 
        /// Constant Failed for State
        /// 
        public static readonly State Failed = new State("Failed");
        /// 
        /// Constant Inactive for State
        /// 
        public static readonly State Inactive = new State("Inactive");
        /// 
        /// Constant Pending for State
        /// 
        public static readonly State Pending = new State("Pending");
        /// 
        /// 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 State(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 State 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 State(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type StateReasonCode.
    /// 
    public class StateReasonCode : ConstantClass
    {
        /// 
        /// Constant Creating for StateReasonCode
        /// 
        public static readonly StateReasonCode Creating = new StateReasonCode("Creating");
        /// 
        /// Constant EniLimitExceeded for StateReasonCode
        /// 
        public static readonly StateReasonCode EniLimitExceeded = new StateReasonCode("EniLimitExceeded");
        /// 
        /// Constant Idle for StateReasonCode
        /// 
        public static readonly StateReasonCode Idle = new StateReasonCode("Idle");
        /// 
        /// Constant InsufficientRolePermissions for StateReasonCode
        /// 
        public static readonly StateReasonCode InsufficientRolePermissions = new StateReasonCode("InsufficientRolePermissions");
        /// 
        /// Constant InternalError for StateReasonCode
        /// 
        public static readonly StateReasonCode InternalError = new StateReasonCode("InternalError");
        /// 
        /// Constant InvalidConfiguration for StateReasonCode
        /// 
        public static readonly StateReasonCode InvalidConfiguration = new StateReasonCode("InvalidConfiguration");
        /// 
        /// Constant InvalidSecurityGroup for StateReasonCode
        /// 
        public static readonly StateReasonCode InvalidSecurityGroup = new StateReasonCode("InvalidSecurityGroup");
        /// 
        /// Constant InvalidSubnet for StateReasonCode
        /// 
        public static readonly StateReasonCode InvalidSubnet = new StateReasonCode("InvalidSubnet");
        /// 
        /// Constant Restoring for StateReasonCode
        /// 
        public static readonly StateReasonCode Restoring = new StateReasonCode("Restoring");
        /// 
        /// Constant SubnetOutOfIPAddresses for StateReasonCode
        /// 
        public static readonly StateReasonCode SubnetOutOfIPAddresses = new StateReasonCode("SubnetOutOfIPAddresses");
        /// 
        /// 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 StateReasonCode(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 StateReasonCode 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 StateReasonCode(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type ThrottleReason.
    /// 
    public class ThrottleReason : ConstantClass
    {
        /// 
        /// Constant CallerRateLimitExceeded for ThrottleReason
        /// 
        public static readonly ThrottleReason CallerRateLimitExceeded = new ThrottleReason("CallerRateLimitExceeded");
        /// 
        /// Constant ConcurrentInvocationLimitExceeded for ThrottleReason
        /// 
        public static readonly ThrottleReason ConcurrentInvocationLimitExceeded = new ThrottleReason("ConcurrentInvocationLimitExceeded");
        /// 
        /// Constant FunctionInvocationRateLimitExceeded for ThrottleReason
        /// 
        public static readonly ThrottleReason FunctionInvocationRateLimitExceeded = new ThrottleReason("FunctionInvocationRateLimitExceeded");
        /// 
        /// Constant ReservedFunctionConcurrentInvocationLimitExceeded for ThrottleReason
        /// 
        public static readonly ThrottleReason ReservedFunctionConcurrentInvocationLimitExceeded = new ThrottleReason("ReservedFunctionConcurrentInvocationLimitExceeded");
        /// 
        /// Constant ReservedFunctionInvocationRateLimitExceeded for ThrottleReason
        /// 
        public static readonly ThrottleReason ReservedFunctionInvocationRateLimitExceeded = new ThrottleReason("ReservedFunctionInvocationRateLimitExceeded");
        /// 
        /// 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 ThrottleReason(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 ThrottleReason 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 ThrottleReason(string value)
        {
            return FindValue(value);
        }
    }
    /// 
    /// Constants used for properties of type TracingMode.
    /// 
    public class TracingMode : ConstantClass
    {
        /// 
        /// Constant Active for TracingMode
        /// 
        public static readonly TracingMode Active = new TracingMode("Active");
        /// 
        /// Constant PassThrough for TracingMode
        /// 
        public static readonly TracingMode PassThrough = new TracingMode("PassThrough");
        /// 
        /// 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 TracingMode(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 TracingMode 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 TracingMode(string value)
        {
            return FindValue(value);
        }
    }
}