{-# 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.Model 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.ContainerDefinition
import Amazonka.SageMaker.Types.InferenceExecutionConfig
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.VpcConfig
data Model = Model'
{
Model -> Maybe [ContainerDefinition]
containers :: Prelude.Maybe [ContainerDefinition],
Model -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
Model -> Maybe Bool
enableNetworkIsolation :: Prelude.Maybe Prelude.Bool,
Model -> Maybe Text
executionRoleArn :: Prelude.Maybe Prelude.Text,
Model -> Maybe InferenceExecutionConfig
inferenceExecutionConfig :: Prelude.Maybe InferenceExecutionConfig,
Model -> Maybe Text
modelArn :: Prelude.Maybe Prelude.Text,
Model -> Maybe Text
modelName :: Prelude.Maybe Prelude.Text,
Model -> Maybe ContainerDefinition
primaryContainer :: Prelude.Maybe ContainerDefinition,
Model -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
Model -> Maybe VpcConfig
vpcConfig :: Prelude.Maybe VpcConfig
}
deriving (Model -> Model -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Model -> Model -> Bool
$c/= :: Model -> Model -> Bool
== :: Model -> Model -> Bool
$c== :: Model -> Model -> Bool
Prelude.Eq, ReadPrec [Model]
ReadPrec Model
Int -> ReadS Model
ReadS [Model]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Model]
$creadListPrec :: ReadPrec [Model]
readPrec :: ReadPrec Model
$creadPrec :: ReadPrec Model
readList :: ReadS [Model]
$creadList :: ReadS [Model]
readsPrec :: Int -> ReadS Model
$creadsPrec :: Int -> ReadS Model
Prelude.Read, Int -> Model -> ShowS
[Model] -> ShowS
Model -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Model] -> ShowS
$cshowList :: [Model] -> ShowS
show :: Model -> String
$cshow :: Model -> String
showsPrec :: Int -> Model -> ShowS
$cshowsPrec :: Int -> Model -> ShowS
Prelude.Show, forall x. Rep Model x -> Model
forall x. Model -> Rep Model x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Model x -> Model
$cfrom :: forall x. Model -> Rep Model x
Prelude.Generic)
newModel ::
Model
newModel :: Model
newModel =
Model'
{ $sel:containers:Model' :: Maybe [ContainerDefinition]
containers = forall a. Maybe a
Prelude.Nothing,
$sel:creationTime:Model' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
$sel:enableNetworkIsolation:Model' :: Maybe Bool
enableNetworkIsolation = forall a. Maybe a
Prelude.Nothing,
$sel:executionRoleArn:Model' :: Maybe Text
executionRoleArn = forall a. Maybe a
Prelude.Nothing,
$sel:inferenceExecutionConfig:Model' :: Maybe InferenceExecutionConfig
inferenceExecutionConfig = forall a. Maybe a
Prelude.Nothing,
$sel:modelArn:Model' :: Maybe Text
modelArn = forall a. Maybe a
Prelude.Nothing,
$sel:modelName:Model' :: Maybe Text
modelName = forall a. Maybe a
Prelude.Nothing,
$sel:primaryContainer:Model' :: Maybe ContainerDefinition
primaryContainer = forall a. Maybe a
Prelude.Nothing,
$sel:tags:Model' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:vpcConfig:Model' :: Maybe VpcConfig
vpcConfig = forall a. Maybe a
Prelude.Nothing
}
model_containers :: Lens.Lens' Model (Prelude.Maybe [ContainerDefinition])
model_containers :: Lens' Model (Maybe [ContainerDefinition])
model_containers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe [ContainerDefinition]
containers :: Maybe [ContainerDefinition]
$sel:containers:Model' :: Model -> Maybe [ContainerDefinition]
containers} -> Maybe [ContainerDefinition]
containers) (\s :: Model
s@Model' {} Maybe [ContainerDefinition]
a -> Model
s {$sel:containers:Model' :: Maybe [ContainerDefinition]
containers = Maybe [ContainerDefinition]
a} :: Model) 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
model_creationTime :: Lens.Lens' Model (Prelude.Maybe Prelude.UTCTime)
model_creationTime :: Lens' Model (Maybe UTCTime)
model_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:Model' :: Model -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: Model
s@Model' {} Maybe POSIX
a -> Model
s {$sel:creationTime:Model' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: Model) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time
model_enableNetworkIsolation :: Lens.Lens' Model (Prelude.Maybe Prelude.Bool)
model_enableNetworkIsolation :: Lens' Model (Maybe Bool)
model_enableNetworkIsolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe Bool
enableNetworkIsolation :: Maybe Bool
$sel:enableNetworkIsolation:Model' :: Model -> Maybe Bool
enableNetworkIsolation} -> Maybe Bool
enableNetworkIsolation) (\s :: Model
s@Model' {} Maybe Bool
a -> Model
s {$sel:enableNetworkIsolation:Model' :: Maybe Bool
enableNetworkIsolation = Maybe Bool
a} :: Model)
model_executionRoleArn :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)
model_executionRoleArn :: Lens' Model (Maybe Text)
model_executionRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe Text
executionRoleArn :: Maybe Text
$sel:executionRoleArn:Model' :: Model -> Maybe Text
executionRoleArn} -> Maybe Text
executionRoleArn) (\s :: Model
s@Model' {} Maybe Text
a -> Model
s {$sel:executionRoleArn:Model' :: Maybe Text
executionRoleArn = Maybe Text
a} :: Model)
model_inferenceExecutionConfig :: Lens.Lens' Model (Prelude.Maybe InferenceExecutionConfig)
model_inferenceExecutionConfig :: Lens' Model (Maybe InferenceExecutionConfig)
model_inferenceExecutionConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe InferenceExecutionConfig
inferenceExecutionConfig :: Maybe InferenceExecutionConfig
$sel:inferenceExecutionConfig:Model' :: Model -> Maybe InferenceExecutionConfig
inferenceExecutionConfig} -> Maybe InferenceExecutionConfig
inferenceExecutionConfig) (\s :: Model
s@Model' {} Maybe InferenceExecutionConfig
a -> Model
s {$sel:inferenceExecutionConfig:Model' :: Maybe InferenceExecutionConfig
inferenceExecutionConfig = Maybe InferenceExecutionConfig
a} :: Model)
model_modelArn :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)
model_modelArn :: Lens' Model (Maybe Text)
model_modelArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe Text
modelArn :: Maybe Text
$sel:modelArn:Model' :: Model -> Maybe Text
modelArn} -> Maybe Text
modelArn) (\s :: Model
s@Model' {} Maybe Text
a -> Model
s {$sel:modelArn:Model' :: Maybe Text
modelArn = Maybe Text
a} :: Model)
model_modelName :: Lens.Lens' Model (Prelude.Maybe Prelude.Text)
model_modelName :: Lens' Model (Maybe Text)
model_modelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe Text
modelName :: Maybe Text
$sel:modelName:Model' :: Model -> Maybe Text
modelName} -> Maybe Text
modelName) (\s :: Model
s@Model' {} Maybe Text
a -> Model
s {$sel:modelName:Model' :: Maybe Text
modelName = Maybe Text
a} :: Model)
model_primaryContainer :: Lens.Lens' Model (Prelude.Maybe ContainerDefinition)
model_primaryContainer :: Lens' Model (Maybe ContainerDefinition)
model_primaryContainer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe ContainerDefinition
primaryContainer :: Maybe ContainerDefinition
$sel:primaryContainer:Model' :: Model -> Maybe ContainerDefinition
primaryContainer} -> Maybe ContainerDefinition
primaryContainer) (\s :: Model
s@Model' {} Maybe ContainerDefinition
a -> Model
s {$sel:primaryContainer:Model' :: Maybe ContainerDefinition
primaryContainer = Maybe ContainerDefinition
a} :: Model)
model_tags :: Lens.Lens' Model (Prelude.Maybe [Tag])
model_tags :: Lens' Model (Maybe [Tag])
model_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:Model' :: Model -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: Model
s@Model' {} Maybe [Tag]
a -> Model
s {$sel:tags:Model' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: Model) 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
model_vpcConfig :: Lens.Lens' Model (Prelude.Maybe VpcConfig)
model_vpcConfig :: Lens' Model (Maybe VpcConfig)
model_vpcConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Model' {Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
$sel:vpcConfig:Model' :: Model -> Maybe VpcConfig
vpcConfig} -> Maybe VpcConfig
vpcConfig) (\s :: Model
s@Model' {} Maybe VpcConfig
a -> Model
s {$sel:vpcConfig:Model' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
a} :: Model)
instance Data.FromJSON Model where
parseJSON :: Value -> Parser Model
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Model"
( \Object
x ->
Maybe [ContainerDefinition]
-> Maybe POSIX
-> Maybe Bool
-> Maybe Text
-> Maybe InferenceExecutionConfig
-> Maybe Text
-> Maybe Text
-> Maybe ContainerDefinition
-> Maybe [Tag]
-> Maybe VpcConfig
-> Model
Model'
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
"Containers" 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
"CreationTime")
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
"EnableNetworkIsolation")
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
"ExecutionRoleArn")
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
"InferenceExecutionConfig")
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
"ModelArn")
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
"ModelName")
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
"PrimaryContainer")
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
"Tags" 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
"VpcConfig")
)
instance Prelude.Hashable Model where
hashWithSalt :: Int -> Model -> Int
hashWithSalt Int
_salt Model' {Maybe Bool
Maybe [ContainerDefinition]
Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe InferenceExecutionConfig
Maybe ContainerDefinition
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
tags :: Maybe [Tag]
primaryContainer :: Maybe ContainerDefinition
modelName :: Maybe Text
modelArn :: Maybe Text
inferenceExecutionConfig :: Maybe InferenceExecutionConfig
executionRoleArn :: Maybe Text
enableNetworkIsolation :: Maybe Bool
creationTime :: Maybe POSIX
containers :: Maybe [ContainerDefinition]
$sel:vpcConfig:Model' :: Model -> Maybe VpcConfig
$sel:tags:Model' :: Model -> Maybe [Tag]
$sel:primaryContainer:Model' :: Model -> Maybe ContainerDefinition
$sel:modelName:Model' :: Model -> Maybe Text
$sel:modelArn:Model' :: Model -> Maybe Text
$sel:inferenceExecutionConfig:Model' :: Model -> Maybe InferenceExecutionConfig
$sel:executionRoleArn:Model' :: Model -> Maybe Text
$sel:enableNetworkIsolation:Model' :: Model -> Maybe Bool
$sel:creationTime:Model' :: Model -> Maybe POSIX
$sel:containers:Model' :: Model -> Maybe [ContainerDefinition]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ContainerDefinition]
containers
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enableNetworkIsolation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
executionRoleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceExecutionConfig
inferenceExecutionConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modelName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContainerDefinition
primaryContainer
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VpcConfig
vpcConfig
instance Prelude.NFData Model where
rnf :: Model -> ()
rnf Model' {Maybe Bool
Maybe [ContainerDefinition]
Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe InferenceExecutionConfig
Maybe ContainerDefinition
Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
tags :: Maybe [Tag]
primaryContainer :: Maybe ContainerDefinition
modelName :: Maybe Text
modelArn :: Maybe Text
inferenceExecutionConfig :: Maybe InferenceExecutionConfig
executionRoleArn :: Maybe Text
enableNetworkIsolation :: Maybe Bool
creationTime :: Maybe POSIX
containers :: Maybe [ContainerDefinition]
$sel:vpcConfig:Model' :: Model -> Maybe VpcConfig
$sel:tags:Model' :: Model -> Maybe [Tag]
$sel:primaryContainer:Model' :: Model -> Maybe ContainerDefinition
$sel:modelName:Model' :: Model -> Maybe Text
$sel:modelArn:Model' :: Model -> Maybe Text
$sel:inferenceExecutionConfig:Model' :: Model -> Maybe InferenceExecutionConfig
$sel:executionRoleArn:Model' :: Model -> Maybe Text
$sel:enableNetworkIsolation:Model' :: Model -> Maybe Bool
$sel:creationTime:Model' :: Model -> Maybe POSIX
$sel:containers:Model' :: Model -> Maybe [ContainerDefinition]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [ContainerDefinition]
containers
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enableNetworkIsolation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
executionRoleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceExecutionConfig
inferenceExecutionConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modelName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContainerDefinition
primaryContainer
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VpcConfig
vpcConfig