{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.DeviceFarm.Types.DeviceAttribute
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DeviceFarm.Types.DeviceAttribute
  ( DeviceAttribute
      ( ..,
        DeviceAttribute_APPIUM_VERSION,
        DeviceAttribute_ARN,
        DeviceAttribute_AVAILABILITY,
        DeviceAttribute_FLEET_TYPE,
        DeviceAttribute_FORM_FACTOR,
        DeviceAttribute_INSTANCE_ARN,
        DeviceAttribute_INSTANCE_LABELS,
        DeviceAttribute_MANUFACTURER,
        DeviceAttribute_MODEL,
        DeviceAttribute_OS_VERSION,
        DeviceAttribute_PLATFORM,
        DeviceAttribute_REMOTE_ACCESS_ENABLED,
        DeviceAttribute_REMOTE_DEBUG_ENABLED
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype DeviceAttribute = DeviceAttribute'
  { DeviceAttribute -> Text
fromDeviceAttribute ::
      Core.Text
  }
  deriving stock
    ( Int -> DeviceAttribute -> ShowS
[DeviceAttribute] -> ShowS
DeviceAttribute -> String
(Int -> DeviceAttribute -> ShowS)
-> (DeviceAttribute -> String)
-> ([DeviceAttribute] -> ShowS)
-> Show DeviceAttribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeviceAttribute] -> ShowS
$cshowList :: [DeviceAttribute] -> ShowS
show :: DeviceAttribute -> String
$cshow :: DeviceAttribute -> String
showsPrec :: Int -> DeviceAttribute -> ShowS
$cshowsPrec :: Int -> DeviceAttribute -> ShowS
Prelude.Show,
      ReadPrec [DeviceAttribute]
ReadPrec DeviceAttribute
Int -> ReadS DeviceAttribute
ReadS [DeviceAttribute]
(Int -> ReadS DeviceAttribute)
-> ReadS [DeviceAttribute]
-> ReadPrec DeviceAttribute
-> ReadPrec [DeviceAttribute]
-> Read DeviceAttribute
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeviceAttribute]
$creadListPrec :: ReadPrec [DeviceAttribute]
readPrec :: ReadPrec DeviceAttribute
$creadPrec :: ReadPrec DeviceAttribute
readList :: ReadS [DeviceAttribute]
$creadList :: ReadS [DeviceAttribute]
readsPrec :: Int -> ReadS DeviceAttribute
$creadsPrec :: Int -> ReadS DeviceAttribute
Prelude.Read,
      DeviceAttribute -> DeviceAttribute -> Bool
(DeviceAttribute -> DeviceAttribute -> Bool)
-> (DeviceAttribute -> DeviceAttribute -> Bool)
-> Eq DeviceAttribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeviceAttribute -> DeviceAttribute -> Bool
$c/= :: DeviceAttribute -> DeviceAttribute -> Bool
== :: DeviceAttribute -> DeviceAttribute -> Bool
$c== :: DeviceAttribute -> DeviceAttribute -> Bool
Prelude.Eq,
      Eq DeviceAttribute
Eq DeviceAttribute
-> (DeviceAttribute -> DeviceAttribute -> Ordering)
-> (DeviceAttribute -> DeviceAttribute -> Bool)
-> (DeviceAttribute -> DeviceAttribute -> Bool)
-> (DeviceAttribute -> DeviceAttribute -> Bool)
-> (DeviceAttribute -> DeviceAttribute -> Bool)
-> (DeviceAttribute -> DeviceAttribute -> DeviceAttribute)
-> (DeviceAttribute -> DeviceAttribute -> DeviceAttribute)
-> Ord DeviceAttribute
DeviceAttribute -> DeviceAttribute -> Bool
DeviceAttribute -> DeviceAttribute -> Ordering
DeviceAttribute -> DeviceAttribute -> DeviceAttribute
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DeviceAttribute -> DeviceAttribute -> DeviceAttribute
$cmin :: DeviceAttribute -> DeviceAttribute -> DeviceAttribute
max :: DeviceAttribute -> DeviceAttribute -> DeviceAttribute
$cmax :: DeviceAttribute -> DeviceAttribute -> DeviceAttribute
>= :: DeviceAttribute -> DeviceAttribute -> Bool
$c>= :: DeviceAttribute -> DeviceAttribute -> Bool
> :: DeviceAttribute -> DeviceAttribute -> Bool
$c> :: DeviceAttribute -> DeviceAttribute -> Bool
<= :: DeviceAttribute -> DeviceAttribute -> Bool
$c<= :: DeviceAttribute -> DeviceAttribute -> Bool
< :: DeviceAttribute -> DeviceAttribute -> Bool
$c< :: DeviceAttribute -> DeviceAttribute -> Bool
compare :: DeviceAttribute -> DeviceAttribute -> Ordering
$ccompare :: DeviceAttribute -> DeviceAttribute -> Ordering
$cp1Ord :: Eq DeviceAttribute
Prelude.Ord,
      (forall x. DeviceAttribute -> Rep DeviceAttribute x)
-> (forall x. Rep DeviceAttribute x -> DeviceAttribute)
-> Generic DeviceAttribute
forall x. Rep DeviceAttribute x -> DeviceAttribute
forall x. DeviceAttribute -> Rep DeviceAttribute x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeviceAttribute x -> DeviceAttribute
$cfrom :: forall x. DeviceAttribute -> Rep DeviceAttribute x
Prelude.Generic
    )
  deriving newtype
    ( Int -> DeviceAttribute -> Int
DeviceAttribute -> Int
(Int -> DeviceAttribute -> Int)
-> (DeviceAttribute -> Int) -> Hashable DeviceAttribute
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DeviceAttribute -> Int
$chash :: DeviceAttribute -> Int
hashWithSalt :: Int -> DeviceAttribute -> Int
$chashWithSalt :: Int -> DeviceAttribute -> Int
Prelude.Hashable,
      DeviceAttribute -> ()
(DeviceAttribute -> ()) -> NFData DeviceAttribute
forall a. (a -> ()) -> NFData a
rnf :: DeviceAttribute -> ()
$crnf :: DeviceAttribute -> ()
Prelude.NFData,
      Text -> Either String DeviceAttribute
(Text -> Either String DeviceAttribute) -> FromText DeviceAttribute
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DeviceAttribute
$cfromText :: Text -> Either String DeviceAttribute
Core.FromText,
      DeviceAttribute -> Text
(DeviceAttribute -> Text) -> ToText DeviceAttribute
forall a. (a -> Text) -> ToText a
toText :: DeviceAttribute -> Text
$ctoText :: DeviceAttribute -> Text
Core.ToText,
      DeviceAttribute -> ByteString
(DeviceAttribute -> ByteString) -> ToByteString DeviceAttribute
forall a. (a -> ByteString) -> ToByteString a
toBS :: DeviceAttribute -> ByteString
$ctoBS :: DeviceAttribute -> ByteString
Core.ToByteString,
      DeviceAttribute -> ByteStringBuilder
(DeviceAttribute -> ByteStringBuilder) -> ToLog DeviceAttribute
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DeviceAttribute -> ByteStringBuilder
$cbuild :: DeviceAttribute -> ByteStringBuilder
Core.ToLog,
      HeaderName -> DeviceAttribute -> [Header]
(HeaderName -> DeviceAttribute -> [Header])
-> ToHeader DeviceAttribute
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DeviceAttribute -> [Header]
$ctoHeader :: HeaderName -> DeviceAttribute -> [Header]
Core.ToHeader,
      DeviceAttribute -> QueryString
(DeviceAttribute -> QueryString) -> ToQuery DeviceAttribute
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DeviceAttribute -> QueryString
$ctoQuery :: DeviceAttribute -> QueryString
Core.ToQuery,
      Value -> Parser [DeviceAttribute]
Value -> Parser DeviceAttribute
(Value -> Parser DeviceAttribute)
-> (Value -> Parser [DeviceAttribute]) -> FromJSON DeviceAttribute
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DeviceAttribute]
$cparseJSONList :: Value -> Parser [DeviceAttribute]
parseJSON :: Value -> Parser DeviceAttribute
$cparseJSON :: Value -> Parser DeviceAttribute
Core.FromJSON,
      FromJSONKeyFunction [DeviceAttribute]
FromJSONKeyFunction DeviceAttribute
FromJSONKeyFunction DeviceAttribute
-> FromJSONKeyFunction [DeviceAttribute]
-> FromJSONKey DeviceAttribute
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DeviceAttribute]
$cfromJSONKeyList :: FromJSONKeyFunction [DeviceAttribute]
fromJSONKey :: FromJSONKeyFunction DeviceAttribute
$cfromJSONKey :: FromJSONKeyFunction DeviceAttribute
Core.FromJSONKey,
      [DeviceAttribute] -> Encoding
[DeviceAttribute] -> Value
DeviceAttribute -> Encoding
DeviceAttribute -> Value
(DeviceAttribute -> Value)
-> (DeviceAttribute -> Encoding)
-> ([DeviceAttribute] -> Value)
-> ([DeviceAttribute] -> Encoding)
-> ToJSON DeviceAttribute
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DeviceAttribute] -> Encoding
$ctoEncodingList :: [DeviceAttribute] -> Encoding
toJSONList :: [DeviceAttribute] -> Value
$ctoJSONList :: [DeviceAttribute] -> Value
toEncoding :: DeviceAttribute -> Encoding
$ctoEncoding :: DeviceAttribute -> Encoding
toJSON :: DeviceAttribute -> Value
$ctoJSON :: DeviceAttribute -> Value
Core.ToJSON,
      ToJSONKeyFunction [DeviceAttribute]
ToJSONKeyFunction DeviceAttribute
ToJSONKeyFunction DeviceAttribute
-> ToJSONKeyFunction [DeviceAttribute] -> ToJSONKey DeviceAttribute
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DeviceAttribute]
$ctoJSONKeyList :: ToJSONKeyFunction [DeviceAttribute]
toJSONKey :: ToJSONKeyFunction DeviceAttribute
$ctoJSONKey :: ToJSONKeyFunction DeviceAttribute
Core.ToJSONKey,
      [Node] -> Either String DeviceAttribute
