{-# 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.PutLifecycleConfiguration
(
PutLifecycleConfiguration (..),
newPutLifecycleConfiguration,
putLifecycleConfiguration_fileSystemId,
putLifecycleConfiguration_lifecyclePolicies,
LifecycleConfigurationDescription (..),
newLifecycleConfigurationDescription,
lifecycleConfigurationDescription_lifecyclePolicies,
)
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 PutLifecycleConfiguration = PutLifecycleConfiguration'
{
PutLifecycleConfiguration -> Text
fileSystemId :: Prelude.Text,
PutLifecycleConfiguration -> [LifecyclePolicy]
lifecyclePolicies :: [LifecyclePolicy]
}
deriving (PutLifecycleConfiguration -> PutLifecycleConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutLifecycleConfiguration -> PutLifecycleConfiguration -> Bool
$c/= :: PutLifecycleConfiguration -> PutLifecycleConfiguration -> Bool
== :: PutLifecycleConfiguration -> PutLifecycleConfiguration -> Bool
$c== :: PutLifecycleConfiguration -> PutLifecycleConfiguration -> Bool
Prelude.Eq, ReadPrec [PutLifecycleConfiguration]
ReadPrec PutLifecycleConfiguration
Int -> ReadS PutLifecycleConfiguration
ReadS [PutLifecycleConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutLifecycleConfiguration]
$creadListPrec :: ReadPrec [PutLifecycleConfiguration]
readPrec :: ReadPrec PutLifecycleConfiguration
$creadPrec :: ReadPrec PutLifecycleConfiguration
readList :: ReadS [PutLifecycleConfiguration]
$creadList :: ReadS [PutLifecycleConfiguration]
readsPrec :: Int -> ReadS PutLifecycleConfiguration
$creadsPrec :: Int -> ReadS PutLifecycleConfiguration
Prelude.Read, Int -> PutLifecycleConfiguration -> ShowS
[PutLifecycleConfiguration] -> ShowS
PutLifecycleConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutLifecycleConfiguration] -> ShowS
$cshowList :: [PutLifecycleConfiguration] -> ShowS
show :: PutLifecycleConfiguration -> String
$cshow :: PutLifecycleConfiguration -> String
showsPrec :: Int -> PutLifecycleConfiguration -> ShowS
$cshowsPrec :: Int -> PutLifecycleConfiguration -> ShowS
Prelude.Show, forall x.
Rep PutLifecycleConfiguration x -> PutLifecycleConfiguration
forall x.
PutLifecycleConfiguration -> Rep PutLifecycleConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutLifecycleConfiguration x -> PutLifecycleConfiguration
$cfrom :: forall x.
PutLifecycleConfiguration -> Rep PutLifecycleConfiguration x
Prelude.Generic)
newPutLifecycleConfiguration ::
Prelude.Text ->
PutLifecycleConfiguration
newPutLifecycleConfiguration :: Text -> PutLifecycleConfiguration
newPutLifecycleConfiguration Text
pFileSystemId_ =
PutLifecycleConfiguration'
{ $sel:fileSystemId:PutLifecycleConfiguration' :: Text
fileSystemId =
Text
pFileSystemId_,
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: [LifecyclePolicy]
lifecyclePolicies = forall a. Monoid a => a
Prelude.mempty
}
putLifecycleConfiguration_fileSystemId :: Lens.Lens' PutLifecycleConfiguration Prelude.Text
putLifecycleConfiguration_fileSystemId :: Lens' PutLifecycleConfiguration Text
putLifecycleConfiguration_fileSystemId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutLifecycleConfiguration' {Text
fileSystemId :: Text
$sel:fileSystemId:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> Text
fileSystemId} -> Text
fileSystemId) (\s :: PutLifecycleConfiguration
s@PutLifecycleConfiguration' {} Text
a -> PutLifecycleConfiguration
s {$sel:fileSystemId:PutLifecycleConfiguration' :: Text
fileSystemId = Text
a} :: PutLifecycleConfiguration)
putLifecycleConfiguration_lifecyclePolicies :: Lens.Lens' PutLifecycleConfiguration [LifecyclePolicy]
putLifecycleConfiguration_lifecyclePolicies :: Lens' PutLifecycleConfiguration [LifecyclePolicy]
putLifecycleConfiguration_lifecyclePolicies = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutLifecycleConfiguration' {[LifecyclePolicy]
lifecyclePolicies :: [LifecyclePolicy]
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> [LifecyclePolicy]
lifecyclePolicies} -> [LifecyclePolicy]
lifecyclePolicies) (\s :: PutLifecycleConfiguration
s@PutLifecycleConfiguration' {} [LifecyclePolicy]
a -> PutLifecycleConfiguration
s {$sel:lifecyclePolicies:PutLifecycleConfiguration' :: [LifecyclePolicy]
lifecyclePolicies = [LifecyclePolicy]
a} :: PutLifecycleConfiguration) 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 PutLifecycleConfiguration where
type
AWSResponse PutLifecycleConfiguration =
LifecycleConfigurationDescription
request :: (Service -> Service)
-> PutLifecycleConfiguration -> Request PutLifecycleConfiguration
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 PutLifecycleConfiguration
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse PutLifecycleConfiguration)))
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 PutLifecycleConfiguration where
hashWithSalt :: Int -> PutLifecycleConfiguration -> Int
hashWithSalt Int
_salt PutLifecycleConfiguration' {[LifecyclePolicy]
Text
lifecyclePolicies :: [LifecyclePolicy]
fileSystemId :: Text
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> [LifecyclePolicy]
$sel:fileSystemId:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
fileSystemId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [LifecyclePolicy]
lifecyclePolicies
instance Prelude.NFData PutLifecycleConfiguration where
rnf :: PutLifecycleConfiguration -> ()
rnf PutLifecycleConfiguration' {[LifecyclePolicy]
Text
lifecyclePolicies :: [LifecyclePolicy]
fileSystemId :: Text
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> [LifecyclePolicy]
$sel:fileSystemId:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> 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 [LifecyclePolicy]
lifecyclePolicies
instance Data.ToHeaders PutLifecycleConfiguration where
toHeaders :: PutLifecycleConfiguration -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON PutLifecycleConfiguration where
toJSON :: PutLifecycleConfiguration -> Value
toJSON PutLifecycleConfiguration' {[LifecyclePolicy]
Text
lifecyclePolicies :: [LifecyclePolicy]
fileSystemId :: Text
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> [LifecyclePolicy]
$sel:fileSystemId:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"LifecyclePolicies" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= [LifecyclePolicy]
lifecyclePolicies)
]
)
instance Data.ToPath PutLifecycleConfiguration where
toPath :: PutLifecycleConfiguration -> ByteString
toPath PutLifecycleConfiguration' {[LifecyclePolicy]
Text
lifecyclePolicies :: [LifecyclePolicy]
fileSystemId :: Text
$sel:lifecyclePolicies:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> [LifecyclePolicy]
$sel:fileSystemId:PutLifecycleConfiguration' :: PutLifecycleConfiguration -> 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
"/lifecycle-configuration"
]
instance Data.ToQuery PutLifecycleConfiguration where
toQuery :: PutLifecycleConfiguration -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty