{-# 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.EFS.PutBackupPolicy
(
PutBackupPolicy (..),
newPutBackupPolicy,
putBackupPolicy_fileSystemId,
putBackupPolicy_backupPolicy,
BackupPolicyDescription (..),
newBackupPolicyDescription,
backupPolicyDescription_backupPolicy,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.EFS.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data PutBackupPolicy = PutBackupPolicy'
{
PutBackupPolicy -> Text
fileSystemId :: Prelude.Text,
PutBackupPolicy -> BackupPolicy
backupPolicy :: BackupPolicy
}
deriving (PutBackupPolicy -> PutBackupPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBackupPolicy -> PutBackupPolicy -> Bool
$c/= :: PutBackupPolicy -> PutBackupPolicy -> Bool
== :: PutBackupPolicy -> PutBackupPolicy -> Bool
$c== :: PutBackupPolicy -> PutBackupPolicy -> Bool
Prelude.Eq, ReadPrec [PutBackupPolicy]
ReadPrec PutBackupPolicy
Int -> ReadS PutBackupPolicy
ReadS [PutBackupPolicy]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBackupPolicy]
$creadListPrec :: ReadPrec [PutBackupPolicy]
readPrec :: ReadPrec PutBackupPolicy
$creadPrec :: ReadPrec PutBackupPolicy
readList :: ReadS [PutBackupPolicy]
$creadList :: ReadS [PutBackupPolicy]
readsPrec :: Int -> ReadS PutBackupPolicy
$creadsPrec :: Int -> ReadS PutBackupPolicy
Prelude.Read, Int -> PutBackupPolicy -> ShowS
[PutBackupPolicy] -> ShowS
PutBackupPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBackupPolicy] -> ShowS
$cshowList :: [PutBackupPolicy] -> ShowS
show :: PutBackupPolicy -> String
$cshow :: PutBackupPolicy -> String
showsPrec :: Int -> PutBackupPolicy -> ShowS
$cshowsPrec :: Int -> PutBackupPolicy -> ShowS
Prelude.Show, forall x. Rep PutBackupPolicy x -> PutBackupPolicy
forall x. PutBackupPolicy -> Rep PutBackupPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutBackupPolicy x -> PutBackupPolicy
$cfrom :: forall x. PutBackupPolicy -> Rep PutBackupPolicy x
Prelude.Generic)
newPutBackupPolicy ::
Prelude.Text ->
BackupPolicy ->
PutBackupPolicy
newPutBackupPolicy :: Text -> BackupPolicy -> PutBackupPolicy
newPutBackupPolicy Text
pFileSystemId_ BackupPolicy
pBackupPolicy_ =
PutBackupPolicy'
{ $sel:fileSystemId:PutBackupPolicy' :: Text
fileSystemId = Text
pFileSystemId_,
$sel:backupPolicy:PutBackupPolicy' :: BackupPolicy
backupPolicy = BackupPolicy
pBackupPolicy_
}
putBackupPolicy_fileSystemId :: Lens.Lens' PutBackupPolicy Prelude.Text
putBackupPolicy_fileSystemId :: Lens' PutBackupPolicy Text
putBackupPolicy_fileSystemId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBackupPolicy' {Text
fileSystemId :: Text
$sel:fileSystemId:PutBackupPolicy' :: PutBackupPolicy -> Text
fileSystemId} -> Text
fileSystemId) (\s :: PutBackupPolicy
s@PutBackupPolicy' {} Text
a -> PutBackupPolicy
s {$sel:fileSystemId:PutBackupPolicy' :: Text
fileSystemId = Text
a} :: PutBackupPolicy)
putBackupPolicy_backupPolicy :: Lens.Lens' PutBackupPolicy BackupPolicy
putBackupPolicy_backupPolicy :: Lens' PutBackupPolicy BackupPolicy
putBackupPolicy_backupPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBackupPolicy' {BackupPolicy
backupPolicy :: BackupPolicy
$sel:backupPolicy:PutBackupPolicy' :: PutBackupPolicy -> BackupPolicy
backupPolicy} -> BackupPolicy
backupPolicy) (\s :: PutBackupPolicy
s@PutBackupPolicy' {} BackupPolicy
a -> PutBackupPolicy
s {$sel:backupPolicy:PutBackupPolicy' :: BackupPolicy
backupPolicy = BackupPolicy
a} :: PutBackupPolicy)
instance Core.AWSRequest PutBackupPolicy where
type
AWSResponse PutBackupPolicy =
BackupPolicyDescription
request :: (Service -> Service) -> PutBackupPolicy -> Request PutBackupPolicy
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutBackupPolicy
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse PutBackupPolicy)))
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 -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable PutBackupPolicy where
hashWithSalt :: Int -> PutBackupPolicy -> Int
hashWithSalt Int
_salt PutBackupPolicy' {Text
BackupPolicy
backupPolicy :: BackupPolicy
fileSystemId :: Text
$sel:backupPolicy:PutBackupPolicy' :: PutBackupPolicy -> BackupPolicy
$sel:fileSystemId:PutBackupPolicy' :: PutBackupPolicy -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fileSystemId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BackupPolicy
backupPolicy
instance Prelude.NFData PutBackupPolicy where
rnf :: PutBackupPolicy -> ()
rnf PutBackupPolicy' {Text
BackupPolicy
backupPolicy :: BackupPolicy
fileSystemId :: Text
$sel:backupPolicy:PutBackupPolicy' :: PutBackupPolicy -> BackupPolicy
$sel:fileSystemId:PutBackupPolicy' :: PutBackupPolicy -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
fileSystemId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf BackupPolicy
backupPolicy
instance Data.ToHeaders PutBackupPolicy where
toHeaders :: PutBackupPolicy -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON PutBackupPolicy where
toJSON :: PutBackupPolicy -> Value
toJSON PutBackupPolicy' {Text
BackupPolicy
backupPolicy :: BackupPolicy
fileSystemId :: Text
$sel:backupPolicy:PutBackupPolicy' :: PutBackupPolicy -> BackupPolicy
$sel:fileSystemId:PutBackupPolicy' :: PutBackupPolicy -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"BackupPolicy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= BackupPolicy
backupPolicy)]
)
instance Data.ToPath PutBackupPolicy where
toPath :: PutBackupPolicy -> ByteString
toPath PutBackupPolicy' {Text
BackupPolicy
backupPolicy :: BackupPolicy
fileSystemId :: Text
$sel:backupPolicy:PutBackupPolicy' :: PutBackupPolicy -> BackupPolicy
$sel:fileSystemId:PutBackupPolicy' :: PutBackupPolicy -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/2015-02-01/file-systems/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
fileSystemId,
ByteString
"/backup-policy"
]
instance Data.ToQuery PutBackupPolicy where
toQuery :: PutBackupPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty