{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.DAX.Types.Parameter where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DAX.Types.ChangeType
import Amazonka.DAX.Types.IsModifiable
import Amazonka.DAX.Types.NodeTypeSpecificValue
import Amazonka.DAX.Types.ParameterType
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data Parameter = Parameter'
{
Parameter -> Maybe Text
allowedValues :: Prelude.Maybe Prelude.Text,
Parameter -> Maybe ChangeType
changeType :: Prelude.Maybe ChangeType,
Parameter -> Maybe Text
dataType :: Prelude.Maybe Prelude.Text,
Parameter -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
Parameter -> Maybe IsModifiable
isModifiable :: Prelude.Maybe IsModifiable,
Parameter -> Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues :: Prelude.Maybe [NodeTypeSpecificValue],
Parameter -> Maybe Text
parameterName :: Prelude.Maybe Prelude.Text,
Parameter -> Maybe ParameterType
parameterType :: Prelude.Maybe ParameterType,
Parameter -> Maybe Text
parameterValue :: Prelude.Maybe Prelude.Text,
Parameter -> Maybe Text
source :: Prelude.Maybe Prelude.Text
}
deriving (Parameter -> Parameter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Parameter -> Parameter -> Bool
$c/= :: Parameter -> Parameter -> Bool
== :: Parameter -> Parameter -> Bool
$c== :: Parameter -> Parameter -> Bool
Prelude.Eq, ReadPrec [Parameter]
ReadPrec Parameter
Int -> ReadS Parameter
ReadS [Parameter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Parameter]
$creadListPrec :: ReadPrec [Parameter]
readPrec :: ReadPrec Parameter
$creadPrec :: ReadPrec Parameter
readList :: ReadS [Parameter]
$creadList :: ReadS [Parameter]
readsPrec :: Int -> ReadS Parameter
$creadsPrec :: Int -> ReadS Parameter
Prelude.Read, Int -> Parameter -> ShowS
[Parameter] -> ShowS
Parameter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Parameter] -> ShowS
$cshowList :: [Parameter] -> ShowS
show :: Parameter -> String
$cshow :: Parameter -> String
showsPrec :: Int -> Parameter -> ShowS
$cshowsPrec :: Int -> Parameter -> ShowS
Prelude.Show, forall x. Rep Parameter x -> Parameter
forall x. Parameter -> Rep Parameter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Parameter x -> Parameter
$cfrom :: forall x. Parameter -> Rep Parameter x
Prelude.Generic)
newParameter ::
Parameter
newParameter :: Parameter
newParameter =
Parameter'
{ $sel:allowedValues:Parameter' :: Maybe Text
allowedValues = forall a. Maybe a
Prelude.Nothing,
$sel:changeType:Parameter' :: Maybe ChangeType
changeType = forall a. Maybe a
Prelude.Nothing,
$sel:dataType:Parameter' :: Maybe Text
dataType = forall a. Maybe a
Prelude.Nothing,
$sel:description:Parameter' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:isModifiable:Parameter' :: Maybe IsModifiable
isModifiable = forall a. Maybe a
Prelude.Nothing,
$sel:nodeTypeSpecificValues:Parameter' :: Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues = forall a. Maybe a
Prelude.Nothing,
$sel:parameterName:Parameter' :: Maybe Text
parameterName = forall a. Maybe a
Prelude.Nothing,
$sel:parameterType:Parameter' :: Maybe ParameterType
parameterType = forall a. Maybe a
Prelude.Nothing,
$sel:parameterValue:Parameter' :: Maybe Text
parameterValue = forall a. Maybe a
Prelude.Nothing,
$sel:source:Parameter' :: Maybe Text
source = forall a. Maybe a
Prelude.Nothing
}
parameter_allowedValues :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_allowedValues :: Lens' Parameter (Maybe Text)
parameter_allowedValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
allowedValues :: Maybe Text
$sel:allowedValues:Parameter' :: Parameter -> Maybe Text
allowedValues} -> Maybe Text
allowedValues) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:allowedValues:Parameter' :: Maybe Text
allowedValues = Maybe Text
a} :: Parameter)
parameter_changeType :: Lens.Lens' Parameter (Prelude.Maybe ChangeType)
parameter_changeType :: Lens' Parameter (Maybe ChangeType)
parameter_changeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe ChangeType
changeType :: Maybe ChangeType
$sel:changeType:Parameter' :: Parameter -> Maybe ChangeType
changeType} -> Maybe ChangeType
changeType) (\s :: Parameter
s@Parameter' {} Maybe ChangeType
a -> Parameter
s {$sel:changeType:Parameter' :: Maybe ChangeType
changeType = Maybe ChangeType
a} :: Parameter)
parameter_dataType :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_dataType :: Lens' Parameter (Maybe Text)
parameter_dataType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
dataType :: Maybe Text
$sel:dataType:Parameter' :: Parameter -> Maybe Text
dataType} -> Maybe Text
dataType) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:dataType:Parameter' :: Maybe Text
dataType = Maybe Text
a} :: Parameter)
parameter_description :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_description :: Lens' Parameter (Maybe Text)
parameter_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
description :: Maybe Text
$sel:description:Parameter' :: Parameter -> Maybe Text
description} -> Maybe Text
description) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:description:Parameter' :: Maybe Text
description = Maybe Text
a} :: Parameter)
parameter_isModifiable :: Lens.Lens' Parameter (Prelude.Maybe IsModifiable)
parameter_isModifiable :: Lens' Parameter (Maybe IsModifiable)
parameter_isModifiable = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe IsModifiable
isModifiable :: Maybe IsModifiable
$sel:isModifiable:Parameter' :: Parameter -> Maybe IsModifiable
isModifiable} -> Maybe IsModifiable
isModifiable) (\s :: Parameter
s@Parameter' {} Maybe IsModifiable
a -> Parameter
s {$sel:isModifiable:Parameter' :: Maybe IsModifiable
isModifiable = Maybe IsModifiable
a} :: Parameter)
parameter_nodeTypeSpecificValues :: Lens.Lens' Parameter (Prelude.Maybe [NodeTypeSpecificValue])
parameter_nodeTypeSpecificValues :: Lens' Parameter (Maybe [NodeTypeSpecificValue])
parameter_nodeTypeSpecificValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues :: Maybe [NodeTypeSpecificValue]
$sel:nodeTypeSpecificValues:Parameter' :: Parameter -> Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues} -> Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues) (\s :: Parameter
s@Parameter' {} Maybe [NodeTypeSpecificValue]
a -> Parameter
s {$sel:nodeTypeSpecificValues:Parameter' :: Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues = Maybe [NodeTypeSpecificValue]
a} :: Parameter) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
parameter_parameterName :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_parameterName :: Lens' Parameter (Maybe Text)
parameter_parameterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
parameterName :: Maybe Text
$sel:parameterName:Parameter' :: Parameter -> Maybe Text
parameterName} -> Maybe Text
parameterName) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:parameterName:Parameter' :: Maybe Text
parameterName = Maybe Text
a} :: Parameter)
parameter_parameterType :: Lens.Lens' Parameter (Prelude.Maybe ParameterType)
parameter_parameterType :: Lens' Parameter (Maybe ParameterType)
parameter_parameterType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe ParameterType
parameterType :: Maybe ParameterType
$sel:parameterType:Parameter' :: Parameter -> Maybe ParameterType
parameterType} -> Maybe ParameterType
parameterType) (\s :: Parameter
s@Parameter' {} Maybe ParameterType
a -> Parameter
s {$sel:parameterType:Parameter' :: Maybe ParameterType
parameterType = Maybe ParameterType
a} :: Parameter)
parameter_parameterValue :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_parameterValue :: Lens' Parameter (Maybe Text)
parameter_parameterValue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
parameterValue :: Maybe Text
$sel:parameterValue:Parameter' :: Parameter -> Maybe Text
parameterValue} -> Maybe Text
parameterValue) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:parameterValue:Parameter' :: Maybe Text
parameterValue = Maybe Text
a} :: Parameter)
parameter_source :: Lens.Lens' Parameter (Prelude.Maybe Prelude.Text)
parameter_source :: Lens' Parameter (Maybe Text)
parameter_source = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Parameter' {Maybe Text
source :: Maybe Text
$sel:source:Parameter' :: Parameter -> Maybe Text
source} -> Maybe Text
source) (\s :: Parameter
s@Parameter' {} Maybe Text
a -> Parameter
s {$sel:source:Parameter' :: Maybe Text
source = Maybe Text
a} :: Parameter)
instance Data.FromJSON Parameter where
parseJSON :: Value -> Parser Parameter
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Parameter"
( \Object
x ->
Maybe Text
-> Maybe ChangeType
-> Maybe Text
-> Maybe Text
-> Maybe IsModifiable
-> Maybe [NodeTypeSpecificValue]
-> Maybe Text
-> Maybe ParameterType
-> Maybe Text
-> Maybe Text
-> Parameter
Parameter'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AllowedValues")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ChangeType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Description")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"IsModifiable")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"NodeTypeSpecificValues"
forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ParameterName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ParameterType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ParameterValue")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Source")
)
instance Prelude.Hashable Parameter where
hashWithSalt :: Int -> Parameter -> Int
hashWithSalt Int
_salt Parameter' {Maybe [NodeTypeSpecificValue]
Maybe Text
Maybe ChangeType
Maybe IsModifiable
Maybe ParameterType
source :: Maybe Text
parameterValue :: Maybe Text
parameterType :: Maybe ParameterType
parameterName :: Maybe Text
nodeTypeSpecificValues :: Maybe [NodeTypeSpecificValue]
isModifiable :: Maybe IsModifiable
description :: Maybe Text
dataType :: Maybe Text
changeType :: Maybe ChangeType
allowedValues :: Maybe Text
$sel:source:Parameter' :: Parameter -> Maybe Text
$sel:parameterValue:Parameter' :: Parameter -> Maybe Text
$sel:parameterType:Parameter' :: Parameter -> Maybe ParameterType
$sel:parameterName:Parameter' :: Parameter -> Maybe Text
$sel:nodeTypeSpecificValues:Parameter' :: Parameter -> Maybe [NodeTypeSpecificValue]
$sel:isModifiable:Parameter' :: Parameter -> Maybe IsModifiable
$sel:description:Parameter' :: Parameter -> Maybe Text
$sel:dataType:Parameter' :: Parameter -> Maybe Text
$sel:changeType:Parameter' :: Parameter -> Maybe ChangeType
$sel:allowedValues:Parameter' :: Parameter -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
allowedValues
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChangeType
changeType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dataType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe IsModifiable
isModifiable
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
parameterName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ParameterType
parameterType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
parameterValue
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
source
instance Prelude.NFData Parameter where
rnf :: Parameter -> ()
rnf Parameter' {Maybe [NodeTypeSpecificValue]
Maybe Text
Maybe ChangeType
Maybe IsModifiable
Maybe ParameterType
source :: Maybe Text
parameterValue :: Maybe Text
parameterType :: Maybe ParameterType
parameterName :: Maybe Text
nodeTypeSpecificValues :: Maybe [NodeTypeSpecificValue]
isModifiable :: Maybe IsModifiable
description :: Maybe Text
dataType :: Maybe Text
changeType :: Maybe ChangeType
allowedValues :: Maybe Text
$sel:source:Parameter' :: Parameter -> Maybe Text
$sel:parameterValue:Parameter' :: Parameter -> Maybe Text
$sel:parameterType:Parameter' :: Parameter -> Maybe ParameterType
$sel:parameterName:Parameter' :: Parameter -> Maybe Text
$sel:nodeTypeSpecificValues:Parameter' :: Parameter -> Maybe [NodeTypeSpecificValue]
$sel:isModifiable:Parameter' :: Parameter -> Maybe IsModifiable
$sel:description:Parameter' :: Parameter -> Maybe Text
$sel:dataType:Parameter' :: Parameter -> Maybe Text
$sel:changeType:Parameter' :: Parameter -> Maybe ChangeType
$sel:allowedValues:Parameter' :: Parameter -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
allowedValues
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChangeType
changeType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IsModifiable
isModifiable
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [NodeTypeSpecificValue]
nodeTypeSpecificValues
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
parameterName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ParameterType
parameterType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
parameterValue
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
source