{-# 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.Backup.CreateFramework
(
CreateFramework (..),
newCreateFramework,
createFramework_frameworkDescription,
createFramework_frameworkTags,
createFramework_idempotencyToken,
createFramework_frameworkName,
createFramework_frameworkControls,
CreateFrameworkResponse (..),
newCreateFrameworkResponse,
createFrameworkResponse_frameworkArn,
createFrameworkResponse_frameworkName,
createFrameworkResponse_httpStatus,
)
where
import Amazonka.Backup.Types
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
data CreateFramework = CreateFramework'
{
CreateFramework -> Maybe Text
frameworkDescription :: Prelude.Maybe Prelude.Text,
CreateFramework -> Maybe (HashMap Text Text)
frameworkTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreateFramework -> Maybe Text
idempotencyToken :: Prelude.Maybe Prelude.Text,
CreateFramework -> Text
frameworkName :: Prelude.Text,
CreateFramework -> [FrameworkControl]
frameworkControls :: [FrameworkControl]
}
deriving (CreateFramework -> CreateFramework -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFramework -> CreateFramework -> Bool
$c/= :: CreateFramework -> CreateFramework -> Bool
== :: CreateFramework -> CreateFramework -> Bool
$c== :: CreateFramework -> CreateFramework -> Bool
Prelude.Eq, ReadPrec [CreateFramework]
ReadPrec CreateFramework
Int -> ReadS CreateFramework
ReadS [CreateFramework]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFramework]
$creadListPrec :: ReadPrec [CreateFramework]
readPrec :: ReadPrec CreateFramework
$creadPrec :: ReadPrec CreateFramework
readList :: ReadS [CreateFramework]
$creadList :: ReadS [CreateFramework]
readsPrec :: Int -> ReadS CreateFramework
$creadsPrec :: Int -> ReadS CreateFramework
Prelude.Read, Int -> CreateFramework -> ShowS
[CreateFramework] -> ShowS
CreateFramework -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFramework] -> ShowS
$cshowList :: [CreateFramework] -> ShowS
show :: CreateFramework -> String
$cshow :: CreateFramework -> String
showsPrec :: Int -> CreateFramework -> ShowS
$cshowsPrec :: Int -> CreateFramework -> ShowS
Prelude.Show, forall x. Rep CreateFramework x -> CreateFramework
forall x. CreateFramework -> Rep CreateFramework x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFramework x -> CreateFramework
$cfrom :: forall x. CreateFramework -> Rep CreateFramework x
Prelude.Generic)
newCreateFramework ::
Prelude.Text ->
CreateFramework
newCreateFramework :: Text -> CreateFramework
newCreateFramework Text
pFrameworkName_ =
CreateFramework'
{ $sel:frameworkDescription:CreateFramework' :: Maybe Text
frameworkDescription =
forall a. Maybe a
Prelude.Nothing,
$sel:frameworkTags:CreateFramework' :: Maybe (HashMap Text Text)
frameworkTags = forall a. Maybe a
Prelude.Nothing,
$sel:idempotencyToken:CreateFramework' :: Maybe Text
idempotencyToken = forall a. Maybe a
Prelude.Nothing,
$sel:frameworkName:CreateFramework' :: Text
frameworkName = Text
pFrameworkName_,
$sel:frameworkControls:CreateFramework' :: [FrameworkControl]
frameworkControls = forall a. Monoid a => a
Prelude.mempty
}
createFramework_frameworkDescription :: Lens.Lens' CreateFramework (Prelude.Maybe Prelude.Text)
createFramework_frameworkDescription :: Lens' CreateFramework (Maybe Text)
createFramework_frameworkDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFramework' {Maybe Text
frameworkDescription :: Maybe Text
$sel:frameworkDescription:CreateFramework' :: CreateFramework -> Maybe Text
frameworkDescription} -> Maybe Text
frameworkDescription) (\s :: CreateFramework
s@CreateFramework' {} Maybe Text
a -> CreateFramework
s {$sel:frameworkDescription:CreateFramework' :: Maybe Text
frameworkDescription = Maybe Text
a} :: CreateFramework)
createFramework_frameworkTags :: Lens.Lens' CreateFramework (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createFramework_frameworkTags :: Lens' CreateFramework (Maybe (HashMap Text Text))
createFramework_frameworkTags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFramework' {Maybe (HashMap Text Text)
frameworkTags :: Maybe (HashMap Text Text)
$sel:frameworkTags:CreateFramework' :: CreateFramework -> Maybe (HashMap Text Text)
frameworkTags} -> Maybe (HashMap Text Text)
frameworkTags) (\s :: CreateFramework
s@CreateFramework' {} Maybe (HashMap Text Text)
a -> CreateFramework
s {$sel:frameworkTags:CreateFramework' :: Maybe (HashMap Text Text)
frameworkTags = Maybe (HashMap Text Text)
a} :: CreateFramework) 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
createFramework_idempotencyToken :: Lens.Lens' CreateFramework (Prelude.Maybe Prelude.Text)
createFramework_idempotencyToken :: Lens' CreateFramework (Maybe Text)
createFramework_idempotencyToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFramework' {Maybe Text
idempotencyToken :: Maybe Text
$sel:idempotencyToken:CreateFramework' :: CreateFramework -> Maybe Text
idempotencyToken} -> Maybe Text
idempotencyToken) (\s :: CreateFramework
s@CreateFramework' {} Maybe Text
a -> CreateFramework
s {$sel:idempotencyToken:CreateFramework' :: Maybe Text
idempotencyToken = Maybe Text
a} :: CreateFramework)
createFramework_frameworkName :: Lens.Lens' CreateFramework Prelude.Text
createFramework_frameworkName :: Lens' CreateFramework Text
createFramework_frameworkName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFramework' {Text
frameworkName :: Text
$sel:frameworkName:CreateFramework' :: CreateFramework -> Text
frameworkName} -> Text
frameworkName) (\s :: CreateFramework
s@CreateFramework' {} Text
a -> CreateFramework
s {$sel:frameworkName:CreateFramework' :: Text
frameworkName = Text
a} :: CreateFramework)
createFramework_frameworkControls :: Lens.Lens' CreateFramework [FrameworkControl]
createFramework_frameworkControls :: Lens' CreateFramework [FrameworkControl]
createFramework_frameworkControls = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFramework' {[FrameworkControl]
frameworkControls :: [FrameworkControl]
$sel:frameworkControls:CreateFramework' :: CreateFramework -> [FrameworkControl]
frameworkControls} -> [FrameworkControl]
frameworkControls) (\s :: CreateFramework
s@CreateFramework' {} [FrameworkControl]
a -> CreateFramework
s {$sel:frameworkControls:CreateFramework' :: [FrameworkControl]
frameworkControls = [FrameworkControl]
a} :: CreateFramework) 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 CreateFramework where
type
AWSResponse CreateFramework =
CreateFrameworkResponse
request :: (Service -> Service) -> CreateFramework -> Request CreateFramework
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 CreateFramework
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateFramework)))
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 Text -> Maybe Text -> Int -> CreateFrameworkResponse
CreateFrameworkResponse'
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
"FrameworkArn")
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
"FrameworkName")
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 CreateFramework where
hashWithSalt :: Int -> CreateFramework -> Int
hashWithSalt Int
_salt CreateFramework' {[FrameworkControl]
Maybe Text
Maybe (HashMap Text Text)
Text
frameworkControls :: [FrameworkControl]
frameworkName :: Text
idempotencyToken :: Maybe Text
frameworkTags :: Maybe (HashMap Text Text)
frameworkDescription :: Maybe Text
$sel:frameworkControls:CreateFramework' :: CreateFramework -> [FrameworkControl]
$sel:frameworkName:CreateFramework' :: CreateFramework -> Text
$sel:idempotencyToken:CreateFramework' :: CreateFramework -> Maybe Text
$sel:frameworkTags:CreateFramework' :: CreateFramework -> Maybe (HashMap Text Text)
$sel:frameworkDescription:CreateFramework' :: CreateFramework -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
frameworkDescription
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
frameworkTags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
idempotencyToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
frameworkName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [FrameworkControl]
frameworkControls
instance Prelude.NFData CreateFramework where
rnf :: CreateFramework -> ()
rnf CreateFramework' {[FrameworkControl]
Maybe Text
Maybe (HashMap Text Text)
Text
frameworkControls :: [FrameworkControl]
frameworkName :: Text
idempotencyToken :: Maybe Text
frameworkTags :: Maybe (HashMap Text Text)
frameworkDescription :: Maybe Text
$sel:frameworkControls:CreateFramework' :: CreateFramework -> [FrameworkControl]
$sel:frameworkName:CreateFramework' :: CreateFramework -> Text
$sel:idempotencyToken:CreateFramework' :: CreateFramework -> Maybe Text
$sel:frameworkTags:CreateFramework' :: CreateFramework -> Maybe (HashMap Text Text)
$sel:frameworkDescription:CreateFramework' :: CreateFramework -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
frameworkDescription
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
frameworkTags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
idempotencyToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
frameworkName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [FrameworkControl]
frameworkControls
instance Data.ToHeaders CreateFramework where
toHeaders :: CreateFramework -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateFramework where
toJSON :: CreateFramework -> Value
toJSON CreateFramework' {[FrameworkControl]
Maybe Text
Maybe (HashMap Text Text)
Text
frameworkControls :: [FrameworkControl]
frameworkName :: Text
idempotencyToken :: Maybe Text
frameworkTags :: Maybe (HashMap Text Text)
frameworkDescription :: Maybe Text
$sel:frameworkControls:CreateFramework' :: CreateFramework -> [FrameworkControl]
$sel:frameworkName:CreateFramework' :: CreateFramework -> Text
$sel:idempotencyToken:CreateFramework' :: CreateFramework -> Maybe Text
$sel:frameworkTags:CreateFramework' :: CreateFramework -> Maybe (HashMap Text Text)
$sel:frameworkDescription:CreateFramework' :: CreateFramework -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"FrameworkDescription" 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
frameworkDescription,
(Key
"FrameworkTags" 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 (HashMap Text Text)
frameworkTags,
(Key
"IdempotencyToken" 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
idempotencyToken,
forall a. a -> Maybe a
Prelude.Just (Key
"FrameworkName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
frameworkName),
forall a. a -> Maybe a
Prelude.Just
(Key
"FrameworkControls" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [FrameworkControl]
frameworkControls)
]
)
instance Data.ToPath CreateFramework where
toPath :: CreateFramework -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/audit/frameworks"
instance Data.ToQuery CreateFramework where
toQuery :: CreateFramework -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateFrameworkResponse = CreateFrameworkResponse'
{
CreateFrameworkResponse -> Maybe Text
frameworkArn :: Prelude.Maybe Prelude.Text,
CreateFrameworkResponse -> Maybe Text
frameworkName :: Prelude.Maybe Prelude.Text,
CreateFrameworkResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateFrameworkResponse -> CreateFrameworkResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFrameworkResponse -> CreateFrameworkResponse -> Bool
$c/= :: CreateFrameworkResponse -> CreateFrameworkResponse -> Bool
== :: CreateFrameworkResponse -> CreateFrameworkResponse -> Bool
$c== :: CreateFrameworkResponse -> CreateFrameworkResponse -> Bool
Prelude.Eq, ReadPrec [CreateFrameworkResponse]
ReadPrec CreateFrameworkResponse
Int -> ReadS CreateFrameworkResponse
ReadS [CreateFrameworkResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFrameworkResponse]
$creadListPrec :: ReadPrec [CreateFrameworkResponse]
readPrec :: ReadPrec CreateFrameworkResponse
$creadPrec :: ReadPrec CreateFrameworkResponse
readList :: ReadS [CreateFrameworkResponse]
$creadList :: ReadS [CreateFrameworkResponse]
readsPrec :: Int -> ReadS CreateFrameworkResponse
$creadsPrec :: Int -> ReadS CreateFrameworkResponse
Prelude.Read, Int -> CreateFrameworkResponse -> ShowS
[CreateFrameworkResponse] -> ShowS
CreateFrameworkResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFrameworkResponse] -> ShowS
$cshowList :: [CreateFrameworkResponse] -> ShowS
show :: CreateFrameworkResponse -> String
$cshow :: CreateFrameworkResponse -> String
showsPrec :: Int -> CreateFrameworkResponse -> ShowS
$cshowsPrec :: Int -> CreateFrameworkResponse -> ShowS
Prelude.Show, forall x. Rep CreateFrameworkResponse x -> CreateFrameworkResponse
forall x. CreateFrameworkResponse -> Rep CreateFrameworkResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFrameworkResponse x -> CreateFrameworkResponse
$cfrom :: forall x. CreateFrameworkResponse -> Rep CreateFrameworkResponse x
Prelude.Generic)
newCreateFrameworkResponse ::
Prelude.Int ->
CreateFrameworkResponse
newCreateFrameworkResponse :: Int -> CreateFrameworkResponse
newCreateFrameworkResponse Int
pHttpStatus_ =
CreateFrameworkResponse'
{ $sel:frameworkArn:CreateFrameworkResponse' :: Maybe Text
frameworkArn =
forall a. Maybe a
Prelude.Nothing,
$sel:frameworkName:CreateFrameworkResponse' :: Maybe Text
frameworkName = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateFrameworkResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createFrameworkResponse_frameworkArn :: Lens.Lens' CreateFrameworkResponse (Prelude.Maybe Prelude.Text)
createFrameworkResponse_frameworkArn :: Lens' CreateFrameworkResponse (Maybe Text)
createFrameworkResponse_frameworkArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFrameworkResponse' {Maybe Text
frameworkArn :: Maybe Text
$sel:frameworkArn:CreateFrameworkResponse' :: CreateFrameworkResponse -> Maybe Text
frameworkArn} -> Maybe Text
frameworkArn) (\s :: CreateFrameworkResponse
s@CreateFrameworkResponse' {} Maybe Text
a -> CreateFrameworkResponse
s {$sel:frameworkArn:CreateFrameworkResponse' :: Maybe Text
frameworkArn = Maybe Text
a} :: CreateFrameworkResponse)
createFrameworkResponse_frameworkName :: Lens.Lens' CreateFrameworkResponse (Prelude.Maybe Prelude.Text)
createFrameworkResponse_frameworkName :: Lens' CreateFrameworkResponse (Maybe Text)
createFrameworkResponse_frameworkName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFrameworkResponse' {Maybe Text
frameworkName :: Maybe Text
$sel:frameworkName:CreateFrameworkResponse' :: CreateFrameworkResponse -> Maybe Text
frameworkName} -> Maybe Text
frameworkName) (\s :: CreateFrameworkResponse
s@CreateFrameworkResponse' {} Maybe Text
a -> CreateFrameworkResponse
s {$sel:frameworkName:CreateFrameworkResponse' :: Maybe Text
frameworkName = Maybe Text
a} :: CreateFrameworkResponse)
createFrameworkResponse_httpStatus :: Lens.Lens' CreateFrameworkResponse Prelude.Int
createFrameworkResponse_httpStatus :: Lens' CreateFrameworkResponse Int
createFrameworkResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFrameworkResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateFrameworkResponse' :: CreateFrameworkResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateFrameworkResponse
s@CreateFrameworkResponse' {} Int
a -> CreateFrameworkResponse
s {$sel:httpStatus:CreateFrameworkResponse' :: Int
httpStatus = Int
a} :: CreateFrameworkResponse)
instance Prelude.NFData CreateFrameworkResponse where
rnf :: CreateFrameworkResponse -> ()
rnf CreateFrameworkResponse' {Int
Maybe Text
httpStatus :: Int
frameworkName :: Maybe Text
frameworkArn :: Maybe Text
$sel:httpStatus:CreateFrameworkResponse' :: CreateFrameworkResponse -> Int
$sel:frameworkName:CreateFrameworkResponse' :: CreateFrameworkResponse -> Maybe Text
$sel:frameworkArn:CreateFrameworkResponse' :: CreateFrameworkResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
frameworkArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
frameworkName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus