{-# 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.CodeBuild.Types.ProjectEnvironment where
import Amazonka.CodeBuild.Types.ComputeType
import Amazonka.CodeBuild.Types.EnvironmentType
import Amazonka.CodeBuild.Types.EnvironmentVariable
import Amazonka.CodeBuild.Types.ImagePullCredentialsType
import Amazonka.CodeBuild.Types.RegistryCredential
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
data ProjectEnvironment = ProjectEnvironment'
{
ProjectEnvironment -> Maybe Text
certificate :: Prelude.Maybe Prelude.Text,
ProjectEnvironment -> Maybe [EnvironmentVariable]
environmentVariables :: Prelude.Maybe [EnvironmentVariable],
ProjectEnvironment -> Maybe ImagePullCredentialsType
imagePullCredentialsType :: Prelude.Maybe ImagePullCredentialsType,
ProjectEnvironment -> Maybe Bool
privilegedMode :: Prelude.Maybe Prelude.Bool,
ProjectEnvironment -> Maybe RegistryCredential
registryCredential :: Prelude.Maybe RegistryCredential,
ProjectEnvironment -> EnvironmentType
type' :: EnvironmentType,
ProjectEnvironment -> Text
image :: Prelude.Text,
ProjectEnvironment -> ComputeType
computeType :: ComputeType
}
deriving (ProjectEnvironment -> ProjectEnvironment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectEnvironment -> ProjectEnvironment -> Bool
$c/= :: ProjectEnvironment -> ProjectEnvironment -> Bool
== :: ProjectEnvironment -> ProjectEnvironment -> Bool
$c== :: ProjectEnvironment -> ProjectEnvironment -> Bool
Prelude.Eq, ReadPrec [ProjectEnvironment]
ReadPrec ProjectEnvironment
Int -> ReadS ProjectEnvironment
ReadS [ProjectEnvironment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProjectEnvironment]
$creadListPrec :: ReadPrec [ProjectEnvironment]
readPrec :: ReadPrec ProjectEnvironment
$creadPrec :: ReadPrec ProjectEnvironment
readList :: ReadS [ProjectEnvironment]
$creadList :: ReadS [ProjectEnvironment]
readsPrec :: Int -> ReadS ProjectEnvironment
$creadsPrec :: Int -> ReadS ProjectEnvironment
Prelude.Read, Int -> ProjectEnvironment -> ShowS
[ProjectEnvironment] -> ShowS
ProjectEnvironment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectEnvironment] -> ShowS
$cshowList :: [ProjectEnvironment] -> ShowS
show :: ProjectEnvironment -> String
$cshow :: ProjectEnvironment -> String
showsPrec :: Int -> ProjectEnvironment -> ShowS
$cshowsPrec :: Int -> ProjectEnvironment -> ShowS
Prelude.Show, forall x. Rep ProjectEnvironment x -> ProjectEnvironment
forall x. ProjectEnvironment -> Rep ProjectEnvironment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectEnvironment x -> ProjectEnvironment
$cfrom :: forall x. ProjectEnvironment -> Rep ProjectEnvironment x
Prelude.Generic)
newProjectEnvironment ::
EnvironmentType ->
Prelude.Text ->
ComputeType ->
ProjectEnvironment
newProjectEnvironment :: EnvironmentType -> Text -> ComputeType -> ProjectEnvironment
newProjectEnvironment EnvironmentType
pType_ Text
pImage_ ComputeType
pComputeType_ =
ProjectEnvironment'
{ $sel:certificate:ProjectEnvironment' :: Maybe Text
certificate = forall a. Maybe a
Prelude.Nothing,
$sel:environmentVariables:ProjectEnvironment' :: Maybe [EnvironmentVariable]
environmentVariables = forall a. Maybe a
Prelude.Nothing,
$sel:imagePullCredentialsType:ProjectEnvironment' :: Maybe ImagePullCredentialsType
imagePullCredentialsType = forall a. Maybe a
Prelude.Nothing,
$sel:privilegedMode:ProjectEnvironment' :: Maybe Bool
privilegedMode = forall a. Maybe a
Prelude.Nothing,
$sel:registryCredential:ProjectEnvironment' :: Maybe RegistryCredential
registryCredential = forall a. Maybe a
Prelude.Nothing,
$sel:type':ProjectEnvironment' :: EnvironmentType
type' = EnvironmentType
pType_,
$sel:image:ProjectEnvironment' :: Text
image = Text
pImage_,
$sel:computeType:ProjectEnvironment' :: ComputeType
computeType = ComputeType
pComputeType_
}
projectEnvironment_certificate :: Lens.Lens' ProjectEnvironment (Prelude.Maybe Prelude.Text)
projectEnvironment_certificate :: Lens' ProjectEnvironment (Maybe Text)
projectEnvironment_certificate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Maybe Text
certificate :: Maybe Text
$sel:certificate:ProjectEnvironment' :: ProjectEnvironment -> Maybe Text
certificate} -> Maybe Text
certificate) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Maybe Text
a -> ProjectEnvironment
s {$sel:certificate:ProjectEnvironment' :: Maybe Text
certificate = Maybe Text
a} :: ProjectEnvironment)
projectEnvironment_environmentVariables :: Lens.Lens' ProjectEnvironment (Prelude.Maybe [EnvironmentVariable])
projectEnvironment_environmentVariables :: Lens' ProjectEnvironment (Maybe [EnvironmentVariable])
projectEnvironment_environmentVariables = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Maybe [EnvironmentVariable]
environmentVariables :: Maybe [EnvironmentVariable]
$sel:environmentVariables:ProjectEnvironment' :: ProjectEnvironment -> Maybe [EnvironmentVariable]
environmentVariables} -> Maybe [EnvironmentVariable]
environmentVariables) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Maybe [EnvironmentVariable]
a -> ProjectEnvironment
s {$sel:environmentVariables:ProjectEnvironment' :: Maybe [EnvironmentVariable]
environmentVariables = Maybe [EnvironmentVariable]
a} :: ProjectEnvironment) 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
projectEnvironment_imagePullCredentialsType :: Lens.Lens' ProjectEnvironment (Prelude.Maybe ImagePullCredentialsType)
projectEnvironment_imagePullCredentialsType :: Lens' ProjectEnvironment (Maybe ImagePullCredentialsType)
projectEnvironment_imagePullCredentialsType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Maybe ImagePullCredentialsType
imagePullCredentialsType :: Maybe ImagePullCredentialsType
$sel:imagePullCredentialsType:ProjectEnvironment' :: ProjectEnvironment -> Maybe ImagePullCredentialsType
imagePullCredentialsType} -> Maybe ImagePullCredentialsType
imagePullCredentialsType) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Maybe ImagePullCredentialsType
a -> ProjectEnvironment
s {$sel:imagePullCredentialsType:ProjectEnvironment' :: Maybe ImagePullCredentialsType
imagePullCredentialsType = Maybe ImagePullCredentialsType
a} :: ProjectEnvironment)
projectEnvironment_privilegedMode :: Lens.Lens' ProjectEnvironment (Prelude.Maybe Prelude.Bool)
projectEnvironment_privilegedMode :: Lens' ProjectEnvironment (Maybe Bool)
projectEnvironment_privilegedMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Maybe Bool
privilegedMode :: Maybe Bool
$sel:privilegedMode:ProjectEnvironment' :: ProjectEnvironment -> Maybe Bool
privilegedMode} -> Maybe Bool
privilegedMode) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Maybe Bool
a -> ProjectEnvironment
s {$sel:privilegedMode:ProjectEnvironment' :: Maybe Bool
privilegedMode = Maybe Bool
a} :: ProjectEnvironment)
projectEnvironment_registryCredential :: Lens.Lens' ProjectEnvironment (Prelude.Maybe RegistryCredential)
projectEnvironment_registryCredential :: Lens' ProjectEnvironment (Maybe RegistryCredential)
projectEnvironment_registryCredential = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Maybe RegistryCredential
registryCredential :: Maybe RegistryCredential
$sel:registryCredential:ProjectEnvironment' :: ProjectEnvironment -> Maybe RegistryCredential
registryCredential} -> Maybe RegistryCredential
registryCredential) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Maybe RegistryCredential
a -> ProjectEnvironment
s {$sel:registryCredential:ProjectEnvironment' :: Maybe RegistryCredential
registryCredential = Maybe RegistryCredential
a} :: ProjectEnvironment)
projectEnvironment_type :: Lens.Lens' ProjectEnvironment EnvironmentType
projectEnvironment_type :: Lens' ProjectEnvironment EnvironmentType
projectEnvironment_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {EnvironmentType
type' :: EnvironmentType
$sel:type':ProjectEnvironment' :: ProjectEnvironment -> EnvironmentType
type'} -> EnvironmentType
type') (\s :: ProjectEnvironment
s@ProjectEnvironment' {} EnvironmentType
a -> ProjectEnvironment
s {$sel:type':ProjectEnvironment' :: EnvironmentType
type' = EnvironmentType
a} :: ProjectEnvironment)
projectEnvironment_image :: Lens.Lens' ProjectEnvironment Prelude.Text
projectEnvironment_image :: Lens' ProjectEnvironment Text
projectEnvironment_image = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {Text
image :: Text
$sel:image:ProjectEnvironment' :: ProjectEnvironment -> Text
image} -> Text
image) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} Text
a -> ProjectEnvironment
s {$sel:image:ProjectEnvironment' :: Text
image = Text
a} :: ProjectEnvironment)
projectEnvironment_computeType :: Lens.Lens' ProjectEnvironment ComputeType
projectEnvironment_computeType :: Lens' ProjectEnvironment ComputeType
projectEnvironment_computeType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ProjectEnvironment' {ComputeType
computeType :: ComputeType
$sel:computeType:ProjectEnvironment' :: ProjectEnvironment -> ComputeType
computeType} -> ComputeType
computeType) (\s :: ProjectEnvironment
s@ProjectEnvironment' {} ComputeType
a -> ProjectEnvironment
s {$sel:computeType:ProjectEnvironment' :: ComputeType
computeType = ComputeType
a} :: ProjectEnvironment)
instance Data.FromJSON ProjectEnvironment where
parseJSON :: Value -> Parser ProjectEnvironment
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"ProjectEnvironment"
( \Object
x ->
Maybe Text
-> Maybe [EnvironmentVariable]
-> Maybe ImagePullCredentialsType
-> Maybe Bool
-> Maybe RegistryCredential
-> EnvironmentType
-> Text
-> ComputeType
-> ProjectEnvironment
ProjectEnvironment'
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
"certificate")
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
"environmentVariables"
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
"imagePullCredentialsType")
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
"privilegedMode")
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
"registryCredential")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"type")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"image")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"computeType")
)
instance Prelude.Hashable ProjectEnvironment where
hashWithSalt :: Int -> ProjectEnvironment -> Int
hashWithSalt Int
_salt ProjectEnvironment' {Maybe Bool
Maybe [EnvironmentVariable]
Maybe Text
Maybe ImagePullCredentialsType
Maybe RegistryCredential
Text
ComputeType
EnvironmentType
computeType :: ComputeType
image :: Text
type' :: EnvironmentType
registryCredential :: Maybe RegistryCredential
privilegedMode :: Maybe Bool
imagePullCredentialsType :: Maybe ImagePullCredentialsType
environmentVariables :: Maybe [EnvironmentVariable]
certificate :: Maybe Text
$sel:computeType:ProjectEnvironment' :: ProjectEnvironment -> ComputeType
$sel:image:ProjectEnvironment' :: ProjectEnvironment -> Text
$sel:type':ProjectEnvironment' :: ProjectEnvironment -> EnvironmentType
$sel:registryCredential:ProjectEnvironment' :: ProjectEnvironment -> Maybe RegistryCredential
$sel:privilegedMode:ProjectEnvironment' :: ProjectEnvironment -> Maybe Bool
$sel:imagePullCredentialsType:ProjectEnvironment' :: ProjectEnvironment -> Maybe ImagePullCredentialsType
$sel:environmentVariables:ProjectEnvironment' :: ProjectEnvironment -> Maybe [EnvironmentVariable]
$sel:certificate:ProjectEnvironment' :: ProjectEnvironment -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
certificate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [EnvironmentVariable]
environmentVariables
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ImagePullCredentialsType
imagePullCredentialsType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
privilegedMode
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RegistryCredential
registryCredential
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` EnvironmentType
type'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
image
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ComputeType
computeType
instance Prelude.NFData ProjectEnvironment where
rnf :: ProjectEnvironment -> ()
rnf ProjectEnvironment' {Maybe Bool
Maybe [EnvironmentVariable]
Maybe Text
Maybe ImagePullCredentialsType
Maybe RegistryCredential
Text
ComputeType
EnvironmentType
computeType :: ComputeType
image :: Text
type' :: EnvironmentType
registryCredential :: Maybe RegistryCredential
privilegedMode :: Maybe Bool
imagePullCredentialsType :: Maybe ImagePullCredentialsType
environmentVariables :: Maybe [EnvironmentVariable]
certificate :: Maybe Text
$sel:computeType:ProjectEnvironment' :: ProjectEnvironment -> ComputeType
$sel:image:ProjectEnvironment' :: ProjectEnvironment -> Text
$sel:type':ProjectEnvironment' :: ProjectEnvironment -> EnvironmentType
$sel:registryCredential:ProjectEnvironment' :: ProjectEnvironment -> Maybe RegistryCredential
$sel:privilegedMode:ProjectEnvironment' :: ProjectEnvironment -> Maybe Bool
$sel:imagePullCredentialsType:ProjectEnvironment' :: ProjectEnvironment -> Maybe ImagePullCredentialsType
$sel:environmentVariables:ProjectEnvironment' :: ProjectEnvironment -> Maybe [EnvironmentVariable]
$sel:certificate:ProjectEnvironment' :: ProjectEnvironment -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
certificate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [EnvironmentVariable]
environmentVariables
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImagePullCredentialsType
imagePullCredentialsType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
privilegedMode
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RegistryCredential
registryCredential
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EnvironmentType
type'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
image
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ComputeType
computeType
instance Data.ToJSON ProjectEnvironment where
toJSON :: ProjectEnvironment -> Value
toJSON ProjectEnvironment' {Maybe Bool
Maybe [EnvironmentVariable]
Maybe Text
Maybe ImagePullCredentialsType
Maybe RegistryCredential
Text
ComputeType
EnvironmentType
computeType :: ComputeType
image :: Text
type' :: EnvironmentType
registryCredential :: Maybe RegistryCredential
privilegedMode :: Maybe Bool
imagePullCredentialsType :: Maybe ImagePullCredentialsType
environmentVariables :: Maybe [EnvironmentVariable]
certificate :: Maybe Text
$sel:computeType:ProjectEnvironment' :: ProjectEnvironment -> ComputeType
$sel:image:ProjectEnvironment' :: ProjectEnvironment -> Text
$sel:type':ProjectEnvironment' :: ProjectEnvironment -> EnvironmentType
$sel:registryCredential:ProjectEnvironment' :: ProjectEnvironment -> Maybe RegistryCredential
$sel:privilegedMode:ProjectEnvironment' :: ProjectEnvironment -> Maybe Bool
$sel:imagePullCredentialsType:ProjectEnvironment' :: ProjectEnvironment -> Maybe ImagePullCredentialsType
$sel:environmentVariables:ProjectEnvironment' :: ProjectEnvironment -> Maybe [EnvironmentVariable]
$sel:certificate:ProjectEnvironment' :: ProjectEnvironment -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"certificate" 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 Text
certificate,
(Key
"environmentVariables" 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 [EnvironmentVariable]
environmentVariables,
(Key
"imagePullCredentialsType" 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 ImagePullCredentialsType
imagePullCredentialsType,
(Key
"privilegedMode" 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 Bool
privilegedMode,
(Key
"registryCredential" 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 RegistryCredential
registryCredential,
forall a. a -> Maybe a
Prelude.Just (Key
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= EnvironmentType
type'),
forall a. a -> Maybe a
Prelude.Just (Key
"image" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
image),
forall a. a -> Maybe a
Prelude.Just (Key
"computeType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ComputeType
computeType)
]
)