module Stratosphere.MediaStore.Container.MetricPolicyRuleProperty (
        MetricPolicyRuleProperty(..), mkMetricPolicyRuleProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data MetricPolicyRuleProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html>
    MetricPolicyRuleProperty {MetricPolicyRuleProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html#cfn-mediastore-container-metricpolicyrule-objectgroup>
                              MetricPolicyRuleProperty -> Value Text
objectGroup :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediastore-container-metricpolicyrule.html#cfn-mediastore-container-metricpolicyrule-objectgroupname>
                              MetricPolicyRuleProperty -> Value Text
objectGroupName :: (Value Prelude.Text)}
  deriving stock (MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool
(MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool)
-> (MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool)
-> Eq MetricPolicyRuleProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool
== :: MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool
$c/= :: MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool
/= :: MetricPolicyRuleProperty -> MetricPolicyRuleProperty -> Bool
Prelude.Eq, Int -> MetricPolicyRuleProperty -> ShowS
[MetricPolicyRuleProperty] -> ShowS
MetricPolicyRuleProperty -> String
(Int -> MetricPolicyRuleProperty -> ShowS)
-> (MetricPolicyRuleProperty -> String)
-> ([MetricPolicyRuleProperty] -> ShowS)
-> Show MetricPolicyRuleProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MetricPolicyRuleProperty -> ShowS
showsPrec :: Int -> MetricPolicyRuleProperty -> ShowS
$cshow :: MetricPolicyRuleProperty -> String
show :: MetricPolicyRuleProperty -> String
$cshowList :: [MetricPolicyRuleProperty] -> ShowS
showList :: [MetricPolicyRuleProperty] -> ShowS
Prelude.Show)
mkMetricPolicyRuleProperty ::
  Value Prelude.Text
  -> Value Prelude.Text -> MetricPolicyRuleProperty
mkMetricPolicyRuleProperty :: Value Text -> Value Text -> MetricPolicyRuleProperty
mkMetricPolicyRuleProperty Value Text
objectGroup Value Text
objectGroupName
  = MetricPolicyRuleProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), objectGroup :: Value Text
objectGroup = Value Text
objectGroup,
       objectGroupName :: Value Text
objectGroupName = Value Text
objectGroupName}
instance ToResourceProperties MetricPolicyRuleProperty where
  toResourceProperties :: MetricPolicyRuleProperty -> ResourceProperties
toResourceProperties MetricPolicyRuleProperty {()
Value Text
haddock_workaround_ :: MetricPolicyRuleProperty -> ()
objectGroup :: MetricPolicyRuleProperty -> Value Text
objectGroupName :: MetricPolicyRuleProperty -> Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
objectGroupName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::MediaStore::Container.MetricPolicyRule",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ObjectGroup" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
objectGroup,
                       Key
"ObjectGroupName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
objectGroupName]}
instance JSON.ToJSON MetricPolicyRuleProperty where
  toJSON :: MetricPolicyRuleProperty -> Value
toJSON MetricPolicyRuleProperty {()
Value Text
haddock_workaround_ :: MetricPolicyRuleProperty -> ()
objectGroup :: MetricPolicyRuleProperty -> Value Text
objectGroupName :: MetricPolicyRuleProperty -> Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
objectGroupName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ObjectGroup" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
objectGroup,
         Key
"ObjectGroupName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
objectGroupName]
instance Property "ObjectGroup" MetricPolicyRuleProperty where
  type PropertyType "ObjectGroup" MetricPolicyRuleProperty = Value Prelude.Text
  set :: PropertyType "ObjectGroup" MetricPolicyRuleProperty
-> MetricPolicyRuleProperty -> MetricPolicyRuleProperty
set PropertyType "ObjectGroup" MetricPolicyRuleProperty
newValue MetricPolicyRuleProperty {()
Value Text
haddock_workaround_ :: MetricPolicyRuleProperty -> ()
objectGroup :: MetricPolicyRuleProperty -> Value Text
objectGroupName :: MetricPolicyRuleProperty -> Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
objectGroupName :: Value Text
..}
    = MetricPolicyRuleProperty {objectGroup :: Value Text
objectGroup = PropertyType "ObjectGroup" MetricPolicyRuleProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
objectGroupName :: Value Text
haddock_workaround_ :: ()
objectGroupName :: Value Text
..}
instance Property "ObjectGroupName" MetricPolicyRuleProperty where
  type PropertyType "ObjectGroupName" MetricPolicyRuleProperty = Value Prelude.Text
  set :: PropertyType "ObjectGroupName" MetricPolicyRuleProperty
-> MetricPolicyRuleProperty -> MetricPolicyRuleProperty
set PropertyType "ObjectGroupName" MetricPolicyRuleProperty
newValue MetricPolicyRuleProperty {()
Value Text
haddock_workaround_ :: MetricPolicyRuleProperty -> ()
objectGroup :: MetricPolicyRuleProperty -> Value Text
objectGroupName :: MetricPolicyRuleProperty -> Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
objectGroupName :: Value Text
..}
    = MetricPolicyRuleProperty {objectGroupName :: Value Text
objectGroupName = PropertyType "ObjectGroupName" MetricPolicyRuleProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
haddock_workaround_ :: ()
objectGroup :: Value Text
..}