{-# 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.CostExplorer.Types.Sum -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.AWS.CostExplorer.Types.Sum where import Network.AWS.Prelude data AccountScope = Payer deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText AccountScope where parser = takeLowerText >>= \case "payer" -> pure Payer e -> fromTextError $ "Failure parsing AccountScope from value: '" <> e <> "'. Accepted values: payer" instance ToText AccountScope where toText = \case Payer -> "PAYER" instance Hashable AccountScope instance NFData AccountScope instance ToByteString AccountScope instance ToQuery AccountScope instance ToHeader AccountScope instance ToJSON AccountScope where toJSON = toJSONText instance FromJSON AccountScope where parseJSON = parseJSONText "AccountScope" data Context = CostAndUsage | Reservations deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText Context where parser = takeLowerText >>= \case "cost_and_usage" -> pure CostAndUsage "reservations" -> pure Reservations e -> fromTextError $ "Failure parsing Context from value: '" <> e <> "'. Accepted values: cost_and_usage, reservations" instance ToText Context where toText = \case CostAndUsage -> "COST_AND_USAGE" Reservations -> "RESERVATIONS" instance Hashable Context instance NFData Context instance ToByteString Context instance ToQuery Context instance ToHeader Context instance ToJSON Context where toJSON = toJSONText data Dimension = DimensionAZ | DimensionCacheEngine | DimensionDatabaseEngine | DimensionDeploymentOption | DimensionInstanceType | DimensionInstanceTypeFamily | DimensionLegalEntityName | DimensionLinkedAccount | DimensionOperatingSystem | DimensionOperation | DimensionPlatform | DimensionPurchaseType | DimensionRecordType | DimensionRegion | DimensionScope | DimensionService | DimensionSubscriptionId | DimensionTenancy | DimensionUsageType | DimensionUsageTypeGroup deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText Dimension where parser = takeLowerText >>= \case "az" -> pure DimensionAZ "cache_engine" -> pure DimensionCacheEngine "database_engine" -> pure DimensionDatabaseEngine "deployment_option" -> pure DimensionDeploymentOption "instance_type" -> pure DimensionInstanceType "instance_type_family" -> pure DimensionInstanceTypeFamily "legal_entity_name" -> pure DimensionLegalEntityName "linked_account" -> pure DimensionLinkedAccount "operating_system" -> pure DimensionOperatingSystem "operation" -> pure DimensionOperation "platform" -> pure DimensionPlatform "purchase_type" -> pure DimensionPurchaseType "record_type" -> pure DimensionRecordType "region" -> pure DimensionRegion "scope" -> pure DimensionScope "service" -> pure DimensionService "subscription_id" -> pure DimensionSubscriptionId "tenancy" -> pure DimensionTenancy "usage_type" -> pure DimensionUsageType "usage_type_group" -> pure DimensionUsageTypeGroup e -> fromTextError $ "Failure parsing Dimension from value: '" <> e <> "'. Accepted values: az, cache_engine, database_engine, deployment_option, instance_type, instance_type_family, legal_entity_name, linked_account, operating_system, operation, platform, purchase_type, record_type, region, scope, service, subscription_id, tenancy, usage_type, usage_type_group" instance ToText Dimension where toText = \case DimensionAZ -> "AZ" DimensionCacheEngine -> "CACHE_ENGINE" DimensionDatabaseEngine -> "DATABASE_ENGINE" DimensionDeploymentOption -> "DEPLOYMENT_OPTION" DimensionInstanceType -> "INSTANCE_TYPE" DimensionInstanceTypeFamily -> "INSTANCE_TYPE_FAMILY" DimensionLegalEntityName -> "LEGAL_ENTITY_NAME" DimensionLinkedAccount -> "LINKED_ACCOUNT" DimensionOperatingSystem -> "OPERATING_SYSTEM" DimensionOperation -> "OPERATION" DimensionPlatform -> "PLATFORM" DimensionPurchaseType -> "PURCHASE_TYPE" DimensionRecordType -> "RECORD_TYPE" DimensionRegion -> "REGION" DimensionScope -> "SCOPE" DimensionService -> "SERVICE" DimensionSubscriptionId -> "SUBSCRIPTION_ID" DimensionTenancy -> "TENANCY" DimensionUsageType -> "USAGE_TYPE" DimensionUsageTypeGroup -> "USAGE_TYPE_GROUP" instance Hashable Dimension instance NFData Dimension instance ToByteString Dimension instance ToQuery Dimension instance ToHeader Dimension instance ToJSON Dimension where toJSON = toJSONText data Granularity = Daily | Monthly deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText Granularity where parser = takeLowerText >>= \case "daily" -> pure Daily "monthly" -> pure Monthly e -> fromTextError $ "Failure parsing Granularity from value: '" <> e <> "'. Accepted values: daily, monthly" instance ToText Granularity where toText = \case Daily -> "DAILY" Monthly -> "MONTHLY" instance Hashable Granularity instance NFData Granularity instance ToByteString Granularity instance ToQuery Granularity instance ToHeader Granularity instance ToJSON Granularity where toJSON = toJSONText data GroupDefinitionType = Dimension | Tag deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText GroupDefinitionType where parser = takeLowerText >>= \case "dimension" -> pure Dimension "tag" -> pure Tag e -> fromTextError $ "Failure parsing GroupDefinitionType from value: '" <> e <> "'. Accepted values: dimension, tag" instance ToText GroupDefinitionType where toText = \case Dimension -> "DIMENSION" Tag -> "TAG" instance Hashable GroupDefinitionType instance NFData GroupDefinitionType instance ToByteString GroupDefinitionType instance ToQuery GroupDefinitionType instance ToHeader GroupDefinitionType instance ToJSON GroupDefinitionType where toJSON = toJSONText instance FromJSON GroupDefinitionType where parseJSON = parseJSONText "GroupDefinitionType" data LookbackPeriodInDays = SevenDays | SixtyDays | ThirtyDays deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText LookbackPeriodInDays where parser = takeLowerText >>= \case "seven_days" -> pure SevenDays "sixty_days" -> pure SixtyDays "thirty_days" -> pure ThirtyDays e -> fromTextError $ "Failure parsing LookbackPeriodInDays from value: '" <> e <> "'. Accepted values: seven_days, sixty_days, thirty_days" instance ToText LookbackPeriodInDays where toText = \case SevenDays -> "SEVEN_DAYS" SixtyDays -> "SIXTY_DAYS" ThirtyDays -> "THIRTY_DAYS" instance Hashable LookbackPeriodInDays instance NFData LookbackPeriodInDays instance ToByteString LookbackPeriodInDays instance ToQuery LookbackPeriodInDays instance ToHeader LookbackPeriodInDays instance ToJSON LookbackPeriodInDays where toJSON = toJSONText instance FromJSON LookbackPeriodInDays where parseJSON = parseJSONText "LookbackPeriodInDays" data OfferingClass = Convertible | Standard deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText OfferingClass where parser = takeLowerText >>= \case "convertible" -> pure Convertible "standard" -> pure Standard e -> fromTextError $ "Failure parsing OfferingClass from value: '" <> e <> "'. Accepted values: convertible, standard" instance ToText OfferingClass where toText = \case Convertible -> "CONVERTIBLE" Standard -> "STANDARD" instance Hashable OfferingClass instance NFData OfferingClass instance ToByteString OfferingClass instance ToQuery OfferingClass instance ToHeader OfferingClass instance ToJSON OfferingClass where toJSON = toJSONText instance FromJSON OfferingClass where parseJSON = parseJSONText "OfferingClass" data PaymentOption = AllUpfront | NoUpfront | PartialUpfront deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText PaymentOption where parser = takeLowerText >>= \case "all_upfront" -> pure AllUpfront "no_upfront" -> pure NoUpfront "partial_upfront" -> pure PartialUpfront e -> fromTextError $ "Failure parsing PaymentOption from value: '" <> e <> "'. Accepted values: all_upfront, no_upfront, partial_upfront" instance ToText PaymentOption where toText = \case AllUpfront -> "ALL_UPFRONT" NoUpfront -> "NO_UPFRONT" PartialUpfront -> "PARTIAL_UPFRONT" instance Hashable PaymentOption instance NFData PaymentOption instance ToByteString PaymentOption instance ToQuery PaymentOption instance ToHeader PaymentOption instance ToJSON PaymentOption where toJSON = toJSONText instance FromJSON PaymentOption where parseJSON = parseJSONText "PaymentOption" data TermInYears = OneYear | ThreeYears deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText TermInYears where parser = takeLowerText >>= \case "one_year" -> pure OneYear "three_years" -> pure ThreeYears e -> fromTextError $ "Failure parsing TermInYears from value: '" <> e <> "'. Accepted values: one_year, three_years" instance ToText TermInYears where toText = \case OneYear -> "ONE_YEAR" ThreeYears -> "THREE_YEARS" instance Hashable TermInYears instance NFData TermInYears instance ToByteString TermInYears instance ToQuery TermInYears instance ToHeader TermInYears instance ToJSON TermInYears where toJSON = toJSONText instance FromJSON TermInYears where parseJSON = parseJSONText "TermInYears"