{-# 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.WorkDocs.CreateFolder
(
CreateFolder (..),
newCreateFolder,
createFolder_authenticationToken,
createFolder_name,
createFolder_parentFolderId,
CreateFolderResponse (..),
newCreateFolderResponse,
createFolderResponse_metadata,
createFolderResponse_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.WorkDocs.Types
data CreateFolder = CreateFolder'
{
CreateFolder -> Maybe (Sensitive Text)
authenticationToken :: Prelude.Maybe (Data.Sensitive Prelude.Text),
CreateFolder -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
CreateFolder -> Text
parentFolderId :: Prelude.Text
}
deriving (CreateFolder -> CreateFolder -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFolder -> CreateFolder -> Bool
$c/= :: CreateFolder -> CreateFolder -> Bool
== :: CreateFolder -> CreateFolder -> Bool
$c== :: CreateFolder -> CreateFolder -> Bool
Prelude.Eq, Int -> CreateFolder -> ShowS
[CreateFolder] -> ShowS
CreateFolder -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFolder] -> ShowS
$cshowList :: [CreateFolder] -> ShowS
show :: CreateFolder -> String
$cshow :: CreateFolder -> String
showsPrec :: Int -> CreateFolder -> ShowS
$cshowsPrec :: Int -> CreateFolder -> ShowS
Prelude.Show, forall x. Rep CreateFolder x -> CreateFolder
forall x. CreateFolder -> Rep CreateFolder x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFolder x -> CreateFolder
$cfrom :: forall x. CreateFolder -> Rep CreateFolder x
Prelude.Generic)
newCreateFolder ::
Prelude.Text ->
CreateFolder
newCreateFolder :: Text -> CreateFolder
newCreateFolder Text
pParentFolderId_ =
CreateFolder'
{ $sel:authenticationToken:CreateFolder' :: Maybe (Sensitive Text)
authenticationToken =
forall a. Maybe a
Prelude.Nothing,
$sel:name:CreateFolder' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:parentFolderId:CreateFolder' :: Text
parentFolderId = Text
pParentFolderId_
}
createFolder_authenticationToken :: Lens.Lens' CreateFolder (Prelude.Maybe Prelude.Text)
createFolder_authenticationToken :: Lens' CreateFolder (Maybe Text)
createFolder_authenticationToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFolder' {Maybe (Sensitive Text)
authenticationToken :: Maybe (Sensitive Text)
$sel:authenticationToken:CreateFolder' :: CreateFolder -> Maybe (Sensitive Text)
authenticationToken} -> Maybe (Sensitive Text)
authenticationToken) (\s :: CreateFolder
s@CreateFolder' {} Maybe (Sensitive Text)
a -> CreateFolder
s {$sel:authenticationToken:CreateFolder' :: Maybe (Sensitive Text)
authenticationToken = Maybe (Sensitive Text)
a} :: CreateFolder) 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
createFolder_name :: Lens.Lens' CreateFolder (Prelude.Maybe Prelude.Text)
createFolder_name :: Lens' CreateFolder (Maybe Text)
createFolder_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFolder' {Maybe Text
name :: Maybe Text
$sel:name:CreateFolder' :: CreateFolder -> Maybe Text
name} -> Maybe Text
name) (\s :: CreateFolder
s@CreateFolder' {} Maybe Text
a -> CreateFolder
s {$sel:name:CreateFolder' :: Maybe Text
name = Maybe Text
a} :: CreateFolder)
createFolder_parentFolderId :: Lens.Lens' CreateFolder Prelude.Text
createFolder_parentFolderId :: Lens' CreateFolder Text
createFolder_parentFolderId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFolder' {Text
parentFolderId :: Text
$sel:parentFolderId:CreateFolder' :: CreateFolder -> Text
parentFolderId} -> Text
parentFolderId) (\s :: CreateFolder
s@CreateFolder' {} Text
a -> CreateFolder
s {$sel:parentFolderId:CreateFolder' :: Text
parentFolderId = Text
a} :: CreateFolder)
instance Core.AWSRequest CreateFolder where
type AWSResponse CreateFolder = CreateFolderResponse
request :: (Service -> Service) -> CreateFolder -> Request CreateFolder
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 CreateFolder
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateFolder)))
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 FolderMetadata -> Int -> CreateFolderResponse
CreateFolderResponse'
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
"Metadata")
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 CreateFolder where
hashWithSalt :: Int -> CreateFolder -> Int
hashWithSalt Int
_salt CreateFolder' {Maybe Text
Maybe (Sensitive Text)
Text
parentFolderId :: Text
name :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:parentFolderId:CreateFolder' :: CreateFolder -> Text
$sel:name:CreateFolder' :: CreateFolder -> Maybe Text
$sel:authenticationToken:CreateFolder' :: CreateFolder -> Maybe (Sensitive Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
authenticationToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
parentFolderId
instance Prelude.NFData CreateFolder where
rnf :: CreateFolder -> ()
rnf CreateFolder' {Maybe Text
Maybe (Sensitive Text)
Text
parentFolderId :: Text
name :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:parentFolderId:CreateFolder' :: CreateFolder -> Text
$sel:name:CreateFolder' :: CreateFolder -> Maybe Text
$sel:authenticationToken:CreateFolder' :: CreateFolder -> Maybe (Sensitive Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
authenticationToken
seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
parentFolderId
instance Data.ToHeaders CreateFolder where
toHeaders :: CreateFolder -> ResponseHeaders
toHeaders CreateFolder' {Maybe Text
Maybe (Sensitive Text)
Text
parentFolderId :: Text
name :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:parentFolderId:CreateFolder' :: CreateFolder -> Text
$sel:name:CreateFolder' :: CreateFolder -> Maybe Text
$sel:authenticationToken:CreateFolder' :: CreateFolder -> Maybe (Sensitive Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Authentication" forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe (Sensitive Text)
authenticationToken,
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/x-amz-json-1.1" :: Prelude.ByteString)
]
instance Data.ToJSON CreateFolder where
toJSON :: CreateFolder -> Value
toJSON CreateFolder' {Maybe Text
Maybe (Sensitive Text)
Text
parentFolderId :: Text
name :: Maybe Text
authenticationToken :: Maybe (Sensitive Text)
$sel:parentFolderId:CreateFolder' :: CreateFolder -> Text
$sel:name:CreateFolder' :: CreateFolder -> Maybe Text
$sel:authenticationToken:CreateFolder' :: CreateFolder -> Maybe (Sensitive 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,
forall a. a -> Maybe a
Prelude.Just
(Key
"ParentFolderId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
parentFolderId)
]
)
instance Data.ToPath CreateFolder where
toPath :: CreateFolder -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/api/v1/folders"
instance Data.ToQuery CreateFolder where
toQuery :: CreateFolder -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateFolderResponse = CreateFolderResponse'
{
CreateFolderResponse -> Maybe FolderMetadata
metadata :: Prelude.Maybe FolderMetadata,
CreateFolderResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateFolderResponse -> CreateFolderResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFolderResponse -> CreateFolderResponse -> Bool
$c/= :: CreateFolderResponse -> CreateFolderResponse -> Bool
== :: CreateFolderResponse -> CreateFolderResponse -> Bool
$c== :: CreateFolderResponse -> CreateFolderResponse -> Bool
Prelude.Eq, ReadPrec [CreateFolderResponse]
ReadPrec CreateFolderResponse
Int -> ReadS CreateFolderResponse
ReadS [CreateFolderResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFolderResponse]
$creadListPrec :: ReadPrec [CreateFolderResponse]
readPrec :: ReadPrec CreateFolderResponse
$creadPrec :: ReadPrec CreateFolderResponse
readList :: ReadS [CreateFolderResponse]
$creadList :: ReadS [CreateFolderResponse]
readsPrec :: Int -> ReadS CreateFolderResponse
$creadsPrec :: Int -> ReadS CreateFolderResponse
Prelude.Read, Int -> CreateFolderResponse -> ShowS
[CreateFolderResponse] -> ShowS
CreateFolderResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFolderResponse] -> ShowS
$cshowList :: [CreateFolderResponse] -> ShowS
show :: CreateFolderResponse -> String
$cshow :: CreateFolderResponse -> String
showsPrec :: Int -> CreateFolderResponse -> ShowS
$cshowsPrec :: Int -> CreateFolderResponse -> ShowS
Prelude.Show, forall x. Rep CreateFolderResponse x -> CreateFolderResponse
forall x. CreateFolderResponse -> Rep CreateFolderResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFolderResponse x -> CreateFolderResponse
$cfrom :: forall x. CreateFolderResponse -> Rep CreateFolderResponse x
Prelude.Generic)
newCreateFolderResponse ::
Prelude.Int ->
CreateFolderResponse
newCreateFolderResponse :: Int -> CreateFolderResponse
newCreateFolderResponse Int
pHttpStatus_ =
CreateFolderResponse'
{ $sel:metadata:CreateFolderResponse' :: Maybe FolderMetadata
metadata = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateFolderResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createFolderResponse_metadata :: Lens.Lens' CreateFolderResponse (Prelude.Maybe FolderMetadata)
createFolderResponse_metadata :: Lens' CreateFolderResponse (Maybe FolderMetadata)
createFolderResponse_metadata = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFolderResponse' {Maybe FolderMetadata
metadata :: Maybe FolderMetadata
$sel:metadata:CreateFolderResponse' :: CreateFolderResponse -> Maybe FolderMetadata
metadata} -> Maybe FolderMetadata
metadata) (\s :: CreateFolderResponse
s@CreateFolderResponse' {} Maybe FolderMetadata
a -> CreateFolderResponse
s {$sel:metadata:CreateFolderResponse' :: Maybe FolderMetadata
metadata = Maybe FolderMetadata
a} :: CreateFolderResponse)
createFolderResponse_httpStatus :: Lens.Lens' CreateFolderResponse Prelude.Int
createFolderResponse_httpStatus :: Lens' CreateFolderResponse Int
createFolderResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFolderResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateFolderResponse' :: CreateFolderResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateFolderResponse
s@CreateFolderResponse' {} Int
a -> CreateFolderResponse
s {$sel:httpStatus:CreateFolderResponse' :: Int
httpStatus = Int
a} :: CreateFolderResponse)
instance Prelude.NFData CreateFolderResponse where
rnf :: CreateFolderResponse -> ()
rnf CreateFolderResponse' {Int
Maybe FolderMetadata
httpStatus :: Int
metadata :: Maybe FolderMetadata
$sel:httpStatus:CreateFolderResponse' :: CreateFolderResponse -> Int
$sel:metadata:CreateFolderResponse' :: CreateFolderResponse -> Maybe FolderMetadata
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe FolderMetadata
metadata
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus