{-# 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.Greengrass.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.Greengrass.Types.Sum where import Network.AWS.Prelude data DeploymentType = ForceResetDeployment | NewDeployment | Redeployment | ResetDeployment deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText DeploymentType where parser = takeLowerText >>= \case "forceresetdeployment" -> pure ForceResetDeployment "newdeployment" -> pure NewDeployment "redeployment" -> pure Redeployment "resetdeployment" -> pure ResetDeployment e -> fromTextError $ "Failure parsing DeploymentType from value: '" <> e <> "'. Accepted values: forceresetdeployment, newdeployment, redeployment, resetdeployment" instance ToText DeploymentType where toText = \case ForceResetDeployment -> "ForceResetDeployment" NewDeployment -> "NewDeployment" Redeployment -> "Redeployment" ResetDeployment -> "ResetDeployment" instance Hashable DeploymentType instance NFData DeploymentType instance ToByteString DeploymentType instance ToQuery DeploymentType instance ToHeader DeploymentType instance ToJSON DeploymentType where toJSON = toJSONText instance FromJSON DeploymentType where parseJSON = parseJSONText "DeploymentType" data EncodingType = Binary | JSON deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText EncodingType where parser = takeLowerText >>= \case "binary" -> pure Binary "json" -> pure JSON e -> fromTextError $ "Failure parsing EncodingType from value: '" <> e <> "'. Accepted values: binary, json" instance ToText EncodingType where toText = \case Binary -> "binary" JSON -> "json" instance Hashable EncodingType instance NFData EncodingType instance ToByteString EncodingType instance ToQuery EncodingType instance ToHeader EncodingType instance ToJSON EncodingType where toJSON = toJSONText instance FromJSON EncodingType where parseJSON = parseJSONText "EncodingType" data LoggerComponent = GreengrassSystem | Lambda deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText LoggerComponent where parser = takeLowerText >>= \case "greengrasssystem" -> pure GreengrassSystem "lambda" -> pure Lambda e -> fromTextError $ "Failure parsing LoggerComponent from value: '" <> e <> "'. Accepted values: greengrasssystem, lambda" instance ToText LoggerComponent where toText = \case GreengrassSystem -> "GreengrassSystem" Lambda -> "Lambda" instance Hashable LoggerComponent instance NFData LoggerComponent instance ToByteString LoggerComponent instance ToQuery LoggerComponent instance ToHeader LoggerComponent instance ToJSON LoggerComponent where toJSON = toJSONText instance FromJSON LoggerComponent where parseJSON = parseJSONText "LoggerComponent" data LoggerLevel = Debug | Error' | Fatal | Info | Warn deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText LoggerLevel where parser = takeLowerText >>= \case "debug" -> pure Debug "error" -> pure Error' "fatal" -> pure Fatal "info" -> pure Info "warn" -> pure Warn e -> fromTextError $ "Failure parsing LoggerLevel from value: '" <> e <> "'. Accepted values: debug, error, fatal, info, warn" instance ToText LoggerLevel where toText = \case Debug -> "DEBUG" Error' -> "ERROR" Fatal -> "FATAL" Info -> "INFO" Warn -> "WARN" instance Hashable LoggerLevel instance NFData LoggerLevel instance ToByteString LoggerLevel instance ToQuery LoggerLevel instance ToHeader LoggerLevel instance ToJSON LoggerLevel where toJSON = toJSONText instance FromJSON LoggerLevel where parseJSON = parseJSONText "LoggerLevel" data LoggerType = AWSCloudWatch | FileSystem deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText LoggerType where parser = takeLowerText >>= \case "awscloudwatch" -> pure AWSCloudWatch "filesystem" -> pure FileSystem e -> fromTextError $ "Failure parsing LoggerType from value: '" <> e <> "'. Accepted values: awscloudwatch, filesystem" instance ToText LoggerType where toText = \case AWSCloudWatch -> "AWSCloudWatch" FileSystem -> "FileSystem" instance Hashable LoggerType instance NFData LoggerType instance ToByteString LoggerType instance ToQuery LoggerType instance ToHeader LoggerType instance ToJSON LoggerType where toJSON = toJSONText instance FromJSON LoggerType where parseJSON = parseJSONText "LoggerType" -- | The type of permission a function has to access a resource. data Permission = RO | RW deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText Permission where parser = takeLowerText >>= \case "ro" -> pure RO "rw" -> pure RW e -> fromTextError $ "Failure parsing Permission from value: '" <> e <> "'. Accepted values: ro, rw" instance ToText Permission where toText = \case RO -> "ro" RW -> "rw" instance Hashable Permission instance NFData Permission instance ToByteString Permission instance ToQuery Permission instance ToHeader Permission instance ToJSON Permission where toJSON = toJSONText instance FromJSON Permission where parseJSON = parseJSONText "Permission" -- | The piece of software on the Greengrass core that will be updated. data SoftwareToUpdate = Core | OtaAgent deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText SoftwareToUpdate where parser = takeLowerText >>= \case "core" -> pure Core "ota_agent" -> pure OtaAgent e -> fromTextError $ "Failure parsing SoftwareToUpdate from value: '" <> e <> "'. Accepted values: core, ota_agent" instance ToText SoftwareToUpdate where toText = \case Core -> "core" OtaAgent -> "ota_agent" instance Hashable SoftwareToUpdate instance NFData SoftwareToUpdate instance ToByteString SoftwareToUpdate instance ToQuery SoftwareToUpdate instance ToHeader SoftwareToUpdate instance ToJSON SoftwareToUpdate where toJSON = toJSONText -- | The minimum level of log statements that should be logged by the OTA Agent during an update. data UpdateAgentLogLevel = UALLDebug | UALLError' | UALLFatal | UALLInfo | UALLNone | UALLTrace | UALLVerbose | UALLWarn deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText UpdateAgentLogLevel where parser = takeLowerText >>= \case "debug" -> pure UALLDebug "error" -> pure UALLError' "fatal" -> pure UALLFatal "info" -> pure UALLInfo "none" -> pure UALLNone "trace" -> pure UALLTrace "verbose" -> pure UALLVerbose "warn" -> pure UALLWarn e -> fromTextError $ "Failure parsing UpdateAgentLogLevel from value: '" <> e <> "'. Accepted values: debug, error, fatal, info, none, trace, verbose, warn" instance ToText UpdateAgentLogLevel where toText = \case UALLDebug -> "DEBUG" UALLError' -> "ERROR" UALLFatal -> "FATAL" UALLInfo -> "INFO" UALLNone -> "NONE" UALLTrace -> "TRACE" UALLVerbose -> "VERBOSE" UALLWarn -> "WARN" instance Hashable UpdateAgentLogLevel instance NFData UpdateAgentLogLevel instance ToByteString UpdateAgentLogLevel instance ToQuery UpdateAgentLogLevel instance ToHeader UpdateAgentLogLevel instance ToJSON UpdateAgentLogLevel where toJSON = toJSONText -- | The architecture of the cores which are the targets of an update. data UpdateTargetsArchitecture = AARCH64 | Armv7l | X86_64 deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText UpdateTargetsArchitecture where parser = takeLowerText >>= \case "aarch64" -> pure AARCH64 "armv7l" -> pure Armv7l "x86_64" -> pure X86_64 e -> fromTextError $ "Failure parsing UpdateTargetsArchitecture from value: '" <> e <> "'. Accepted values: aarch64, armv7l, x86_64" instance ToText UpdateTargetsArchitecture where toText = \case AARCH64 -> "aarch64" Armv7l -> "armv7l" X86_64 -> "x86_64" instance Hashable UpdateTargetsArchitecture instance NFData UpdateTargetsArchitecture instance ToByteString UpdateTargetsArchitecture instance ToQuery UpdateTargetsArchitecture instance ToHeader UpdateTargetsArchitecture instance ToJSON UpdateTargetsArchitecture where toJSON = toJSONText -- | The operating system of the cores which are the targets of an update. data UpdateTargetsOperatingSystem = AmazonLinux | Raspbian | Ubuntu deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic) instance FromText UpdateTargetsOperatingSystem where parser = takeLowerText >>= \case "amazon_linux" -> pure AmazonLinux "raspbian" -> pure Raspbian "ubuntu" -> pure Ubuntu e -> fromTextError $ "Failure parsing UpdateTargetsOperatingSystem from value: '" <> e <> "'. Accepted values: amazon_linux, raspbian, ubuntu" instance ToText UpdateTargetsOperatingSystem where toText = \case AmazonLinux -> "amazon_linux" Raspbian -> "raspbian" Ubuntu -> "ubuntu" instance Hashable UpdateTargetsOperatingSystem instance NFData UpdateTargetsOperatingSystem instance ToByteString UpdateTargetsOperatingSystem instance ToQuery UpdateTargetsOperatingSystem instance ToHeader UpdateTargetsOperatingSystem instance ToJSON UpdateTargetsOperatingSystem where toJSON = toJSONText