module Stratosphere.FSx.Volume.SnaplockRetentionPeriodProperty (
        module Exports, SnaplockRetentionPeriodProperty(..),
        mkSnaplockRetentionPeriodProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.FSx.Volume.RetentionPeriodProperty as Exports
import Stratosphere.ResourceProperties
data SnaplockRetentionPeriodProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html>
    SnaplockRetentionPeriodProperty {SnaplockRetentionPeriodProperty -> ()
haddock_workaround_ :: (),
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-defaultretention>
                                     SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
defaultRetention :: RetentionPeriodProperty,
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-maximumretention>
                                     SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty,
                                     -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-volume-snaplockretentionperiod.html#cfn-fsx-volume-snaplockretentionperiod-minimumretention>
                                     SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty}
  deriving stock (SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty -> Bool
(SnaplockRetentionPeriodProperty
 -> SnaplockRetentionPeriodProperty -> Bool)
-> (SnaplockRetentionPeriodProperty
    -> SnaplockRetentionPeriodProperty -> Bool)
-> Eq SnaplockRetentionPeriodProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty -> Bool
== :: SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty -> Bool
$c/= :: SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty -> Bool
/= :: SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty -> Bool
Prelude.Eq, Int -> SnaplockRetentionPeriodProperty -> ShowS
[SnaplockRetentionPeriodProperty] -> ShowS
SnaplockRetentionPeriodProperty -> String
(Int -> SnaplockRetentionPeriodProperty -> ShowS)
-> (SnaplockRetentionPeriodProperty -> String)
-> ([SnaplockRetentionPeriodProperty] -> ShowS)
-> Show SnaplockRetentionPeriodProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SnaplockRetentionPeriodProperty -> ShowS
showsPrec :: Int -> SnaplockRetentionPeriodProperty -> ShowS
$cshow :: SnaplockRetentionPeriodProperty -> String
show :: SnaplockRetentionPeriodProperty -> String
$cshowList :: [SnaplockRetentionPeriodProperty] -> ShowS
showList :: [SnaplockRetentionPeriodProperty] -> ShowS
Prelude.Show)
mkSnaplockRetentionPeriodProperty ::
  RetentionPeriodProperty
  -> RetentionPeriodProperty
     -> RetentionPeriodProperty -> SnaplockRetentionPeriodProperty
mkSnaplockRetentionPeriodProperty :: RetentionPeriodProperty
-> RetentionPeriodProperty
-> RetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
mkSnaplockRetentionPeriodProperty
  RetentionPeriodProperty
defaultRetention
  RetentionPeriodProperty
maximumRetention
  RetentionPeriodProperty
minimumRetention
  = SnaplockRetentionPeriodProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), defaultRetention :: RetentionPeriodProperty
defaultRetention = RetentionPeriodProperty
defaultRetention,
       maximumRetention :: RetentionPeriodProperty
maximumRetention = RetentionPeriodProperty
maximumRetention,
       minimumRetention :: RetentionPeriodProperty
minimumRetention = RetentionPeriodProperty
minimumRetention}
instance ToResourceProperties SnaplockRetentionPeriodProperty where
  toResourceProperties :: SnaplockRetentionPeriodProperty -> ResourceProperties
toResourceProperties SnaplockRetentionPeriodProperty {()
RetentionPeriodProperty
haddock_workaround_ :: SnaplockRetentionPeriodProperty -> ()
defaultRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::FSx::Volume.SnaplockRetentionPeriod",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"DefaultRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
defaultRetention,
                       Key
"MaximumRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
maximumRetention,
                       Key
"MinimumRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
minimumRetention]}
instance JSON.ToJSON SnaplockRetentionPeriodProperty where
  toJSON :: SnaplockRetentionPeriodProperty -> Value
toJSON SnaplockRetentionPeriodProperty {()
RetentionPeriodProperty
haddock_workaround_ :: SnaplockRetentionPeriodProperty -> ()
defaultRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"DefaultRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
defaultRetention,
         Key
"MaximumRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
maximumRetention,
         Key
"MinimumRetention" Key -> RetentionPeriodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RetentionPeriodProperty
minimumRetention]
instance Property "DefaultRetention" SnaplockRetentionPeriodProperty where
  type PropertyType "DefaultRetention" SnaplockRetentionPeriodProperty = RetentionPeriodProperty
  set :: PropertyType "DefaultRetention" SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
set PropertyType "DefaultRetention" SnaplockRetentionPeriodProperty
newValue SnaplockRetentionPeriodProperty {()
RetentionPeriodProperty
haddock_workaround_ :: SnaplockRetentionPeriodProperty -> ()
defaultRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
    = SnaplockRetentionPeriodProperty {defaultRetention :: RetentionPeriodProperty
defaultRetention = PropertyType "DefaultRetention" SnaplockRetentionPeriodProperty
RetentionPeriodProperty
newValue, ()
RetentionPeriodProperty
haddock_workaround_ :: ()
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
haddock_workaround_ :: ()
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
instance Property "MaximumRetention" SnaplockRetentionPeriodProperty where
  type PropertyType "MaximumRetention" SnaplockRetentionPeriodProperty = RetentionPeriodProperty
  set :: PropertyType "MaximumRetention" SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
set PropertyType "MaximumRetention" SnaplockRetentionPeriodProperty
newValue SnaplockRetentionPeriodProperty {()
RetentionPeriodProperty
haddock_workaround_ :: SnaplockRetentionPeriodProperty -> ()
defaultRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
    = SnaplockRetentionPeriodProperty {maximumRetention :: RetentionPeriodProperty
maximumRetention = PropertyType "MaximumRetention" SnaplockRetentionPeriodProperty
RetentionPeriodProperty
newValue, ()
RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
instance Property "MinimumRetention" SnaplockRetentionPeriodProperty where
  type PropertyType "MinimumRetention" SnaplockRetentionPeriodProperty = RetentionPeriodProperty
  set :: PropertyType "MinimumRetention" SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
-> SnaplockRetentionPeriodProperty
set PropertyType "MinimumRetention" SnaplockRetentionPeriodProperty
newValue SnaplockRetentionPeriodProperty {()
RetentionPeriodProperty
haddock_workaround_ :: SnaplockRetentionPeriodProperty -> ()
defaultRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
maximumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
minimumRetention :: SnaplockRetentionPeriodProperty -> RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
minimumRetention :: RetentionPeriodProperty
..}
    = SnaplockRetentionPeriodProperty {minimumRetention :: RetentionPeriodProperty
minimumRetention = PropertyType "MinimumRetention" SnaplockRetentionPeriodProperty
RetentionPeriodProperty
newValue, ()
RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
haddock_workaround_ :: ()
defaultRetention :: RetentionPeriodProperty
maximumRetention :: RetentionPeriodProperty
..}