([Node] -> Either String DeviceAttribute)
-> FromXML DeviceAttribute
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DeviceAttribute
$cparseXML :: [Node] -> Either String DeviceAttribute
Core.FromXML,
      DeviceAttribute -> XML
(DeviceAttribute -> XML) -> ToXML DeviceAttribute
forall a. (a -> XML) -> ToXML a
toXML :: DeviceAttribute -> XML
$ctoXML :: DeviceAttribute -> XML
Core.ToXML
    )

pattern DeviceAttribute_APPIUM_VERSION :: DeviceAttribute
pattern $bDeviceAttribute_APPIUM_VERSION :: DeviceAttribute
$mDeviceAttribute_APPIUM_VERSION :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_APPIUM_VERSION = DeviceAttribute' "APPIUM_VERSION"

pattern DeviceAttribute_ARN :: DeviceAttribute
pattern $bDeviceAttribute_ARN :: DeviceAttribute
$mDeviceAttribute_ARN :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_ARN = DeviceAttribute' "ARN"

pattern DeviceAttribute_AVAILABILITY :: DeviceAttribute
pattern $bDeviceAttribute_AVAILABILITY :: DeviceAttribute
$mDeviceAttribute_AVAILABILITY :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_AVAILABILITY = DeviceAttribute' "AVAILABILITY"

pattern DeviceAttribute_FLEET_TYPE :: DeviceAttribute
pattern $bDeviceAttribute_FLEET_TYPE :: DeviceAttribute
$mDeviceAttribute_FLEET_TYPE :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_FLEET_TYPE = DeviceAttribute' "FLEET_TYPE"

pattern DeviceAttribute_FORM_FACTOR :: DeviceAttribute
pattern $bDeviceAttribute_FORM_FACTOR :: DeviceAttribute
$mDeviceAttribute_FORM_FACTOR :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_FORM_FACTOR = DeviceAttribute' "FORM_FACTOR"

pattern DeviceAttribute_INSTANCE_ARN :: DeviceAttribute
pattern $bDeviceAttribute_INSTANCE_ARN :: DeviceAttribute
$mDeviceAttribute_INSTANCE_ARN :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_INSTANCE_ARN = DeviceAttribute' "INSTANCE_ARN"

pattern DeviceAttribute_INSTANCE_LABELS :: DeviceAttribute
pattern $bDeviceAttribute_INSTANCE_LABELS :: DeviceAttribute
$mDeviceAttribute_INSTANCE_LABELS :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_INSTANCE_LABELS = DeviceAttribute' "INSTANCE_LABELS"

pattern DeviceAttribute_MANUFACTURER :: DeviceAttribute
pattern $bDeviceAttribute_MANUFACTURER :: DeviceAttribute
$mDeviceAttribute_MANUFACTURER :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_MANUFACTURER = DeviceAttribute' "MANUFACTURER"

pattern DeviceAttribute_MODEL :: DeviceAttribute
pattern $bDeviceAttribute_MODEL :: DeviceAttribute
$mDeviceAttribute_MODEL :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_MODEL = DeviceAttribute' "MODEL"

pattern DeviceAttribute_OS_VERSION :: DeviceAttribute
pattern $bDeviceAttribute_OS_VERSION :: DeviceAttribute
$mDeviceAttribute_OS_VERSION :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_OS_VERSION = DeviceAttribute' "OS_VERSION"

pattern DeviceAttribute_PLATFORM :: DeviceAttribute
pattern $bDeviceAttribute_PLATFORM :: DeviceAttribute
$mDeviceAttribute_PLATFORM :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_PLATFORM = DeviceAttribute' "PLATFORM"

pattern DeviceAttribute_REMOTE_ACCESS_ENABLED :: DeviceAttribute
pattern $bDeviceAttribute_REMOTE_ACCESS_ENABLED :: DeviceAttribute
$mDeviceAttribute_REMOTE_ACCESS_ENABLED :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_REMOTE_ACCESS_ENABLED = DeviceAttribute' "REMOTE_ACCESS_ENABLED"

pattern DeviceAttribute_REMOTE_DEBUG_ENABLED :: DeviceAttribute
pattern $bDeviceAttribute_REMOTE_DEBUG_ENABLED :: DeviceAttribute
$mDeviceAttribute_REMOTE_DEBUG_ENABLED :: forall r. DeviceAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceAttribute_REMOTE_DEBUG_ENABLED = DeviceAttribute' "REMOTE_DEBUG_ENABLED"

{-# COMPLETE
  DeviceAttribute_APPIUM_VERSION,
  DeviceAttribute_ARN,
  DeviceAttribute_AVAILABILITY,
  DeviceAttribute_FLEET_TYPE,
  DeviceAttribute_FORM_FACTOR,
  DeviceAttribute_INSTANCE_ARN,
  DeviceAttribute_INSTANCE_LABELS,
  DeviceAttribute_MANUFACTURER,
  DeviceAttribute_MODEL,
  DeviceAttribute_OS_VERSION,
  DeviceAttribute_PLATFORM,
  DeviceAttribute_REMOTE_ACCESS_ENABLED,
  DeviceAttribute_REMOTE_DEBUG_ENABLED,
  DeviceAttribute'
  #-}