{-# 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.SageMaker.Types.ParameterRanges where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.CategoricalParameterRange
import Amazonka.SageMaker.Types.ContinuousParameterRange
import Amazonka.SageMaker.Types.IntegerParameterRange
data ParameterRanges = ParameterRanges'
  { 
    
    ParameterRanges -> Maybe [CategoricalParameterRange]
categoricalParameterRanges :: Prelude.Maybe [CategoricalParameterRange],
    
    
    ParameterRanges -> Maybe [ContinuousParameterRange]
continuousParameterRanges :: Prelude.Maybe [ContinuousParameterRange],
    
    
    ParameterRanges -> Maybe [IntegerParameterRange]
integerParameterRanges :: Prelude.Maybe [IntegerParameterRange]
  }
  deriving (ParameterRanges -> ParameterRanges -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ParameterRanges -> ParameterRanges -> Bool
$c/= :: ParameterRanges -> ParameterRanges -> Bool
== :: ParameterRanges -> ParameterRanges -> Bool
$c== :: ParameterRanges -> ParameterRanges -> Bool
Prelude.Eq, ReadPrec [ParameterRanges]
ReadPrec ParameterRanges
Int -> ReadS ParameterRanges
ReadS [ParameterRanges]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ParameterRanges]
$creadListPrec :: ReadPrec [ParameterRanges]
readPrec :: ReadPrec ParameterRanges
$creadPrec :: ReadPrec ParameterRanges
readList :: ReadS [ParameterRanges]
$creadList :: ReadS [ParameterRanges]
readsPrec :: Int -> ReadS ParameterRanges
$creadsPrec :: Int -> ReadS ParameterRanges
Prelude.Read, Int -> ParameterRanges -> ShowS
[ParameterRanges] -> ShowS
ParameterRanges -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ParameterRanges] -> ShowS
$cshowList :: [ParameterRanges] -> ShowS
show :: ParameterRanges -> String
$cshow :: ParameterRanges -> String
showsPrec :: Int -> ParameterRanges -> ShowS
$cshowsPrec :: Int -> ParameterRanges -> ShowS
Prelude.Show, forall x. Rep ParameterRanges x -> ParameterRanges
forall x. ParameterRanges -> Rep ParameterRanges x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ParameterRanges x -> ParameterRanges
$cfrom :: forall x. ParameterRanges -> Rep ParameterRanges x
Prelude.Generic)
newParameterRanges ::
  ParameterRanges
newParameterRanges :: ParameterRanges
newParameterRanges =
  ParameterRanges'
    { $sel:categoricalParameterRanges:ParameterRanges' :: Maybe [CategoricalParameterRange]
categoricalParameterRanges =
        forall a. Maybe a
Prelude.Nothing,
      $sel:continuousParameterRanges:ParameterRanges' :: Maybe [ContinuousParameterRange]
continuousParameterRanges = forall a. Maybe a
Prelude.Nothing,
      $sel:integerParameterRanges:ParameterRanges' :: Maybe [IntegerParameterRange]
integerParameterRanges = forall a. Maybe a
Prelude.Nothing
    }
parameterRanges_categoricalParameterRanges :: Lens.Lens' ParameterRanges (Prelude.Maybe [CategoricalParameterRange])
parameterRanges_categoricalParameterRanges :: Lens' ParameterRanges (Maybe [CategoricalParameterRange])
parameterRanges_categoricalParameterRanges = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterRanges' {Maybe [CategoricalParameterRange]
categoricalParameterRanges :: Maybe [CategoricalParameterRange]
$sel:categoricalParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [CategoricalParameterRange]
categoricalParameterRanges} -> Maybe [CategoricalParameterRange]
categoricalParameterRanges) (\s :: ParameterRanges
s@ParameterRanges' {} Maybe [CategoricalParameterRange]
a -> ParameterRanges
s {$sel:categoricalParameterRanges:ParameterRanges' :: Maybe [CategoricalParameterRange]
categoricalParameterRanges = Maybe [CategoricalParameterRange]
a} :: ParameterRanges) 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
parameterRanges_continuousParameterRanges :: Lens.Lens' ParameterRanges (Prelude.Maybe [ContinuousParameterRange])
parameterRanges_continuousParameterRanges :: Lens' ParameterRanges (Maybe [ContinuousParameterRange])
parameterRanges_continuousParameterRanges = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterRanges' {Maybe [ContinuousParameterRange]
continuousParameterRanges :: Maybe [ContinuousParameterRange]
$sel:continuousParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [ContinuousParameterRange]
continuousParameterRanges} -> Maybe [ContinuousParameterRange]
continuousParameterRanges) (\s :: ParameterRanges
s@ParameterRanges' {} Maybe [ContinuousParameterRange]
a -> ParameterRanges
s {$sel:continuousParameterRanges:ParameterRanges' :: Maybe [ContinuousParameterRange]
continuousParameterRanges = Maybe [ContinuousParameterRange]
a} :: ParameterRanges) 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
parameterRanges_integerParameterRanges :: Lens.Lens' ParameterRanges (Prelude.Maybe [IntegerParameterRange])
parameterRanges_integerParameterRanges :: Lens' ParameterRanges (Maybe [IntegerParameterRange])
parameterRanges_integerParameterRanges = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ParameterRanges' {Maybe [IntegerParameterRange]
integerParameterRanges :: Maybe [IntegerParameterRange]
$sel:integerParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [IntegerParameterRange]
integerParameterRanges} -> Maybe [IntegerParameterRange]
integerParameterRanges) (\s :: ParameterRanges
s@ParameterRanges' {} Maybe [IntegerParameterRange]
a -> ParameterRanges
s {$sel:integerParameterRanges:ParameterRanges' :: Maybe [IntegerParameterRange]
integerParameterRanges = Maybe [IntegerParameterRange]
a} :: ParameterRanges) 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
instance Data.FromJSON ParameterRanges where
  parseJSON :: Value -> Parser ParameterRanges
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ParameterRanges"
      ( \Object
x ->
          Maybe [CategoricalParameterRange]
-> Maybe [ContinuousParameterRange]
-> Maybe [IntegerParameterRange]
-> ParameterRanges
ParameterRanges'
            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
"CategoricalParameterRanges"
                            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
"ContinuousParameterRanges"
                            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
"IntegerParameterRanges"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
      )
instance Prelude.Hashable ParameterRanges where
  hashWithSalt :: Int -> ParameterRanges -> Int
hashWithSalt Int
_salt ParameterRanges' {Maybe [CategoricalParameterRange]
Maybe [ContinuousParameterRange]
Maybe [IntegerParameterRange]
integerParameterRanges :: Maybe [IntegerParameterRange]
continuousParameterRanges :: Maybe [ContinuousParameterRange]
categoricalParameterRanges :: Maybe [CategoricalParameterRange]
$sel:integerParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [IntegerParameterRange]
$sel:continuousParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [ContinuousParameterRange]
$sel:categoricalParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [CategoricalParameterRange]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [CategoricalParameterRange]
categoricalParameterRanges
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ContinuousParameterRange]
continuousParameterRanges
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [IntegerParameterRange]
integerParameterRanges
instance Prelude.NFData ParameterRanges where
  rnf :: ParameterRanges -> ()
rnf ParameterRanges' {Maybe [CategoricalParameterRange]
Maybe [ContinuousParameterRange]
Maybe [IntegerParameterRange]
integerParameterRanges :: Maybe [IntegerParameterRange]
continuousParameterRanges :: Maybe [ContinuousParameterRange]
categoricalParameterRanges :: Maybe [CategoricalParameterRange]
$sel:integerParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [IntegerParameterRange]
$sel:continuousParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [ContinuousParameterRange]
$sel:categoricalParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [CategoricalParameterRange]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [CategoricalParameterRange]
categoricalParameterRanges
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ContinuousParameterRange]
continuousParameterRanges
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [IntegerParameterRange]
integerParameterRanges
instance Data.ToJSON ParameterRanges where
  toJSON :: ParameterRanges -> Value
toJSON ParameterRanges' {Maybe [CategoricalParameterRange]
Maybe [ContinuousParameterRange]
Maybe [IntegerParameterRange]
integerParameterRanges :: Maybe [IntegerParameterRange]
continuousParameterRanges :: Maybe [ContinuousParameterRange]
categoricalParameterRanges :: Maybe [CategoricalParameterRange]
$sel:integerParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [IntegerParameterRange]
$sel:continuousParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [ContinuousParameterRange]
$sel:categoricalParameterRanges:ParameterRanges' :: ParameterRanges -> Maybe [CategoricalParameterRange]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CategoricalParameterRanges" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [CategoricalParameterRange]
categoricalParameterRanges,
            (Key
"ContinuousParameterRanges" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ContinuousParameterRange]
continuousParameterRanges,
            (Key
"IntegerParameterRanges" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [IntegerParameterRange]
integerParameterRanges
          ]
      )