{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype DeviceFilterAttribute = DeviceFilterAttribute'
  { DeviceFilterAttribute -> Text
fromDeviceFilterAttribute ::
      Data.Text
  }
  deriving stock
    ( Int -> DeviceFilterAttribute -> ShowS
[DeviceFilterAttribute] -> ShowS
DeviceFilterAttribute -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq DeviceFilterAttribute
Int -> DeviceFilterAttribute -> Int
DeviceFilterAttribute -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: DeviceFilterAttribute -> ()
$crnf :: DeviceFilterAttribute -> ()
Prelude.NFData,
      Text -> Either String DeviceFilterAttribute
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DeviceFilterAttribute
$cfromText :: Text -> Either String DeviceFilterAttribute
Data.FromText,
      DeviceFilterAttribute -> Text
forall a. (a -> Text) -> ToText a
toText :: DeviceFilterAttribute -> Text
$ctoText :: DeviceFilterAttribute -> Text
Data.ToText,
      DeviceFilterAttribute -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: DeviceFilterAttribute -> ByteString
$ctoBS :: DeviceFilterAttribute -> ByteString
Data.ToByteString,
      DeviceFilterAttribute -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DeviceFilterAttribute -> ByteStringBuilder
$cbuild :: DeviceFilterAttribute -> ByteStringBuilder
Data.ToLog,
      HeaderName -> DeviceFilterAttribute -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DeviceFilterAttribute -> [Header]
$ctoHeader :: HeaderName -> DeviceFilterAttribute -> [Header]
Data.ToHeader,
      DeviceFilterAttribute -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DeviceFilterAttribute -> QueryString
$ctoQuery :: DeviceFilterAttribute -> QueryString
Data.ToQuery,
      Value -> Parser [DeviceFilterAttribute]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [DeviceFilterAttribute]
FromJSONKeyFunction DeviceFilterAttribute
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DeviceFilterAttribute]
$cfromJSONKeyList :: FromJSONKeyFunction [DeviceFilterAttribute]
fromJSONKey :: FromJSONKeyFunction DeviceFilterAttribute
$cfromJSONKey :: FromJSONKeyFunction DeviceFilterAttribute
Data.FromJSONKey,
      [DeviceFilterAttribute] -> Encoding
[DeviceFilterAttribute] -> Value
DeviceFilterAttribute -> Encoding
DeviceFilterAttribute -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [DeviceFilterAttribute]
ToJSONKeyFunction DeviceFilterAttribute
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DeviceFilterAttribute]
$ctoJSONKeyList :: ToJSONKeyFunction [DeviceFilterAttribute]
toJSONKey :: ToJSONKeyFunction DeviceFilterAttribute
$ctoJSONKey :: ToJSONKeyFunction DeviceFilterAttribute
Data.ToJSONKey,
      [Node] -> Either String DeviceFilterAttribute
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DeviceFilterAttribute
$cparseXML :: [Node] -> Either String DeviceFilterAttribute
Data.FromXML,
      DeviceFilterAttribute -> XML
forall a. (a -> XML) -> ToXML a
toXML :: DeviceFilterAttribute -> XML
$ctoXML :: DeviceFilterAttribute -> XML
Data.ToXML
    )

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

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

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

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

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

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

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

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

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

pattern DeviceFilterAttribute_PLATFORM :: DeviceFilterAttribute
pattern $bDeviceFilterAttribute_PLATFORM :: DeviceFilterAttribute
$mDeviceFilterAttribute_PLATFORM :: forall {r}.
DeviceFilterAttribute -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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'
  #-}