{-# 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.DeviceFilterAttribute
-- 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.DeviceFilterAttribute
  ( DeviceFilterAttribute
      ( ..,
        DeviceFilterAttribute_ARN,
        DeviceFilterAttribute_AVAILABILITY,
        DeviceFilterAttribute_FLEET_TYPE,
        DeviceFilterAttribute_FORM_FACTOR,
        DeviceFilterAttribute_INSTANCE_ARN,
        DeviceFilterAttribute_INSTANCE_LABELS,
        DeviceFilterAttribute_MANUFACTURER,
        DeviceFilterAttribute_MODEL,
        DeviceFilterAttribute_OS_VERSION,
        DeviceFilterAttribute_PLATFORM,
        DeviceFilterAttribute_REMOTE_ACCESS_ENABLED,
        DeviceFilterAttribute_REMOTE_DEBUG_ENABLED
      ),
  )
where

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

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

pattern DeviceFilterAttribute_ARN :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_ARN :: DeviceFilterAttribute
$mDeviceFilterAttribute_ARN :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_ARN = DeviceFilterAttribute' "ARN"

pattern DeviceFilterAttribute_AVAILABILITY :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_AVAILABILITY :: DeviceFilterAttribute
$mDeviceFilterAttribute_AVAILABILITY :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_AVAILABILITY = DeviceFilterAttribute' "AVAILABILITY"

pattern DeviceFilterAttribute_FLEET_TYPE :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_FLEET_TYPE :: DeviceFilterAttribute
$mDeviceFilterAttribute_FLEET_TYPE :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_FLEET_TYPE = DeviceFilterAttribute' "FLEET_TYPE"

pattern DeviceFilterAttribute_FORM_FACTOR :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_FORM_FACTOR :: DeviceFilterAttribute
$mDeviceFilterAttribute_FORM_FACTOR :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_FORM_FACTOR = DeviceFilterAttribute' "FORM_FACTOR"

pattern DeviceFilterAttribute_INSTANCE_ARN :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_INSTANCE_ARN :: DeviceFilterAttribute
$mDeviceFilterAttribute_INSTANCE_ARN :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_INSTANCE_ARN = DeviceFilterAttribute' "INSTANCE_ARN"

pattern DeviceFilterAttribute_INSTANCE_LABELS :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_INSTANCE_LABELS :: DeviceFilterAttribute
$mDeviceFilterAttribute_INSTANCE_LABELS :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_INSTANCE_LABELS = DeviceFilterAttribute' "INSTANCE_LABELS"

pattern DeviceFilterAttribute_MANUFACTURER :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_MANUFACTURER :: DeviceFilterAttribute
$mDeviceFilterAttribute_MANUFACTURER :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_MANUFACTURER = DeviceFilterAttribute' "MANUFACTURER"

pattern DeviceFilterAttribute_MODEL :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_MODEL :: DeviceFilterAttribute
$mDeviceFilterAttribute_MODEL :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_MODEL = DeviceFilterAttribute' "MODEL"

pattern DeviceFilterAttribute_OS_VERSION :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_OS_VERSION :: DeviceFilterAttribute
$mDeviceFilterAttribute_OS_VERSION :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_OS_VERSION = DeviceFilterAttribute' "OS_VERSION"

pattern DeviceFilterAttribute_PLATFORM :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_PLATFORM :: DeviceFilterAttribute
$mDeviceFilterAttribute_PLATFORM :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_PLATFORM = DeviceFilterAttribute' "PLATFORM"

pattern DeviceFilterAttribute_REMOTE_ACCESS_ENABLED :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_REMOTE_ACCESS_ENABLED :: DeviceFilterAttribute
$mDeviceFilterAttribute_REMOTE_ACCESS_ENABLED :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_REMOTE_ACCESS_ENABLED = DeviceFilterAttribute' "REMOTE_ACCESS_ENABLED"

pattern DeviceFilterAttribute_REMOTE_DEBUG_ENABLED :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_REMOTE_DEBUG_ENABLED :: DeviceFilterAttribute
$mDeviceFilterAttribute_REMOTE_DEBUG_ENABLED :: forall r.
DeviceFilterAttribute -> (Void# -> r) -> (Void# -> r) -> r
DeviceFilterAttribute_REMOTE_DEBUG_ENABLED = DeviceFilterAttribute' "REMOTE_DEBUG_ENABLED"

{-# COMPLETE
  DeviceFilterAttribute_ARN,
  DeviceFilterAttribute_AVAILABILITY,
  DeviceFilterAttribute_FLEET_TYPE,
  DeviceFilterAttribute_FORM_FACTOR,
  DeviceFilterAttribute_INSTANCE_ARN,
  DeviceFilterAttribute_INSTANCE_LABELS,
  DeviceFilterAttribute_MANUFACTURER,
  DeviceFilterAttribute_MODEL,
  DeviceFilterAttribute_OS_VERSION,
  DeviceFilterAttribute_PLATFORM,
  DeviceFilterAttribute_REMOTE_ACCESS_ENABLED,
  DeviceFilterAttribute_REMOTE_DEBUG_ENABLED,
  DeviceFilterAttribute'
  #-}