{-# 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.WorkSpaces.CreateWorkspaces
(
CreateWorkspaces (..),
newCreateWorkspaces,
createWorkspaces_workspaces,
CreateWorkspacesResponse (..),
newCreateWorkspacesResponse,
createWorkspacesResponse_failedRequests,
createWorkspacesResponse_pendingRequests,
createWorkspacesResponse_httpStatus,
)
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.WorkSpaces.Types
data CreateWorkspaces = CreateWorkspaces'
{
CreateWorkspaces -> NonEmpty WorkspaceRequest
workspaces :: Prelude.NonEmpty WorkspaceRequest
}
deriving (CreateWorkspaces -> CreateWorkspaces -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateWorkspaces -> CreateWorkspaces -> Bool
$c/= :: CreateWorkspaces -> CreateWorkspaces -> Bool
== :: CreateWorkspaces -> CreateWorkspaces -> Bool
$c== :: CreateWorkspaces -> CreateWorkspaces -> Bool
Prelude.Eq, ReadPrec [CreateWorkspaces]
ReadPrec CreateWorkspaces
Int -> ReadS CreateWorkspaces
ReadS [CreateWorkspaces]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateWorkspaces]
$creadListPrec :: ReadPrec [CreateWorkspaces]
readPrec :: ReadPrec CreateWorkspaces
$creadPrec :: ReadPrec CreateWorkspaces
readList :: ReadS [CreateWorkspaces]
$creadList :: ReadS [CreateWorkspaces]
readsPrec :: Int -> ReadS CreateWorkspaces
$creadsPrec :: Int -> ReadS CreateWorkspaces
Prelude.Read, Int -> CreateWorkspaces -> ShowS
[CreateWorkspaces] -> ShowS
CreateWorkspaces -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateWorkspaces] -> ShowS
$cshowList :: [CreateWorkspaces] -> ShowS
show :: CreateWorkspaces -> String
$cshow :: CreateWorkspaces -> String
showsPrec :: Int -> CreateWorkspaces -> ShowS
$cshowsPrec :: Int -> CreateWorkspaces -> ShowS
Prelude.Show, forall x. Rep CreateWorkspaces x -> CreateWorkspaces
forall x. CreateWorkspaces -> Rep CreateWorkspaces x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateWorkspaces x -> CreateWorkspaces
$cfrom :: forall x. CreateWorkspaces -> Rep CreateWorkspaces x
Prelude.Generic)
newCreateWorkspaces ::
Prelude.NonEmpty WorkspaceRequest ->
CreateWorkspaces
newCreateWorkspaces :: NonEmpty WorkspaceRequest -> CreateWorkspaces
newCreateWorkspaces NonEmpty WorkspaceRequest
pWorkspaces_ =
CreateWorkspaces'
{ $sel:workspaces:CreateWorkspaces' :: NonEmpty WorkspaceRequest
workspaces =
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty WorkspaceRequest
pWorkspaces_
}
createWorkspaces_workspaces :: Lens.Lens' CreateWorkspaces (Prelude.NonEmpty WorkspaceRequest)
createWorkspaces_workspaces :: Lens' CreateWorkspaces (NonEmpty WorkspaceRequest)
createWorkspaces_workspaces = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateWorkspaces' {NonEmpty WorkspaceRequest
workspaces :: NonEmpty WorkspaceRequest
$sel:workspaces:CreateWorkspaces' :: CreateWorkspaces -> NonEmpty WorkspaceRequest
workspaces} -> NonEmpty WorkspaceRequest
workspaces) (\s :: CreateWorkspaces
s@CreateWorkspaces' {} NonEmpty WorkspaceRequest
a -> CreateWorkspaces
s {$sel:workspaces:CreateWorkspaces' :: NonEmpty WorkspaceRequest
workspaces = NonEmpty WorkspaceRequest
a} :: CreateWorkspaces) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest CreateWorkspaces where
type
AWSResponse CreateWorkspaces =
CreateWorkspacesResponse
request :: (Service -> Service)
-> CreateWorkspaces -> Request CreateWorkspaces
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 CreateWorkspaces
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateWorkspaces)))
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 [FailedCreateWorkspaceRequest]
-> Maybe [Workspace] -> Int -> CreateWorkspacesResponse
CreateWorkspacesResponse'
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
"FailedRequests" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"PendingRequests"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
)
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 CreateWorkspaces where
hashWithSalt :: Int -> CreateWorkspaces -> Int
hashWithSalt Int
_salt CreateWorkspaces' {NonEmpty WorkspaceRequest
workspaces :: NonEmpty WorkspaceRequest
$sel:workspaces:CreateWorkspaces' :: CreateWorkspaces -> NonEmpty WorkspaceRequest
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty WorkspaceRequest
workspaces
instance Prelude.NFData CreateWorkspaces where
rnf :: CreateWorkspaces -> ()
rnf CreateWorkspaces' {NonEmpty WorkspaceRequest
workspaces :: NonEmpty WorkspaceRequest
$sel:workspaces:CreateWorkspaces' :: CreateWorkspaces -> NonEmpty WorkspaceRequest
..} = forall a. NFData a => a -> ()
Prelude.rnf NonEmpty WorkspaceRequest
workspaces
instance Data.ToHeaders CreateWorkspaces where
toHeaders :: CreateWorkspaces -> 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
"WorkspacesService.CreateWorkspaces" ::
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 CreateWorkspaces where
toJSON :: CreateWorkspaces -> Value
toJSON CreateWorkspaces' {NonEmpty WorkspaceRequest
workspaces :: NonEmpty WorkspaceRequest
$sel:workspaces:CreateWorkspaces' :: CreateWorkspaces -> NonEmpty WorkspaceRequest
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"Workspaces" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty WorkspaceRequest
workspaces)]
)
instance Data.ToPath CreateWorkspaces where
toPath :: CreateWorkspaces -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateWorkspaces where
toQuery :: CreateWorkspaces -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateWorkspacesResponse = CreateWorkspacesResponse'
{
CreateWorkspacesResponse -> Maybe [FailedCreateWorkspaceRequest]
failedRequests :: Prelude.Maybe [FailedCreateWorkspaceRequest],
CreateWorkspacesResponse -> Maybe [Workspace]
pendingRequests :: Prelude.Maybe [Workspace],
CreateWorkspacesResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateWorkspacesResponse -> CreateWorkspacesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateWorkspacesResponse -> CreateWorkspacesResponse -> Bool
$c/= :: CreateWorkspacesResponse -> CreateWorkspacesResponse -> Bool
== :: CreateWorkspacesResponse -> CreateWorkspacesResponse -> Bool
$c== :: CreateWorkspacesResponse -> CreateWorkspacesResponse -> Bool
Prelude.Eq, ReadPrec [CreateWorkspacesResponse]
ReadPrec CreateWorkspacesResponse
Int -> ReadS CreateWorkspacesResponse
ReadS [CreateWorkspacesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateWorkspacesResponse]
$creadListPrec :: ReadPrec [CreateWorkspacesResponse]
readPrec :: ReadPrec CreateWorkspacesResponse
$creadPrec :: ReadPrec CreateWorkspacesResponse
readList :: ReadS [CreateWorkspacesResponse]
$creadList :: ReadS [CreateWorkspacesResponse]
readsPrec :: Int -> ReadS CreateWorkspacesResponse
$creadsPrec :: Int -> ReadS CreateWorkspacesResponse
Prelude.Read, Int -> CreateWorkspacesResponse -> ShowS
[CreateWorkspacesResponse] -> ShowS
CreateWorkspacesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateWorkspacesResponse] -> ShowS
$cshowList :: [CreateWorkspacesResponse] -> ShowS
show :: CreateWorkspacesResponse -> String
$cshow :: CreateWorkspacesResponse -> String
showsPrec :: Int -> CreateWorkspacesResponse -> ShowS
$cshowsPrec :: Int -> CreateWorkspacesResponse -> ShowS
Prelude.Show, forall x.
Rep CreateWorkspacesResponse x -> CreateWorkspacesResponse
forall x.
CreateWorkspacesResponse -> Rep CreateWorkspacesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateWorkspacesResponse x -> CreateWorkspacesResponse
$cfrom :: forall x.
CreateWorkspacesResponse -> Rep CreateWorkspacesResponse x
Prelude.Generic)
newCreateWorkspacesResponse ::
Prelude.Int ->
CreateWorkspacesResponse
newCreateWorkspacesResponse :: Int -> CreateWorkspacesResponse
newCreateWorkspacesResponse Int
pHttpStatus_ =
CreateWorkspacesResponse'
{ $sel:failedRequests:CreateWorkspacesResponse' :: Maybe [FailedCreateWorkspaceRequest]
failedRequests =
forall a. Maybe a
Prelude.Nothing,
$sel:pendingRequests:CreateWorkspacesResponse' :: Maybe [Workspace]
pendingRequests = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateWorkspacesResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createWorkspacesResponse_failedRequests :: Lens.Lens' CreateWorkspacesResponse (Prelude.Maybe [FailedCreateWorkspaceRequest])
createWorkspacesResponse_failedRequests :: Lens'
CreateWorkspacesResponse (Maybe [FailedCreateWorkspaceRequest])
createWorkspacesResponse_failedRequests = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateWorkspacesResponse' {Maybe [FailedCreateWorkspaceRequest]
failedRequests :: Maybe [FailedCreateWorkspaceRequest]
$sel:failedRequests:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Maybe [FailedCreateWorkspaceRequest]
failedRequests} -> Maybe [FailedCreateWorkspaceRequest]
failedRequests) (\s :: CreateWorkspacesResponse
s@CreateWorkspacesResponse' {} Maybe [FailedCreateWorkspaceRequest]
a -> CreateWorkspacesResponse
s {$sel:failedRequests:CreateWorkspacesResponse' :: Maybe [FailedCreateWorkspaceRequest]
failedRequests = Maybe [FailedCreateWorkspaceRequest]
a} :: CreateWorkspacesResponse) 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
createWorkspacesResponse_pendingRequests :: Lens.Lens' CreateWorkspacesResponse (Prelude.Maybe [Workspace])
createWorkspacesResponse_pendingRequests :: Lens' CreateWorkspacesResponse (Maybe [Workspace])
createWorkspacesResponse_pendingRequests = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateWorkspacesResponse' {Maybe [Workspace]
pendingRequests :: Maybe [Workspace]
$sel:pendingRequests:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Maybe [Workspace]
pendingRequests} -> Maybe [Workspace]
pendingRequests) (\s :: CreateWorkspacesResponse
s@CreateWorkspacesResponse' {} Maybe [Workspace]
a -> CreateWorkspacesResponse
s {$sel:pendingRequests:CreateWorkspacesResponse' :: Maybe [Workspace]
pendingRequests = Maybe [Workspace]
a} :: CreateWorkspacesResponse) 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
createWorkspacesResponse_httpStatus :: Lens.Lens' CreateWorkspacesResponse Prelude.Int
createWorkspacesResponse_httpStatus :: Lens' CreateWorkspacesResponse Int
createWorkspacesResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateWorkspacesResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateWorkspacesResponse
s@CreateWorkspacesResponse' {} Int
a -> CreateWorkspacesResponse
s {$sel:httpStatus:CreateWorkspacesResponse' :: Int
httpStatus = Int
a} :: CreateWorkspacesResponse)
instance Prelude.NFData CreateWorkspacesResponse where
rnf :: CreateWorkspacesResponse -> ()
rnf CreateWorkspacesResponse' {Int
Maybe [FailedCreateWorkspaceRequest]
Maybe [Workspace]
httpStatus :: Int
pendingRequests :: Maybe [Workspace]
failedRequests :: Maybe [FailedCreateWorkspaceRequest]
$sel:httpStatus:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Int
$sel:pendingRequests:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Maybe [Workspace]
$sel:failedRequests:CreateWorkspacesResponse' :: CreateWorkspacesResponse -> Maybe [FailedCreateWorkspaceRequest]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [FailedCreateWorkspaceRequest]
failedRequests
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Workspace]
pendingRequests
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus