{-# 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.Nimble.UpdateStudio
(
UpdateStudio (..),
newUpdateStudio,
updateStudio_adminRoleArn,
updateStudio_clientToken,
updateStudio_displayName,
updateStudio_userRoleArn,
updateStudio_studioId,
UpdateStudioResponse (..),
newUpdateStudioResponse,
updateStudioResponse_httpStatus,
updateStudioResponse_studio,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Nimble.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateStudio = UpdateStudio'
{
UpdateStudio -> Maybe Text
adminRoleArn :: Prelude.Maybe Prelude.Text,
UpdateStudio -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
UpdateStudio -> Maybe (Sensitive Text)
displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),
UpdateStudio -> Maybe Text
userRoleArn :: Prelude.Maybe Prelude.Text,
UpdateStudio -> Text
studioId :: Prelude.Text
}
deriving (UpdateStudio -> UpdateStudio -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateStudio -> UpdateStudio -> Bool
$c/= :: UpdateStudio -> UpdateStudio -> Bool
== :: UpdateStudio -> UpdateStudio -> Bool
$c== :: UpdateStudio -> UpdateStudio -> Bool
Prelude.Eq, Int -> UpdateStudio -> ShowS
[UpdateStudio] -> ShowS
UpdateStudio -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateStudio] -> ShowS
$cshowList :: [UpdateStudio] -> ShowS
show :: UpdateStudio -> String
$cshow :: UpdateStudio -> String
showsPrec :: Int -> UpdateStudio -> ShowS
$cshowsPrec :: Int -> UpdateStudio -> ShowS
Prelude.Show, forall x. Rep UpdateStudio x -> UpdateStudio
forall x. UpdateStudio -> Rep UpdateStudio x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateStudio x -> UpdateStudio
$cfrom :: forall x. UpdateStudio -> Rep UpdateStudio x
Prelude.Generic)
newUpdateStudio ::
Prelude.Text ->
UpdateStudio
newUpdateStudio :: Text -> UpdateStudio
newUpdateStudio Text
pStudioId_ =
UpdateStudio'
{ $sel:adminRoleArn:UpdateStudio' :: Maybe Text
adminRoleArn = forall a. Maybe a
Prelude.Nothing,
$sel:clientToken:UpdateStudio' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:displayName:UpdateStudio' :: Maybe (Sensitive Text)
displayName = forall a. Maybe a
Prelude.Nothing,
$sel:userRoleArn:UpdateStudio' :: Maybe Text
userRoleArn = forall a. Maybe a
Prelude.Nothing,
$sel:studioId:UpdateStudio' :: Text
studioId = Text
pStudioId_
}
updateStudio_adminRoleArn :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)
updateStudio_adminRoleArn :: Lens' UpdateStudio (Maybe Text)
updateStudio_adminRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudio' {Maybe Text
adminRoleArn :: Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
adminRoleArn} -> Maybe Text
adminRoleArn) (\s :: UpdateStudio
s@UpdateStudio' {} Maybe Text
a -> UpdateStudio
s {$sel:adminRoleArn:UpdateStudio' :: Maybe Text
adminRoleArn = Maybe Text
a} :: UpdateStudio)
updateStudio_clientToken :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)
updateStudio_clientToken :: Lens' UpdateStudio (Maybe Text)
updateStudio_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudio' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: UpdateStudio
s@UpdateStudio' {} Maybe Text
a -> UpdateStudio
s {$sel:clientToken:UpdateStudio' :: Maybe Text
clientToken = Maybe Text
a} :: UpdateStudio)
updateStudio_displayName :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)
updateStudio_displayName :: Lens' UpdateStudio (Maybe Text)
updateStudio_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudio' {Maybe (Sensitive Text)
displayName :: Maybe (Sensitive Text)
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
displayName} -> Maybe (Sensitive Text)
displayName) (\s :: UpdateStudio
s@UpdateStudio' {} Maybe (Sensitive Text)
a -> UpdateStudio
s {$sel:displayName:UpdateStudio' :: Maybe (Sensitive Text)
displayName = Maybe (Sensitive Text)
a} :: UpdateStudio) 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. Iso' (Sensitive a) a
Data._Sensitive
updateStudio_userRoleArn :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)
updateStudio_userRoleArn :: Lens' UpdateStudio (Maybe Text)
updateStudio_userRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudio' {Maybe Text
userRoleArn :: Maybe Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
userRoleArn} -> Maybe Text
userRoleArn) (\s :: UpdateStudio
s@UpdateStudio' {} Maybe Text
a -> UpdateStudio
s {$sel:userRoleArn:UpdateStudio' :: Maybe Text
userRoleArn = Maybe Text
a} :: UpdateStudio)
updateStudio_studioId :: Lens.Lens' UpdateStudio Prelude.Text
updateStudio_studioId :: Lens' UpdateStudio Text
updateStudio_studioId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudio' {Text
studioId :: Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
studioId} -> Text
studioId) (\s :: UpdateStudio
s@UpdateStudio' {} Text
a -> UpdateStudio
s {$sel:studioId:UpdateStudio' :: Text
studioId = Text
a} :: UpdateStudio)
instance Core.AWSRequest UpdateStudio where
type AWSResponse UpdateStudio = UpdateStudioResponse
request :: (Service -> Service) -> UpdateStudio -> Request UpdateStudio
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateStudio
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateStudio)))
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 ->
Int -> Studio -> UpdateStudioResponse
UpdateStudioResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"studio")
)
instance Prelude.Hashable UpdateStudio where
hashWithSalt :: Int -> UpdateStudio -> Int
hashWithSalt Int
_salt UpdateStudio' {Maybe Text
Maybe (Sensitive Text)
Text
studioId :: Text
userRoleArn :: Maybe Text
displayName :: Maybe (Sensitive Text)
clientToken :: Maybe Text
adminRoleArn :: Maybe Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
adminRoleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
displayName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
userRoleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
studioId
instance Prelude.NFData UpdateStudio where
rnf :: UpdateStudio -> ()
rnf UpdateStudio' {Maybe Text
Maybe (Sensitive Text)
Text
studioId :: Text
userRoleArn :: Maybe Text
displayName :: Maybe (Sensitive Text)
clientToken :: Maybe Text
adminRoleArn :: Maybe Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
adminRoleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
displayName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
userRoleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
studioId
instance Data.ToHeaders UpdateStudio where
toHeaders :: UpdateStudio -> ResponseHeaders
toHeaders UpdateStudio' {Maybe Text
Maybe (Sensitive Text)
Text
studioId :: Text
userRoleArn :: Maybe Text
displayName :: Maybe (Sensitive Text)
clientToken :: Maybe Text
adminRoleArn :: Maybe Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Client-Token" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
clientToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToJSON UpdateStudio where
toJSON :: UpdateStudio -> Value
toJSON UpdateStudio' {Maybe Text
Maybe (Sensitive Text)
Text
studioId :: Text
userRoleArn :: Maybe Text
displayName :: Maybe (Sensitive Text)
clientToken :: Maybe Text
adminRoleArn :: Maybe Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"adminRoleArn" 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
adminRoleArn,
(Key
"displayName" 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 (Sensitive Text)
displayName,
(Key
"userRoleArn" 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
userRoleArn
]
)
instance Data.ToPath UpdateStudio where
toPath :: UpdateStudio -> ByteString
toPath UpdateStudio' {Maybe Text
Maybe (Sensitive Text)
Text
studioId :: Text
userRoleArn :: Maybe Text
displayName :: Maybe (Sensitive Text)
clientToken :: Maybe Text
adminRoleArn :: Maybe Text
$sel:studioId:UpdateStudio' :: UpdateStudio -> Text
$sel:userRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:displayName:UpdateStudio' :: UpdateStudio -> Maybe (Sensitive Text)
$sel:clientToken:UpdateStudio' :: UpdateStudio -> Maybe Text
$sel:adminRoleArn:UpdateStudio' :: UpdateStudio -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/2020-08-01/studios/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
studioId]
instance Data.ToQuery UpdateStudio where
toQuery :: UpdateStudio -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateStudioResponse = UpdateStudioResponse'
{
UpdateStudioResponse -> Int
httpStatus :: Prelude.Int,
UpdateStudioResponse -> Studio
studio :: Studio
}
deriving (UpdateStudioResponse -> UpdateStudioResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateStudioResponse -> UpdateStudioResponse -> Bool
$c/= :: UpdateStudioResponse -> UpdateStudioResponse -> Bool
== :: UpdateStudioResponse -> UpdateStudioResponse -> Bool
$c== :: UpdateStudioResponse -> UpdateStudioResponse -> Bool
Prelude.Eq, Int -> UpdateStudioResponse -> ShowS
[UpdateStudioResponse] -> ShowS
UpdateStudioResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateStudioResponse] -> ShowS
$cshowList :: [UpdateStudioResponse] -> ShowS
show :: UpdateStudioResponse -> String
$cshow :: UpdateStudioResponse -> String
showsPrec :: Int -> UpdateStudioResponse -> ShowS
$cshowsPrec :: Int -> UpdateStudioResponse -> ShowS
Prelude.Show, forall x. Rep UpdateStudioResponse x -> UpdateStudioResponse
forall x. UpdateStudioResponse -> Rep UpdateStudioResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateStudioResponse x -> UpdateStudioResponse
$cfrom :: forall x. UpdateStudioResponse -> Rep UpdateStudioResponse x
Prelude.Generic)
newUpdateStudioResponse ::
Prelude.Int ->
Studio ->
UpdateStudioResponse
newUpdateStudioResponse :: Int -> Studio -> UpdateStudioResponse
newUpdateStudioResponse Int
pHttpStatus_ Studio
pStudio_ =
UpdateStudioResponse'
{ $sel:httpStatus:UpdateStudioResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:studio:UpdateStudioResponse' :: Studio
studio = Studio
pStudio_
}
updateStudioResponse_httpStatus :: Lens.Lens' UpdateStudioResponse Prelude.Int
updateStudioResponse_httpStatus :: Lens' UpdateStudioResponse Int
updateStudioResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudioResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateStudioResponse' :: UpdateStudioResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateStudioResponse
s@UpdateStudioResponse' {} Int
a -> UpdateStudioResponse
s {$sel:httpStatus:UpdateStudioResponse' :: Int
httpStatus = Int
a} :: UpdateStudioResponse)
updateStudioResponse_studio :: Lens.Lens' UpdateStudioResponse Studio
updateStudioResponse_studio :: Lens' UpdateStudioResponse Studio
updateStudioResponse_studio = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateStudioResponse' {Studio
studio :: Studio
$sel:studio:UpdateStudioResponse' :: UpdateStudioResponse -> Studio
studio} -> Studio
studio) (\s :: UpdateStudioResponse
s@UpdateStudioResponse' {} Studio
a -> UpdateStudioResponse
s {$sel:studio:UpdateStudioResponse' :: Studio
studio = Studio
a} :: UpdateStudioResponse)
instance Prelude.NFData UpdateStudioResponse where
rnf :: UpdateStudioResponse -> ()
rnf UpdateStudioResponse' {Int
Studio
studio :: Studio
httpStatus :: Int
$sel:studio:UpdateStudioResponse' :: UpdateStudioResponse -> Studio
$sel:httpStatus:UpdateStudioResponse' :: UpdateStudioResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Studio
studio