module Stratosphere.RTBFabric.Link.OpenRtbAttributeModuleParametersProperty (
        module Exports, OpenRtbAttributeModuleParametersProperty(..),
        mkOpenRtbAttributeModuleParametersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.RTBFabric.Link.ActionProperty as Exports
import {-# SOURCE #-} Stratosphere.RTBFabric.Link.FilterProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data OpenRtbAttributeModuleParametersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rtbfabric-link-openrtbattributemoduleparameters.html>
    OpenRtbAttributeModuleParametersProperty {OpenRtbAttributeModuleParametersProperty -> ()
haddock_workaround_ :: (),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rtbfabric-link-openrtbattributemoduleparameters.html#cfn-rtbfabric-link-openrtbattributemoduleparameters-action>
                                              OpenRtbAttributeModuleParametersProperty -> ActionProperty
action :: ActionProperty,
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rtbfabric-link-openrtbattributemoduleparameters.html#cfn-rtbfabric-link-openrtbattributemoduleparameters-filterconfiguration>
                                              OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterConfiguration :: [FilterProperty],
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rtbfabric-link-openrtbattributemoduleparameters.html#cfn-rtbfabric-link-openrtbattributemoduleparameters-filtertype>
                                              OpenRtbAttributeModuleParametersProperty -> Value Text
filterType :: (Value Prelude.Text),
                                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rtbfabric-link-openrtbattributemoduleparameters.html#cfn-rtbfabric-link-openrtbattributemoduleparameters-holdbackpercentage>
                                              OpenRtbAttributeModuleParametersProperty -> Value Double
holdbackPercentage :: (Value Prelude.Double)}
  deriving stock (OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty -> Bool
(OpenRtbAttributeModuleParametersProperty
 -> OpenRtbAttributeModuleParametersProperty -> Bool)
-> (OpenRtbAttributeModuleParametersProperty
    -> OpenRtbAttributeModuleParametersProperty -> Bool)
-> Eq OpenRtbAttributeModuleParametersProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty -> Bool
== :: OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty -> Bool
$c/= :: OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty -> Bool
/= :: OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty -> Bool
Prelude.Eq, Int -> OpenRtbAttributeModuleParametersProperty -> ShowS
[OpenRtbAttributeModuleParametersProperty] -> ShowS
OpenRtbAttributeModuleParametersProperty -> String
(Int -> OpenRtbAttributeModuleParametersProperty -> ShowS)
-> (OpenRtbAttributeModuleParametersProperty -> String)
-> ([OpenRtbAttributeModuleParametersProperty] -> ShowS)
-> Show OpenRtbAttributeModuleParametersProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OpenRtbAttributeModuleParametersProperty -> ShowS
showsPrec :: Int -> OpenRtbAttributeModuleParametersProperty -> ShowS
$cshow :: OpenRtbAttributeModuleParametersProperty -> String
show :: OpenRtbAttributeModuleParametersProperty -> String
$cshowList :: [OpenRtbAttributeModuleParametersProperty] -> ShowS
showList :: [OpenRtbAttributeModuleParametersProperty] -> ShowS
Prelude.Show)
mkOpenRtbAttributeModuleParametersProperty ::
  ActionProperty
  -> [FilterProperty]
     -> Value Prelude.Text
        -> Value Prelude.Double -> OpenRtbAttributeModuleParametersProperty
mkOpenRtbAttributeModuleParametersProperty :: ActionProperty
-> [FilterProperty]
-> Value Text
-> Value Double
-> OpenRtbAttributeModuleParametersProperty
mkOpenRtbAttributeModuleParametersProperty
  ActionProperty
action
  [FilterProperty]
filterConfiguration
  Value Text
filterType
  Value Double
holdbackPercentage
  = OpenRtbAttributeModuleParametersProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), action :: ActionProperty
action = ActionProperty
action,
       filterConfiguration :: [FilterProperty]
filterConfiguration = [FilterProperty]
filterConfiguration, filterType :: Value Text
filterType = Value Text
filterType,
       holdbackPercentage :: Value Double
holdbackPercentage = Value Double
holdbackPercentage}
instance ToResourceProperties OpenRtbAttributeModuleParametersProperty where
  toResourceProperties :: OpenRtbAttributeModuleParametersProperty -> ResourceProperties
toResourceProperties OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::RTBFabric::Link.OpenRtbAttributeModuleParameters",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Action" Key -> ActionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ActionProperty
action,
                       Key
"FilterConfiguration" Key -> [FilterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FilterProperty]
filterConfiguration,
                       Key
"FilterType" 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
filterType,
                       Key
"HoldbackPercentage" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
holdbackPercentage]}
instance JSON.ToJSON OpenRtbAttributeModuleParametersProperty where
  toJSON :: OpenRtbAttributeModuleParametersProperty -> Value
toJSON OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Action" Key -> ActionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ActionProperty
action,
         Key
"FilterConfiguration" Key -> [FilterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FilterProperty]
filterConfiguration,
         Key
"FilterType" 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
filterType,
         Key
"HoldbackPercentage" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
holdbackPercentage]
instance Property "Action" OpenRtbAttributeModuleParametersProperty where
  type PropertyType "Action" OpenRtbAttributeModuleParametersProperty = ActionProperty
  set :: PropertyType "Action" OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
set PropertyType "Action" OpenRtbAttributeModuleParametersProperty
newValue OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = OpenRtbAttributeModuleParametersProperty {action :: ActionProperty
action = PropertyType "Action" OpenRtbAttributeModuleParametersProperty
ActionProperty
newValue, [FilterProperty]
()
Value Double
Value Text
haddock_workaround_ :: ()
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
haddock_workaround_ :: ()
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
instance Property "FilterConfiguration" OpenRtbAttributeModuleParametersProperty where
  type PropertyType "FilterConfiguration" OpenRtbAttributeModuleParametersProperty = [FilterProperty]
  set :: PropertyType
  "FilterConfiguration" OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
set PropertyType
  "FilterConfiguration" OpenRtbAttributeModuleParametersProperty
newValue OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = OpenRtbAttributeModuleParametersProperty
        {filterConfiguration :: [FilterProperty]
filterConfiguration = [FilterProperty]
PropertyType
  "FilterConfiguration" OpenRtbAttributeModuleParametersProperty
newValue, ()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: ()
action :: ActionProperty
filterType :: Value Text
holdbackPercentage :: Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterType :: Value Text
holdbackPercentage :: Value Double
..}
instance Property "FilterType" OpenRtbAttributeModuleParametersProperty where
  type PropertyType "FilterType" OpenRtbAttributeModuleParametersProperty = Value Prelude.Text
  set :: PropertyType "FilterType" OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
set PropertyType "FilterType" OpenRtbAttributeModuleParametersProperty
newValue OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = OpenRtbAttributeModuleParametersProperty
        {filterType :: Value Text
filterType = PropertyType "FilterType" OpenRtbAttributeModuleParametersProperty
Value Text
newValue, [FilterProperty]
()
Value Double
ActionProperty
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
holdbackPercentage :: Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
holdbackPercentage :: Value Double
..}
instance Property "HoldbackPercentage" OpenRtbAttributeModuleParametersProperty where
  type PropertyType "HoldbackPercentage" OpenRtbAttributeModuleParametersProperty = Value Prelude.Double
  set :: PropertyType
  "HoldbackPercentage" OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
-> OpenRtbAttributeModuleParametersProperty
set PropertyType
  "HoldbackPercentage" OpenRtbAttributeModuleParametersProperty
newValue OpenRtbAttributeModuleParametersProperty {[FilterProperty]
()
Value Double
Value Text
ActionProperty
haddock_workaround_ :: OpenRtbAttributeModuleParametersProperty -> ()
action :: OpenRtbAttributeModuleParametersProperty -> ActionProperty
filterConfiguration :: OpenRtbAttributeModuleParametersProperty -> [FilterProperty]
filterType :: OpenRtbAttributeModuleParametersProperty -> Value Text
holdbackPercentage :: OpenRtbAttributeModuleParametersProperty -> Value Double
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
holdbackPercentage :: Value Double
..}
    = OpenRtbAttributeModuleParametersProperty
        {holdbackPercentage :: Value Double
holdbackPercentage = PropertyType
  "HoldbackPercentage" OpenRtbAttributeModuleParametersProperty
Value Double
newValue, [FilterProperty]
()
Value Text
ActionProperty
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
haddock_workaround_ :: ()
action :: ActionProperty
filterConfiguration :: [FilterProperty]
filterType :: Value Text
..}