{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.DeviceFarm.CreateTestGridProject
(
CreateTestGridProject (..),
newCreateTestGridProject,
createTestGridProject_description,
createTestGridProject_vpcConfig,
createTestGridProject_name,
CreateTestGridProjectResponse (..),
newCreateTestGridProjectResponse,
createTestGridProjectResponse_testGridProject,
createTestGridProjectResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DeviceFarm.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateTestGridProject = CreateTestGridProject'
{
CreateTestGridProject -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateTestGridProject -> Maybe TestGridVpcConfig
vpcConfig :: Prelude.Maybe TestGridVpcConfig,
CreateTestGridProject -> Text
name :: Prelude.Text
}
deriving (CreateTestGridProject -> CreateTestGridProject -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateTestGridProject -> CreateTestGridProject -> Bool
$c/= :: CreateTestGridProject -> CreateTestGridProject -> Bool
== :: CreateTestGridProject -> CreateTestGridProject -> Bool
$c== :: CreateTestGridProject -> CreateTestGridProject -> Bool
Prelude.Eq, ReadPrec [CreateTestGridProject]
ReadPrec CreateTestGridProject
Int -> ReadS CreateTestGridProject
ReadS [CreateTestGridProject]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateTestGridProject]
$creadListPrec :: ReadPrec [CreateTestGridProject]
readPrec :: ReadPrec CreateTestGridProject
$creadPrec :: ReadPrec CreateTestGridProject
readList :: ReadS [CreateTestGridProject]
$creadList :: ReadS [CreateTestGridProject]
readsPrec :: Int -> ReadS CreateTestGridProject
$creadsPrec :: Int -> ReadS CreateTestGridProject
Prelude.Read, Int -> CreateTestGridProject -> ShowS
[CreateTestGridProject] -> ShowS
CreateTestGridProject -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateTestGridProject] -> ShowS
$cshowList :: [CreateTestGridProject] -> ShowS
show :: CreateTestGridProject -> String
$cshow :: CreateTestGridProject -> String
showsPrec :: Int -> CreateTestGridProject -> ShowS
$cshowsPrec :: Int -> CreateTestGridProject -> ShowS
Prelude.Show, forall x. Rep CreateTestGridProject x -> CreateTestGridProject
forall x. CreateTestGridProject -> Rep CreateTestGridProject x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateTestGridProject x -> CreateTestGridProject
$cfrom :: forall x. CreateTestGridProject -> Rep CreateTestGridProject x
Prelude.Generic)
newCreateTestGridProject ::
Prelude.Text ->
CreateTestGridProject
newCreateTestGridProject :: Text -> CreateTestGridProject
newCreateTestGridProject Text
pName_ =
CreateTestGridProject'
{ $sel:description:CreateTestGridProject' :: Maybe Text
description =
forall a. Maybe a
Prelude.Nothing,
$sel:vpcConfig:CreateTestGridProject' :: Maybe TestGridVpcConfig
vpcConfig = forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateTestGridProject' :: Text
name = Text
pName_
}
createTestGridProject_description :: Lens.Lens' CreateTestGridProject (Prelude.Maybe Prelude.Text)
createTestGridProject_description :: Lens' CreateTestGridProject (Maybe Text)
createTestGridProject_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTestGridProject' {Maybe Text
description :: Maybe Text
$sel:description:CreateTestGridProject' :: CreateTestGridProject -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateTestGridProject
s@CreateTestGridProject' {} Maybe Text
a -> CreateTestGridProject
s {$sel:description:CreateTestGridProject' :: Maybe Text
description = Maybe Text
a} :: CreateTestGridProject)
createTestGridProject_vpcConfig :: Lens.Lens' CreateTestGridProject (Prelude.Maybe TestGridVpcConfig)
createTestGridProject_vpcConfig :: Lens' CreateTestGridProject (Maybe TestGridVpcConfig)
createTestGridProject_vpcConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTestGridProject' {Maybe TestGridVpcConfig
vpcConfig :: Maybe TestGridVpcConfig
$sel:vpcConfig:CreateTestGridProject' :: CreateTestGridProject -> Maybe TestGridVpcConfig
vpcConfig} -> Maybe TestGridVpcConfig
vpcConfig) (\s :: CreateTestGridProject
s@CreateTestGridProject' {} Maybe TestGridVpcConfig
a -> CreateTestGridProject
s {$sel:vpcConfig:CreateTestGridProject' :: Maybe TestGridVpcConfig
vpcConfig = Maybe TestGridVpcConfig
a} :: CreateTestGridProject)
createTestGridProject_name :: Lens.Lens' CreateTestGridProject Prelude.Text
createTestGridProject_name :: Lens' CreateTestGridProject Text
createTestGridProject_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTestGridProject' {Text
name :: Text
$sel:name:CreateTestGridProject' :: CreateTestGridProject -> Text
name} -> Text
name) (\s :: CreateTestGridProject
s@CreateTestGridProject' {} Text
a -> CreateTestGridProject
s {$sel:name:CreateTestGridProject' :: Text
name = Text
a} :: CreateTestGridProject)
instance Core.AWSRequest CreateTestGridProject where
type
AWSResponse CreateTestGridProject =
CreateTestGridProjectResponse
request :: (Service -> Service)
-> CreateTestGridProject -> Request CreateTestGridProject
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateTestGridProject
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateTestGridProject)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe TestGridProject -> Int -> CreateTestGridProjectResponse
CreateTestGridProjectResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"testGridProject")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateTestGridProject where
hashWithSalt :: Int -> CreateTestGridProject -> Int
hashWithSalt Int
_salt CreateTestGridProject' {Maybe Text
Maybe TestGridVpcConfig
Text
name :: Text
vpcConfig :: Maybe TestGridVpcConfig
description :: Maybe Text
$sel:name:CreateTestGridProject' :: CreateTestGridProject -> Text
$sel:vpcConfig:CreateTestGridProject' :: CreateTestGridProject -> Maybe TestGridVpcConfig
$sel:description:CreateTestGridProject' :: CreateTestGridProject -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TestGridVpcConfig
vpcConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData CreateTestGridProject where
rnf :: CreateTestGridProject -> ()
rnf CreateTestGridProject' {Maybe Text
Maybe TestGridVpcConfig
Text
name :: Text
vpcConfig :: Maybe TestGridVpcConfig
description :: Maybe Text
$sel:name:CreateTestGridProject' :: CreateTestGridProject -> Text
$sel:vpcConfig:CreateTestGridProject' :: CreateTestGridProject -> Maybe TestGridVpcConfig
$sel:description:CreateTestGridProject' :: CreateTestGridProject -> Maybe Text
..} =
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 TestGridVpcConfig
vpcConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
instance Data.ToHeaders CreateTestGridProject where
toHeaders :: CreateTestGridProject -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"DeviceFarm_20150623.CreateTestGridProject" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateTestGridProject where
toJSON :: CreateTestGridProject -> Value
toJSON CreateTestGridProject' {Maybe Text
Maybe TestGridVpcConfig
Text
name :: Text
vpcConfig :: Maybe TestGridVpcConfig
description :: Maybe Text
$sel:name:CreateTestGridProject' :: CreateTestGridProject -> Text
$sel:vpcConfig:CreateTestGridProject' :: CreateTestGridProject -> Maybe TestGridVpcConfig
$sel:description:CreateTestGridProject' :: CreateTestGridProject -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"description" 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
description,
(Key
"vpcConfig" 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 TestGridVpcConfig
vpcConfig,
forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name)
]
)
instance Data.ToPath CreateTestGridProject where
toPath :: CreateTestGridProject -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateTestGridProject where
toQuery :: CreateTestGridProject -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateTestGridProjectResponse = CreateTestGridProjectResponse'
{
CreateTestGridProjectResponse -> Maybe TestGridProject
testGridProject :: Prelude.Maybe TestGridProject,
CreateTestGridProjectResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateTestGridProjectResponse
-> CreateTestGridProjectResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateTestGridProjectResponse
-> CreateTestGridProjectResponse -> Bool
$c/= :: CreateTestGridProjectResponse
-> CreateTestGridProjectResponse -> Bool
== :: CreateTestGridProjectResponse
-> CreateTestGridProjectResponse -> Bool
$c== :: CreateTestGridProjectResponse
-> CreateTestGridProjectResponse -> Bool
Prelude.Eq, ReadPrec [CreateTestGridProjectResponse]
ReadPrec CreateTestGridProjectResponse
Int -> ReadS CreateTestGridProjectResponse
ReadS [CreateTestGridProjectResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateTestGridProjectResponse]
$creadListPrec :: ReadPrec [CreateTestGridProjectResponse]
readPrec :: ReadPrec CreateTestGridProjectResponse
$creadPrec :: ReadPrec CreateTestGridProjectResponse
readList :: ReadS [CreateTestGridProjectResponse]
$creadList :: ReadS [CreateTestGridProjectResponse]
readsPrec :: Int -> ReadS CreateTestGridProjectResponse
$creadsPrec :: Int -> ReadS CreateTestGridProjectResponse
Prelude.Read, Int -> CreateTestGridProjectResponse -> ShowS
[CreateTestGridProjectResponse] -> ShowS
CreateTestGridProjectResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateTestGridProjectResponse] -> ShowS
$cshowList :: [CreateTestGridProjectResponse] -> ShowS
show :: CreateTestGridProjectResponse -> String
$cshow :: CreateTestGridProjectResponse -> String
showsPrec :: Int -> CreateTestGridProjectResponse -> ShowS
$cshowsPrec :: Int -> CreateTestGridProjectResponse -> ShowS
Prelude.Show, forall x.
Rep CreateTestGridProjectResponse x
-> CreateTestGridProjectResponse
forall x.
CreateTestGridProjectResponse
-> Rep CreateTestGridProjectResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateTestGridProjectResponse x
-> CreateTestGridProjectResponse
$cfrom :: forall x.
CreateTestGridProjectResponse
-> Rep CreateTestGridProjectResponse x
Prelude.Generic)
newCreateTestGridProjectResponse ::
Prelude.Int ->
CreateTestGridProjectResponse
newCreateTestGridProjectResponse :: Int -> CreateTestGridProjectResponse
newCreateTestGridProjectResponse Int
pHttpStatus_ =
CreateTestGridProjectResponse'
{ $sel:testGridProject:CreateTestGridProjectResponse' :: Maybe TestGridProject
testGridProject =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateTestGridProjectResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createTestGridProjectResponse_testGridProject :: Lens.Lens' CreateTestGridProjectResponse (Prelude.Maybe TestGridProject)
createTestGridProjectResponse_testGridProject :: Lens' CreateTestGridProjectResponse (Maybe TestGridProject)
createTestGridProjectResponse_testGridProject = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTestGridProjectResponse' {Maybe TestGridProject
testGridProject :: Maybe TestGridProject
$sel:testGridProject:CreateTestGridProjectResponse' :: CreateTestGridProjectResponse -> Maybe TestGridProject
testGridProject} -> Maybe TestGridProject
testGridProject) (\s :: CreateTestGridProjectResponse
s@CreateTestGridProjectResponse' {} Maybe TestGridProject
a -> CreateTestGridProjectResponse
s {$sel:testGridProject:CreateTestGridProjectResponse' :: Maybe TestGridProject
testGridProject = Maybe TestGridProject
a} :: CreateTestGridProjectResponse)
createTestGridProjectResponse_httpStatus :: Lens.Lens' CreateTestGridProjectResponse Prelude.Int
createTestGridProjectResponse_httpStatus :: Lens' CreateTestGridProjectResponse Int
createTestGridProjectResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateTestGridProjectResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateTestGridProjectResponse' :: CreateTestGridProjectResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateTestGridProjectResponse
s@CreateTestGridProjectResponse' {} Int
a -> CreateTestGridProjectResponse
s {$sel:httpStatus:CreateTestGridProjectResponse' :: Int
httpStatus = Int
a} :: CreateTestGridProjectResponse)
instance Prelude.NFData CreateTestGridProjectResponse where
rnf :: CreateTestGridProjectResponse -> ()
rnf CreateTestGridProjectResponse' {Int
Maybe TestGridProject
httpStatus :: Int
testGridProject :: Maybe TestGridProject
$sel:httpStatus:CreateTestGridProjectResponse' :: CreateTestGridProjectResponse -> Int
$sel:testGridProject:CreateTestGridProjectResponse' :: CreateTestGridProjectResponse -> Maybe TestGridProject
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe TestGridProject
testGridProject
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus