{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.ApplicationAutoScaling.Types.Sum -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.ApplicationAutoScaling.Types.Sum where import Network.AWS.Prelude data AdjustmentType = ChangeInCapacity | ExactCapacity | PercentChangeInCapacity deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText AdjustmentType where parser = takeLowerText >>= \case "changeincapacity" -> pure ChangeInCapacity "exactcapacity" -> pure ExactCapacity "percentchangeincapacity" -> pure PercentChangeInCapacity e -> fromTextError $ "Failure parsing AdjustmentType from value: '" <> e <> "'. Accepted values: changeincapacity, exactcapacity, percentchangeincapacity" instance ToText AdjustmentType where toText = \case ChangeInCapacity -> "ChangeInCapacity" ExactCapacity -> "ExactCapacity" PercentChangeInCapacity -> "PercentChangeInCapacity" instance Hashable AdjustmentType instance NFData AdjustmentType instance ToByteString AdjustmentType instance ToQuery AdjustmentType instance ToHeader AdjustmentType instance ToJSON AdjustmentType where toJSON = toJSONText instance FromJSON AdjustmentType where parseJSON = parseJSONText "AdjustmentType" data MetricAggregationType = MATAverage | MATMaximum | MATMinimum deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText MetricAggregationType where parser = takeLowerText >>= \case "average" -> pure MATAverage "maximum" -> pure MATMaximum "minimum" -> pure MATMinimum e -> fromTextError $ "Failure parsing MetricAggregationType from value: '" <> e <> "'. Accepted values: average, maximum, minimum" instance ToText MetricAggregationType where toText = \case MATAverage -> "Average" MATMaximum -> "Maximum" MATMinimum -> "Minimum" instance Hashable MetricAggregationType instance NFData MetricAggregationType instance ToByteString MetricAggregationType instance ToQuery MetricAggregationType instance ToHeader MetricAggregationType instance ToJSON MetricAggregationType where toJSON = toJSONText instance FromJSON MetricAggregationType where parseJSON = parseJSONText "MetricAggregationType" data MetricStatistic = Average | Maximum | Minimum | SampleCount | Sum deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText MetricStatistic where parser = takeLowerText >>= \case "average" -> pure Average "maximum" -> pure Maximum "minimum" -> pure Minimum "samplecount" -> pure SampleCount "sum" -> pure Sum e -> fromTextError $ "Failure parsing MetricStatistic from value: '" <> e <> "'. Accepted values: average, maximum, minimum, samplecount, sum" instance ToText MetricStatistic where toText = \case Average -> "Average" Maximum -> "Maximum" Minimum -> "Minimum" SampleCount -> "SampleCount" Sum -> "Sum" instance Hashable MetricStatistic instance NFData MetricStatistic instance ToByteString MetricStatistic instance ToQuery MetricStatistic instance ToHeader MetricStatistic instance ToJSON MetricStatistic where toJSON = toJSONText instance FromJSON MetricStatistic where parseJSON = parseJSONText "MetricStatistic" data MetricType = DynamoDBReadCapacityUtilization | DynamoDBWriteCapacityUtilization deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText MetricType where parser = takeLowerText >>= \case "dynamodbreadcapacityutilization" -> pure DynamoDBReadCapacityUtilization "dynamodbwritecapacityutilization" -> pure DynamoDBWriteCapacityUtilization e -> fromTextError $ "Failure parsing MetricType from value: '" <> e <> "'. Accepted values: dynamodbreadcapacityutilization, dynamodbwritecapacityutilization" instance ToText MetricType where toText = \case DynamoDBReadCapacityUtilization -> "DynamoDBReadCapacityUtilization" DynamoDBWriteCapacityUtilization -> "DynamoDBWriteCapacityUtilization" instance Hashable MetricType instance NFData MetricType instance ToByteString MetricType instance ToQuery MetricType instance ToHeader MetricType instance ToJSON MetricType where toJSON = toJSONText instance FromJSON MetricType where parseJSON = parseJSONText "MetricType" data PolicyType = StepScaling | TargetTrackingScaling deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText PolicyType where parser = takeLowerText >>= \case "stepscaling" -> pure StepScaling "targettrackingscaling" -> pure TargetTrackingScaling e -> fromTextError $ "Failure parsing PolicyType from value: '" <> e <> "'. Accepted values: stepscaling, targettrackingscaling" instance ToText PolicyType where toText = \case StepScaling -> "StepScaling" TargetTrackingScaling -> "TargetTrackingScaling" instance Hashable PolicyType instance NFData PolicyType instance ToByteString PolicyType instance ToQuery PolicyType instance ToHeader PolicyType instance ToJSON PolicyType where toJSON = toJSONText instance FromJSON PolicyType where parseJSON = parseJSONText "PolicyType" data ScalableDimension = AppstreamFleetDesiredCapacity | DynamodbIndexReadCapacityUnits | DynamodbIndexWriteCapacityUnits | DynamodbTableReadCapacityUnits | DynamodbTableWriteCapacityUnits | EC2SpotFleetRequestTargetCapacity | EcsServiceDesiredCount | ElasticmapreduceInstancegroupInstanceCount deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText ScalableDimension where parser = takeLowerText >>= \case "appstream:fleet:desiredcapacity" -> pure AppstreamFleetDesiredCapacity "dynamodb:index:readcapacityunits" -> pure DynamodbIndexReadCapacityUnits "dynamodb:index:writecapacityunits" -> pure DynamodbIndexWriteCapacityUnits "dynamodb:table:readcapacityunits" -> pure DynamodbTableReadCapacityUnits "dynamodb:table:writecapacityunits" -> pure DynamodbTableWriteCapacityUnits "ec2:spot-fleet-request:targetcapacity" -> pure EC2SpotFleetRequestTargetCapacity "ecs:service:desiredcount" -> pure EcsServiceDesiredCount "elasticmapreduce:instancegroup:instancecount" -> pure ElasticmapreduceInstancegroupInstanceCount e -> fromTextError $ "Failure parsing ScalableDimension from value: '" <> e <> "'. Accepted values: appstream:fleet:desiredcapacity, dynamodb:index:readcapacityunits, dynamodb:index:writecapacityunits, dynamodb:table:readcapacityunits, dynamodb:table:writecapacityunits, ec2:spot-fleet-request:targetcapacity, ecs:service:desiredcount, elasticmapreduce:instancegroup:instancecount" instance ToText ScalableDimension where toText = \case AppstreamFleetDesiredCapacity -> "appstream:fleet:DesiredCapacity" DynamodbIndexReadCapacityUnits -> "dynamodb:index:ReadCapacityUnits" DynamodbIndexWriteCapacityUnits -> "dynamodb:index:WriteCapacityUnits" DynamodbTableReadCapacityUnits -> "dynamodb:table:ReadCapacityUnits" DynamodbTableWriteCapacityUnits -> "dynamodb:table:WriteCapacityUnits" EC2SpotFleetRequestTargetCapacity -> "ec2:spot-fleet-request:TargetCapacity" EcsServiceDesiredCount -> "ecs:service:DesiredCount" ElasticmapreduceInstancegroupInstanceCount -> "elasticmapreduce:instancegroup:InstanceCount" instance Hashable ScalableDimension instance NFData ScalableDimension instance ToByteString ScalableDimension instance ToQuery ScalableDimension instance ToHeader ScalableDimension instance ToJSON ScalableDimension where toJSON = toJSONText instance FromJSON ScalableDimension where parseJSON = parseJSONText "ScalableDimension" data ScalingActivityStatusCode = Failed | InProgress | Overridden | Pending | Successful | Unfulfilled deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText ScalingActivityStatusCode where parser = takeLowerText >>= \case "failed" -> pure Failed "inprogress" -> pure InProgress "overridden" -> pure Overridden "pending" -> pure Pending "successful" -> pure Successful "unfulfilled" -> pure Unfulfilled e -> fromTextError $ "Failure parsing ScalingActivityStatusCode from value: '" <> e <> "'. Accepted values: failed, inprogress, overridden, pending, successful, unfulfilled" instance ToText ScalingActivityStatusCode where toText = \case Failed -> "Failed" InProgress -> "InProgress" Overridden -> "Overridden" Pending -> "Pending" Successful -> "Successful" Unfulfilled -> "Unfulfilled" instance Hashable ScalingActivityStatusCode instance NFData ScalingActivityStatusCode instance ToByteString ScalingActivityStatusCode instance ToQuery ScalingActivityStatusCode instance ToHeader ScalingActivityStatusCode instance FromJSON ScalingActivityStatusCode where parseJSON = parseJSONText "ScalingActivityStatusCode" data ServiceNamespace = Appstream | Dynamodb | EC2 | Ecs | Elasticmapreduce deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText ServiceNamespace where parser = takeLowerText >>= \case "appstream" -> pure Appstream "dynamodb" -> pure Dynamodb "ec2" -> pure EC2 "ecs" -> pure Ecs "elasticmapreduce" -> pure Elasticmapreduce e -> fromTextError $ "Failure parsing ServiceNamespace from value: '" <> e <> "'. Accepted values: appstream, dynamodb, ec2, ecs, elasticmapreduce" instance ToText ServiceNamespace where toText = \case Appstream -> "appstream" Dynamodb -> "dynamodb" EC2 -> "ec2" Ecs -> "ecs" Elasticmapreduce -> "elasticmapreduce" instance Hashable ServiceNamespace instance NFData ServiceNamespace instance ToByteString ServiceNamespace instance ToQuery ServiceNamespace instance ToHeader ServiceNamespace instance ToJSON ServiceNamespace where toJSON = toJSONText instance FromJSON ServiceNamespace where parseJSON = parseJSONText "ServiceNamespace"