{-# 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.Organizations.CreateOrganizationalUnit
(
CreateOrganizationalUnit (..),
newCreateOrganizationalUnit,
createOrganizationalUnit_tags,
createOrganizationalUnit_parentId,
createOrganizationalUnit_name,
CreateOrganizationalUnitResponse (..),
newCreateOrganizationalUnitResponse,
createOrganizationalUnitResponse_organizationalUnit,
createOrganizationalUnitResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Organizations.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateOrganizationalUnit = CreateOrganizationalUnit'
{
CreateOrganizationalUnit -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateOrganizationalUnit -> Text
parentId :: Prelude.Text,
CreateOrganizationalUnit -> Text
name :: Prelude.Text
}
deriving (CreateOrganizationalUnit -> CreateOrganizationalUnit -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateOrganizationalUnit -> CreateOrganizationalUnit -> Bool
$c/= :: CreateOrganizationalUnit -> CreateOrganizationalUnit -> Bool
== :: CreateOrganizationalUnit -> CreateOrganizationalUnit -> Bool
$c== :: CreateOrganizationalUnit -> CreateOrganizationalUnit -> Bool
Prelude.Eq, ReadPrec [CreateOrganizationalUnit]
ReadPrec CreateOrganizationalUnit
Int -> ReadS CreateOrganizationalUnit
ReadS [CreateOrganizationalUnit]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateOrganizationalUnit]
$creadListPrec :: ReadPrec [CreateOrganizationalUnit]
readPrec :: ReadPrec CreateOrganizationalUnit
$creadPrec :: ReadPrec CreateOrganizationalUnit
readList :: ReadS [CreateOrganizationalUnit]
$creadList :: ReadS [CreateOrganizationalUnit]
readsPrec :: Int -> ReadS CreateOrganizationalUnit
$creadsPrec :: Int -> ReadS CreateOrganizationalUnit
Prelude.Read, Int -> CreateOrganizationalUnit -> ShowS
[CreateOrganizationalUnit] -> ShowS
CreateOrganizationalUnit -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateOrganizationalUnit] -> ShowS
$cshowList :: [CreateOrganizationalUnit] -> ShowS
show :: CreateOrganizationalUnit -> String
$cshow :: CreateOrganizationalUnit -> String
showsPrec :: Int -> CreateOrganizationalUnit -> ShowS
$cshowsPrec :: Int -> CreateOrganizationalUnit -> ShowS
Prelude.Show, forall x.
Rep CreateOrganizationalUnit x -> CreateOrganizationalUnit
forall x.
CreateOrganizationalUnit -> Rep CreateOrganizationalUnit x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateOrganizationalUnit x -> CreateOrganizationalUnit
$cfrom :: forall x.
CreateOrganizationalUnit -> Rep CreateOrganizationalUnit x
Prelude.Generic)
newCreateOrganizationalUnit ::
Prelude.Text ->
Prelude.Text ->
CreateOrganizationalUnit
newCreateOrganizationalUnit :: Text -> Text -> CreateOrganizationalUnit
newCreateOrganizationalUnit Text
pParentId_ Text
pName_ =
CreateOrganizationalUnit'
{ $sel:tags:CreateOrganizationalUnit' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:parentId:CreateOrganizationalUnit' :: Text
parentId = Text
pParentId_,
$sel:name:CreateOrganizationalUnit' :: Text
name = Text
pName_
}
createOrganizationalUnit_tags :: Lens.Lens' CreateOrganizationalUnit (Prelude.Maybe [Tag])
createOrganizationalUnit_tags :: Lens' CreateOrganizationalUnit (Maybe [Tag])
createOrganizationalUnit_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOrganizationalUnit' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateOrganizationalUnit
s@CreateOrganizationalUnit' {} Maybe [Tag]
a -> CreateOrganizationalUnit
s {$sel:tags:CreateOrganizationalUnit' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateOrganizationalUnit) 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
createOrganizationalUnit_parentId :: Lens.Lens' CreateOrganizationalUnit Prelude.Text
createOrganizationalUnit_parentId :: Lens' CreateOrganizationalUnit Text
createOrganizationalUnit_parentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOrganizationalUnit' {Text
parentId :: Text
$sel:parentId:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
parentId} -> Text
parentId) (\s :: CreateOrganizationalUnit
s@CreateOrganizationalUnit' {} Text
a -> CreateOrganizationalUnit
s {$sel:parentId:CreateOrganizationalUnit' :: Text
parentId = Text
a} :: CreateOrganizationalUnit)
createOrganizationalUnit_name :: Lens.Lens' CreateOrganizationalUnit Prelude.Text
createOrganizationalUnit_name :: Lens' CreateOrganizationalUnit Text
createOrganizationalUnit_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOrganizationalUnit' {Text
name :: Text
$sel:name:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
name} -> Text
name) (\s :: CreateOrganizationalUnit
s@CreateOrganizationalUnit' {} Text
a -> CreateOrganizationalUnit
s {$sel:name:CreateOrganizationalUnit' :: Text
name = Text
a} :: CreateOrganizationalUnit)
instance Core.AWSRequest CreateOrganizationalUnit where
type
AWSResponse CreateOrganizationalUnit =
CreateOrganizationalUnitResponse
request :: (Service -> Service)
-> CreateOrganizationalUnit -> Request CreateOrganizationalUnit
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 CreateOrganizationalUnit
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateOrganizationalUnit)))
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 OrganizationalUnit -> Int -> CreateOrganizationalUnitResponse
CreateOrganizationalUnitResponse'
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
"OrganizationalUnit")
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 CreateOrganizationalUnit where
hashWithSalt :: Int -> CreateOrganizationalUnit -> Int
hashWithSalt Int
_salt CreateOrganizationalUnit' {Maybe [Tag]
Text
name :: Text
parentId :: Text
tags :: Maybe [Tag]
$sel:name:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:parentId:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:tags:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Maybe [Tag]
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
parentId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
instance Prelude.NFData CreateOrganizationalUnit where
rnf :: CreateOrganizationalUnit -> ()
rnf CreateOrganizationalUnit' {Maybe [Tag]
Text
name :: Text
parentId :: Text
tags :: Maybe [Tag]
$sel:name:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:parentId:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:tags:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Maybe [Tag]
..} =
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 Text
parentId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
instance Data.ToHeaders CreateOrganizationalUnit where
toHeaders :: CreateOrganizationalUnit -> 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
"AWSOrganizationsV20161128.CreateOrganizationalUnit" ::
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 CreateOrganizationalUnit where
toJSON :: CreateOrganizationalUnit -> Value
toJSON CreateOrganizationalUnit' {Maybe [Tag]
Text
name :: Text
parentId :: Text
tags :: Maybe [Tag]
$sel:name:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:parentId:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Text
$sel:tags:CreateOrganizationalUnit' :: CreateOrganizationalUnit -> Maybe [Tag]
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (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,
forall a. a -> Maybe a
Prelude.Just (Key
"ParentId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
parentId),
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 CreateOrganizationalUnit where
toPath :: CreateOrganizationalUnit -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateOrganizationalUnit where
toQuery :: CreateOrganizationalUnit -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateOrganizationalUnitResponse = CreateOrganizationalUnitResponse'
{
CreateOrganizationalUnitResponse -> Maybe OrganizationalUnit
organizationalUnit :: Prelude.Maybe OrganizationalUnit,
CreateOrganizationalUnitResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateOrganizationalUnitResponse
-> CreateOrganizationalUnitResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateOrganizationalUnitResponse
-> CreateOrganizationalUnitResponse -> Bool
$c/= :: CreateOrganizationalUnitResponse
-> CreateOrganizationalUnitResponse -> Bool
== :: CreateOrganizationalUnitResponse
-> CreateOrganizationalUnitResponse -> Bool
$c== :: CreateOrganizationalUnitResponse
-> CreateOrganizationalUnitResponse -> Bool
Prelude.Eq, ReadPrec [CreateOrganizationalUnitResponse]
ReadPrec CreateOrganizationalUnitResponse
Int -> ReadS CreateOrganizationalUnitResponse
ReadS [CreateOrganizationalUnitResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateOrganizationalUnitResponse]
$creadListPrec :: ReadPrec [CreateOrganizationalUnitResponse]
readPrec :: ReadPrec CreateOrganizationalUnitResponse
$creadPrec :: ReadPrec CreateOrganizationalUnitResponse
readList :: ReadS [CreateOrganizationalUnitResponse]
$creadList :: ReadS [CreateOrganizationalUnitResponse]
readsPrec :: Int -> ReadS CreateOrganizationalUnitResponse
$creadsPrec :: Int -> ReadS CreateOrganizationalUnitResponse
Prelude.Read, Int -> CreateOrganizationalUnitResponse -> ShowS
[CreateOrganizationalUnitResponse] -> ShowS
CreateOrganizationalUnitResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateOrganizationalUnitResponse] -> ShowS
$cshowList :: [CreateOrganizationalUnitResponse] -> ShowS
show :: CreateOrganizationalUnitResponse -> String
$cshow :: CreateOrganizationalUnitResponse -> String
showsPrec :: Int -> CreateOrganizationalUnitResponse -> ShowS
$cshowsPrec :: Int -> CreateOrganizationalUnitResponse -> ShowS
Prelude.Show, forall x.
Rep CreateOrganizationalUnitResponse x
-> CreateOrganizationalUnitResponse
forall x.
CreateOrganizationalUnitResponse
-> Rep CreateOrganizationalUnitResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateOrganizationalUnitResponse x
-> CreateOrganizationalUnitResponse
$cfrom :: forall x.
CreateOrganizationalUnitResponse
-> Rep CreateOrganizationalUnitResponse x
Prelude.Generic)
newCreateOrganizationalUnitResponse ::
Prelude.Int ->
CreateOrganizationalUnitResponse
newCreateOrganizationalUnitResponse :: Int -> CreateOrganizationalUnitResponse
newCreateOrganizationalUnitResponse Int
pHttpStatus_ =
CreateOrganizationalUnitResponse'
{ $sel:organizationalUnit:CreateOrganizationalUnitResponse' :: Maybe OrganizationalUnit
organizationalUnit =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateOrganizationalUnitResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createOrganizationalUnitResponse_organizationalUnit :: Lens.Lens' CreateOrganizationalUnitResponse (Prelude.Maybe OrganizationalUnit)
createOrganizationalUnitResponse_organizationalUnit :: Lens' CreateOrganizationalUnitResponse (Maybe OrganizationalUnit)
createOrganizationalUnitResponse_organizationalUnit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOrganizationalUnitResponse' {Maybe OrganizationalUnit
organizationalUnit :: Maybe OrganizationalUnit
$sel:organizationalUnit:CreateOrganizationalUnitResponse' :: CreateOrganizationalUnitResponse -> Maybe OrganizationalUnit
organizationalUnit} -> Maybe OrganizationalUnit
organizationalUnit) (\s :: CreateOrganizationalUnitResponse
s@CreateOrganizationalUnitResponse' {} Maybe OrganizationalUnit
a -> CreateOrganizationalUnitResponse
s {$sel:organizationalUnit:CreateOrganizationalUnitResponse' :: Maybe OrganizationalUnit
organizationalUnit = Maybe OrganizationalUnit
a} :: CreateOrganizationalUnitResponse)
createOrganizationalUnitResponse_httpStatus :: Lens.Lens' CreateOrganizationalUnitResponse Prelude.Int
createOrganizationalUnitResponse_httpStatus :: Lens' CreateOrganizationalUnitResponse Int
createOrganizationalUnitResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateOrganizationalUnitResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateOrganizationalUnitResponse' :: CreateOrganizationalUnitResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateOrganizationalUnitResponse
s@CreateOrganizationalUnitResponse' {} Int
a -> CreateOrganizationalUnitResponse
s {$sel:httpStatus:CreateOrganizationalUnitResponse' :: Int
httpStatus = Int
a} :: CreateOrganizationalUnitResponse)
instance
Prelude.NFData
CreateOrganizationalUnitResponse
where
rnf :: CreateOrganizationalUnitResponse -> ()
rnf CreateOrganizationalUnitResponse' {Int
Maybe OrganizationalUnit
httpStatus :: Int
organizationalUnit :: Maybe OrganizationalUnit
$sel:httpStatus:CreateOrganizationalUnitResponse' :: CreateOrganizationalUnitResponse -> Int
$sel:organizationalUnit:CreateOrganizationalUnitResponse' :: CreateOrganizationalUnitResponse -> Maybe OrganizationalUnit
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe OrganizationalUnit
organizationalUnit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus