{-# 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.GameLift.CreateScript
(
CreateScript (..),
newCreateScript,
createScript_name,
createScript_storageLocation,
createScript_tags,
createScript_version,
createScript_zipFile,
CreateScriptResponse (..),
newCreateScriptResponse,
createScriptResponse_script,
createScriptResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GameLift.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateScript = CreateScript'
{
CreateScript -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
CreateScript -> Maybe S3Location
storageLocation :: Prelude.Maybe S3Location,
CreateScript -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateScript -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
CreateScript -> Maybe Base64
zipFile :: Prelude.Maybe Data.Base64
}
deriving (CreateScript -> CreateScript -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateScript -> CreateScript -> Bool
$c/= :: CreateScript -> CreateScript -> Bool
== :: CreateScript -> CreateScript -> Bool
$c== :: CreateScript -> CreateScript -> Bool
Prelude.Eq, ReadPrec [CreateScript]
ReadPrec CreateScript
Int -> ReadS CreateScript
ReadS [CreateScript]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateScript]
$creadListPrec :: ReadPrec [CreateScript]
readPrec :: ReadPrec CreateScript
$creadPrec :: ReadPrec CreateScript
readList :: ReadS [CreateScript]
$creadList :: ReadS [CreateScript]
readsPrec :: Int -> ReadS CreateScript
$creadsPrec :: Int -> ReadS CreateScript
Prelude.Read, Int -> CreateScript -> ShowS
[CreateScript] -> ShowS
CreateScript -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateScript] -> ShowS
$cshowList :: [CreateScript] -> ShowS
show :: CreateScript -> String
$cshow :: CreateScript -> String
showsPrec :: Int -> CreateScript -> ShowS
$cshowsPrec :: Int -> CreateScript -> ShowS
Prelude.Show, forall x. Rep CreateScript x -> CreateScript
forall x. CreateScript -> Rep CreateScript x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateScript x -> CreateScript
$cfrom :: forall x. CreateScript -> Rep CreateScript x
Prelude.Generic)
newCreateScript ::
CreateScript
newCreateScript :: CreateScript
newCreateScript =
CreateScript'
{ $sel:name:CreateScript' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:storageLocation:CreateScript' :: Maybe S3Location
storageLocation = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateScript' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:version:CreateScript' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
$sel:zipFile:CreateScript' :: Maybe Base64
zipFile = forall a. Maybe a
Prelude.Nothing
}
createScript_name :: Lens.Lens' CreateScript (Prelude.Maybe Prelude.Text)
createScript_name :: Lens' CreateScript (Maybe Text)
createScript_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScript' {Maybe Text
name :: Maybe Text
$sel:name:CreateScript' :: CreateScript -> Maybe Text
name} -> Maybe Text
name) (\s :: CreateScript
s@CreateScript' {} Maybe Text
a -> CreateScript
s {$sel:name:CreateScript' :: Maybe Text
name = Maybe Text
a} :: CreateScript)
createScript_storageLocation :: Lens.Lens' CreateScript (Prelude.Maybe S3Location)
createScript_storageLocation :: Lens' CreateScript (Maybe S3Location)
createScript_storageLocation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScript' {Maybe S3Location
storageLocation :: Maybe S3Location
$sel:storageLocation:CreateScript' :: CreateScript -> Maybe S3Location
storageLocation} -> Maybe S3Location
storageLocation) (\s :: CreateScript
s@CreateScript' {} Maybe S3Location
a -> CreateScript
s {$sel:storageLocation:CreateScript' :: Maybe S3Location
storageLocation = Maybe S3Location
a} :: CreateScript)
createScript_tags :: Lens.Lens' CreateScript (Prelude.Maybe [Tag])
createScript_tags :: Lens' CreateScript (Maybe [Tag])
createScript_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScript' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateScript' :: CreateScript -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateScript
s@CreateScript' {} Maybe [Tag]
a -> CreateScript
s {$sel:tags:CreateScript' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateScript) 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
createScript_version :: Lens.Lens' CreateScript (Prelude.Maybe Prelude.Text)
createScript_version :: Lens' CreateScript (Maybe Text)
createScript_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScript' {Maybe Text
version :: Maybe Text
$sel:version:CreateScript' :: CreateScript -> Maybe Text
version} -> Maybe Text
version) (\s :: CreateScript
s@CreateScript' {} Maybe Text
a -> CreateScript
s {$sel:version:CreateScript' :: Maybe Text
version = Maybe Text
a} :: CreateScript)
createScript_zipFile :: Lens.Lens' CreateScript (Prelude.Maybe Prelude.ByteString)
createScript_zipFile :: Lens' CreateScript (Maybe ByteString)
createScript_zipFile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScript' {Maybe Base64
zipFile :: Maybe Base64
$sel:zipFile:CreateScript' :: CreateScript -> Maybe Base64
zipFile} -> Maybe Base64
zipFile) (\s :: CreateScript
s@CreateScript' {} Maybe Base64
a -> CreateScript
s {$sel:zipFile:CreateScript' :: Maybe Base64
zipFile = Maybe Base64
a} :: CreateScript) 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 Iso' Base64 ByteString
Data._Base64
instance Core.AWSRequest CreateScript where
type AWSResponse CreateScript = CreateScriptResponse
request :: (Service -> Service) -> CreateScript -> Request CreateScript
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 CreateScript
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateScript)))
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 Script -> Int -> CreateScriptResponse
CreateScriptResponse'
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
"Script")
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 CreateScript where
hashWithSalt :: Int -> CreateScript -> Int
hashWithSalt Int
_salt CreateScript' {Maybe [Tag]
Maybe Text
Maybe Base64
Maybe S3Location
zipFile :: Maybe Base64
version :: Maybe Text
tags :: Maybe [Tag]
storageLocation :: Maybe S3Location
name :: Maybe Text
$sel:zipFile:CreateScript' :: CreateScript -> Maybe Base64
$sel:version:CreateScript' :: CreateScript -> Maybe Text
$sel:tags:CreateScript' :: CreateScript -> Maybe [Tag]
$sel:storageLocation:CreateScript' :: CreateScript -> Maybe S3Location
$sel:name:CreateScript' :: CreateScript -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Location
storageLocation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Base64
zipFile
instance Prelude.NFData CreateScript where
rnf :: CreateScript -> ()
rnf CreateScript' {Maybe [Tag]
Maybe Text
Maybe Base64
Maybe S3Location
zipFile :: Maybe Base64
version :: Maybe Text
tags :: Maybe [Tag]
storageLocation :: Maybe S3Location
name :: Maybe Text
$sel:zipFile:CreateScript' :: CreateScript -> Maybe Base64
$sel:version:CreateScript' :: CreateScript -> Maybe Text
$sel:tags:CreateScript' :: CreateScript -> Maybe [Tag]
$sel:storageLocation:CreateScript' :: CreateScript -> Maybe S3Location
$sel:name:CreateScript' :: CreateScript -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Location
storageLocation
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 Text
version
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Base64
zipFile
instance Data.ToHeaders CreateScript where
toHeaders :: CreateScript -> 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
"GameLift.CreateScript" :: 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 CreateScript where
toJSON :: CreateScript -> Value
toJSON CreateScript' {Maybe [Tag]
Maybe Text
Maybe Base64
Maybe S3Location
zipFile :: Maybe Base64
version :: Maybe Text
tags :: Maybe [Tag]
storageLocation :: Maybe S3Location
name :: Maybe Text
$sel:zipFile:CreateScript' :: CreateScript -> Maybe Base64
$sel:version:CreateScript' :: CreateScript -> Maybe Text
$sel:tags:CreateScript' :: CreateScript -> Maybe [Tag]
$sel:storageLocation:CreateScript' :: CreateScript -> Maybe S3Location
$sel:name:CreateScript' :: CreateScript -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Name" 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
name,
(Key
"StorageLocation" 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 S3Location
storageLocation,
(Key
"Tags" 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 [Tag]
tags,
(Key
"Version" 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
version,
(Key
"ZipFile" 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 Base64
zipFile
]
)
instance Data.ToPath CreateScript where
toPath :: CreateScript -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateScript where
toQuery :: CreateScript -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateScriptResponse = CreateScriptResponse'
{
CreateScriptResponse -> Maybe Script
script :: Prelude.Maybe Script,
CreateScriptResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateScriptResponse -> CreateScriptResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateScriptResponse -> CreateScriptResponse -> Bool
$c/= :: CreateScriptResponse -> CreateScriptResponse -> Bool
== :: CreateScriptResponse -> CreateScriptResponse -> Bool
$c== :: CreateScriptResponse -> CreateScriptResponse -> Bool
Prelude.Eq, ReadPrec [CreateScriptResponse]
ReadPrec CreateScriptResponse
Int -> ReadS CreateScriptResponse
ReadS [CreateScriptResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateScriptResponse]
$creadListPrec :: ReadPrec [CreateScriptResponse]
readPrec :: ReadPrec CreateScriptResponse
$creadPrec :: ReadPrec CreateScriptResponse
readList :: ReadS [CreateScriptResponse]
$creadList :: ReadS [CreateScriptResponse]
readsPrec :: Int -> ReadS CreateScriptResponse
$creadsPrec :: Int -> ReadS CreateScriptResponse
Prelude.Read, Int -> CreateScriptResponse -> ShowS
[CreateScriptResponse] -> ShowS
CreateScriptResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateScriptResponse] -> ShowS
$cshowList :: [CreateScriptResponse] -> ShowS
show :: CreateScriptResponse -> String
$cshow :: CreateScriptResponse -> String
showsPrec :: Int -> CreateScriptResponse -> ShowS
$cshowsPrec :: Int -> CreateScriptResponse -> ShowS
Prelude.Show, forall x. Rep CreateScriptResponse x -> CreateScriptResponse
forall x. CreateScriptResponse -> Rep CreateScriptResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateScriptResponse x -> CreateScriptResponse
$cfrom :: forall x. CreateScriptResponse -> Rep CreateScriptResponse x
Prelude.Generic)
newCreateScriptResponse ::
Prelude.Int ->
CreateScriptResponse
newCreateScriptResponse :: Int -> CreateScriptResponse
newCreateScriptResponse Int
pHttpStatus_ =
CreateScriptResponse'
{ $sel:script:CreateScriptResponse' :: Maybe Script
script = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateScriptResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createScriptResponse_script :: Lens.Lens' CreateScriptResponse (Prelude.Maybe Script)
createScriptResponse_script :: Lens' CreateScriptResponse (Maybe Script)
createScriptResponse_script = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScriptResponse' {Maybe Script
script :: Maybe Script
$sel:script:CreateScriptResponse' :: CreateScriptResponse -> Maybe Script
script} -> Maybe Script
script) (\s :: CreateScriptResponse
s@CreateScriptResponse' {} Maybe Script
a -> CreateScriptResponse
s {$sel:script:CreateScriptResponse' :: Maybe Script
script = Maybe Script
a} :: CreateScriptResponse)
createScriptResponse_httpStatus :: Lens.Lens' CreateScriptResponse Prelude.Int
createScriptResponse_httpStatus :: Lens' CreateScriptResponse Int
createScriptResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateScriptResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateScriptResponse' :: CreateScriptResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateScriptResponse
s@CreateScriptResponse' {} Int
a -> CreateScriptResponse
s {$sel:httpStatus:CreateScriptResponse' :: Int
httpStatus = Int
a} :: CreateScriptResponse)
instance Prelude.NFData CreateScriptResponse where
rnf :: CreateScriptResponse -> ()
rnf CreateScriptResponse' {Int
Maybe Script
httpStatus :: Int
script :: Maybe Script
$sel:httpStatus:CreateScriptResponse' :: CreateScriptResponse -> Int
$sel:script:CreateScriptResponse' :: CreateScriptResponse -> Maybe Script
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Script
script
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus