{-# 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.MachineLearning.Types.DataSourceFilterVariable
-- 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.MachineLearning.Types.DataSourceFilterVariable
  ( DataSourceFilterVariable
      ( ..,
        DataSourceFilterVariable_CreatedAt,
        DataSourceFilterVariable_DataLocationS3,
        DataSourceFilterVariable_IAMUser,
        DataSourceFilterVariable_LastUpdatedAt,
        DataSourceFilterVariable_Name,
        DataSourceFilterVariable_Status
      ),
  )
where

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

-- | A list of the variables to use in searching or filtering @DataSource@.
--
-- -   @CreatedAt@ - Sets the search criteria to @DataSource@ creation
--     date.
--
-- -   @Status@ - Sets the search criteria to @DataSource@ status.
--
-- -   @Name@ - Sets the search criteria to the contents of @DataSource@
--     @Name@.
--
-- -   @DataUri@ - Sets the search criteria to the URI of data files used
--     to create the @DataSource@. The URI can identify either a file or an
--     Amazon Simple Storage Service (Amazon S3) bucket or directory.
--
-- -   @IAMUser@ - Sets the search criteria to the user account that
--     invoked the @DataSource@ creation.
--
-- __Note:__ The variable names should match the variable names in the
-- @DataSource@.
newtype DataSourceFilterVariable = DataSourceFilterVariable'
  { DataSourceFilterVariable -> Text
fromDataSourceFilterVariable ::
      Core.Text
  }
  deriving stock
    ( Int -> DataSourceFilterVariable -> ShowS
[DataSourceFilterVariable] -> ShowS
DataSourceFilterVariable -> String
(Int -> DataSourceFilterVariable -> ShowS)
-> (DataSourceFilterVariable -> String)
-> ([DataSourceFilterVariable] -> ShowS)
-> Show DataSourceFilterVariable
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataSourceFilterVariable] -> ShowS
$cshowList :: [DataSourceFilterVariable] -> ShowS
show :: DataSourceFilterVariable -> String
$cshow :: DataSourceFilterVariable -> String
showsPrec :: Int -> DataSourceFilterVariable -> ShowS
$cshowsPrec :: Int -> DataSourceFilterVariable -> ShowS
Prelude.Show,
      ReadPrec [DataSourceFilterVariable]
ReadPrec DataSourceFilterVariable
Int -> ReadS DataSourceFilterVariable
ReadS [DataSourceFilterVariable]
(Int -> ReadS DataSourceFilterVariable)
-> ReadS [DataSourceFilterVariable]
-> ReadPrec DataSourceFilterVariable
-> ReadPrec [DataSourceFilterVariable]
-> Read DataSourceFilterVariable
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DataSourceFilterVariable]
$creadListPrec :: ReadPrec [DataSourceFilterVariable]
readPrec :: ReadPrec DataSourceFilterVariable
$creadPrec :: ReadPrec DataSourceFilterVariable
readList :: ReadS [DataSourceFilterVariable]
$creadList :: ReadS [DataSourceFilterVariable]
readsPrec :: Int -> ReadS DataSourceFilterVariable
$creadsPrec :: Int -> ReadS DataSourceFilterVariable
Prelude.Read,
      DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
(DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> (DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> Eq DataSourceFilterVariable
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c/= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
== :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c== :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
Prelude.Eq,
      Eq DataSourceFilterVariable
Eq DataSourceFilterVariable
-> (DataSourceFilterVariable
    -> DataSourceFilterVariable -> Ordering)
-> (DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> (DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> (DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> (DataSourceFilterVariable -> DataSourceFilterVariable -> Bool)
-> (DataSourceFilterVariable
    -> DataSourceFilterVariable -> DataSourceFilterVariable)
-> (DataSourceFilterVariable
    -> DataSourceFilterVariable -> DataSourceFilterVariable)
-> Ord DataSourceFilterVariable
DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
DataSourceFilterVariable -> DataSourceFilterVariable -> Ordering
DataSourceFilterVariable
-> DataSourceFilterVariable -> DataSourceFilterVariable
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 :: DataSourceFilterVariable
-> DataSourceFilterVariable -> DataSourceFilterVariable
$cmin :: DataSourceFilterVariable
-> DataSourceFilterVariable -> DataSourceFilterVariable
max :: DataSourceFilterVariable
-> DataSourceFilterVariable -> DataSourceFilterVariable
$cmax :: DataSourceFilterVariable
-> DataSourceFilterVariable -> DataSourceFilterVariable
>= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c>= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
> :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c> :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
<= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c<= :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
< :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
$c< :: DataSourceFilterVariable -> DataSourceFilterVariable -> Bool
compare :: DataSourceFilterVariable -> DataSourceFilterVariable -> Ordering
$ccompare :: DataSourceFilterVariable -> DataSourceFilterVariable -> Ordering
$cp1Ord :: Eq DataSourceFilterVariable
Prelude.Ord,
      (forall x.
 DataSourceFilterVariable -> Rep DataSourceFilterVariable x)
-> (forall x.
    Rep DataSourceFilterVariable x -> DataSourceFilterVariable)
-> Generic DataSourceFilterVariable
forall x.
Rep DataSourceFilterVariable x -> DataSourceFilterVariable
forall x.
DataSourceFilterVariable -> Rep DataSourceFilterVariable x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DataSourceFilterVariable x -> DataSourceFilterVariable
$cfrom :: forall x.
DataSourceFilterVariable -> Rep DataSourceFilterVariable x
Prelude.Generic
    )
  deriving newtype
    ( Int -> DataSourceFilterVariable -> Int
DataSourceFilterVariable -> Int
(Int -> DataSourceFilterVariable -> Int)
-> (DataSourceFilterVariable -> Int)
-> Hashable DataSourceFilterVariable
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DataSourceFilterVariable -> Int
$chash :: DataSourceFilterVariable -> Int
hashWithSalt :: Int -> DataSourceFilterVariable -> Int
$chashWithSalt :: Int -> DataSourceFilterVariable -> Int
Prelude.Hashable,
      DataSourceFilterVariable -> ()
(DataSourceFilterVariable -> ()) -> NFData DataSourceFilterVariable
forall a. (a -> ()) -> NFData a
rnf :: DataSourceFilterVariable -> ()
$crnf :: DataSourceFilterVariable -> ()
Prelude.NFData,
      Text -> Either String DataSourceFilterVariable
(Text -> Either String DataSourceFilterVariable)
-> FromText DataSourceFilterVariable
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DataSourceFilterVariable
$cfromText :: Text -> Either String DataSourceFilterVariable
Core.FromText,
      DataSourceFilterVariable -> Text
(DataSourceFilterVariable -> Text)
-> ToText DataSourceFilterVariable
forall a. (a -> Text) -> ToText a
toText :: DataSourceFilterVariable -> Text
$ctoText :: DataSourceFilterVariable -> Text
Core.ToText,
      DataSourceFilterVariable -> ByteString
(DataSourceFilterVariable -> ByteString)
-> ToByteString DataSourceFilterVariable
forall a. (a -> ByteString) -> ToByteString a
toBS :: DataSourceFilterVariable -> ByteString
$ctoBS :: DataSourceFilterVariable -> ByteString
Core.ToByteString,
      DataSourceFilterVariable -> ByteStringBuilder
(DataSourceFilterVariable -> ByteStringBuilder)
-> ToLog DataSourceFilterVariable
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DataSourceFilterVariable -> ByteStringBuilder
$cbuild :: DataSourceFilterVariable -> ByteStringBuilder
Core.ToLog,
      HeaderName -> DataSourceFilterVariable -> [Header]
(HeaderName -> DataSourceFilterVariable -> [Header])
-> ToHeader DataSourceFilterVariable
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DataSourceFilterVariable -> [Header]
$ctoHeader :: HeaderName -> DataSourceFilterVariable -> [Header]
Core.ToHeader,
      DataSourceFilterVariable -> QueryString
(DataSourceFilterVariable -> QueryString)
-> ToQuery DataSourceFilterVariable
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DataSourceFilterVariable -> QueryString
$ctoQuery :: DataSourceFilterVariable -> QueryString
Core.ToQuery,
      Value -> Parser [DataSourceFilterVariable]
Value -> Parser DataSourceFilterVariable
(Value -> Parser DataSourceFilterVariable)
-> (Value -> Parser [DataSourceFilterVariable])
-> FromJSON DataSourceFilterVariable
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DataSourceFilterVariable]
$cparseJSONList :: Value -> Parser [DataSourceFilterVariable]
parseJSON :: Value -> Parser DataSourceFilterVariable
$cparseJSON :: Value -> Parser DataSourceFilterVariable
Core.FromJSON,
      FromJSONKeyFunction [DataSourceFilterVariable]
FromJSONKeyFunction DataSourceFilterVariable
FromJSONKeyFunction DataSourceFilterVariable
-> FromJSONKeyFunction [DataSourceFilterVariable]
-> FromJSONKey DataSourceFilterVariable
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DataSourceFilterVariable]
$cfromJSONKeyList :: FromJSONKeyFunction [DataSourceFilterVariable]
fromJSONKey :: FromJSONKeyFunction DataSourceFilterVariable
$cfromJSONKey :: FromJSONKeyFunction DataSourceFilterVariable
Core.FromJSONKey,
      [DataSourceFilterVariable] -> Encoding
[DataSourceFilterVariable] -> Value
DataSourceFilterVariable -> Encoding
DataSourceFilterVariable -> Value
(DataSourceFilterVariable -> Value)
-> (DataSourceFilterVariable -> Encoding)
-> ([DataSourceFilterVariable] -> Value)
-> ([DataSourceFilterVariable] -> Encoding)
-> ToJSON DataSourceFilterVariable
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DataSourceFilterVariable] -> Encoding
$ctoEncodingList :: [DataSourceFilterVariable] -> Encoding
toJSONList :: [DataSourceFilterVariable] -> Value
$ctoJSONList :: [DataSourceFilterVariable] -> Value
toEncoding :: DataSourceFilterVariable -> Encoding
$ctoEncoding :: DataSourceFilterVariable -> Encoding
toJSON :: DataSourceFilterVariable -> Value
$ctoJSON :: DataSourceFilterVariable -> Value
Core.ToJSON,
      ToJSONKeyFunction [DataSourceFilterVariable]
ToJSONKeyFunction DataSourceFilterVariable
ToJSONKeyFunction DataSourceFilterVariable
-> ToJSONKeyFunction [DataSourceFilterVariable]
-> ToJSONKey DataSourceFilterVariable
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DataSourceFilterVariable]
$ctoJSONKeyList :: ToJSONKeyFunction [DataSourceFilterVariable]
toJSONKey :: ToJSONKeyFunction DataSourceFilterVariable
$ctoJSONKey :: ToJSONKeyFunction DataSourceFilterVariable
Core.ToJSONKey,
      [Node] -> Either String DataSourceFilterVariable
([Node] -> Either String DataSourceFilterVariable)
-> FromXML DataSourceFilterVariable
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DataSourceFilterVariable
$cparseXML :: [Node] -> Either String DataSourceFilterVariable
Core.FromXML,
      DataSourceFilterVariable -> XML
(DataSourceFilterVariable -> XML) -> ToXML DataSourceFilterVariable
forall a. (a -> XML) -> ToXML a
toXML :: DataSourceFilterVariable -> XML
$ctoXML :: DataSourceFilterVariable -> XML
Core.ToXML
    )

pattern DataSourceFilterVariable_CreatedAt :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_CreatedAt :: DataSourceFilterVariable
$mDataSourceFilterVariable_CreatedAt :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_CreatedAt = DataSourceFilterVariable' "CreatedAt"

pattern DataSourceFilterVariable_DataLocationS3 :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_DataLocationS3 :: DataSourceFilterVariable
$mDataSourceFilterVariable_DataLocationS3 :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_DataLocationS3 = DataSourceFilterVariable' "DataLocationS3"

pattern DataSourceFilterVariable_IAMUser :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_IAMUser :: DataSourceFilterVariable
$mDataSourceFilterVariable_IAMUser :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_IAMUser = DataSourceFilterVariable' "IAMUser"

pattern DataSourceFilterVariable_LastUpdatedAt :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_LastUpdatedAt :: DataSourceFilterVariable
$mDataSourceFilterVariable_LastUpdatedAt :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_LastUpdatedAt = DataSourceFilterVariable' "LastUpdatedAt"

pattern DataSourceFilterVariable_Name :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_Name :: DataSourceFilterVariable
$mDataSourceFilterVariable_Name :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_Name = DataSourceFilterVariable' "Name"

pattern DataSourceFilterVariable_Status :: DataSourceFilterVariable
pattern $bDataSourceFilterVariable_Status :: DataSourceFilterVariable
$mDataSourceFilterVariable_Status :: forall r.
DataSourceFilterVariable -> (Void# -> r) -> (Void# -> r) -> r
DataSourceFilterVariable_Status = DataSourceFilterVariable' "Status"

{-# COMPLETE
  DataSourceFilterVariable_CreatedAt,
  DataSourceFilterVariable_DataLocationS3,
  DataSourceFilterVariable_IAMUser,
  DataSourceFilterVariable_LastUpdatedAt,
  DataSourceFilterVariable_Name,
  DataSourceFilterVariable_Status,
  DataSourceFilterVariable'
  #-}