module Stratosphere.BillingConductor.CustomLineItem.LineItemFilterProperty (
        LineItemFilterProperty(..), mkLineItemFilterProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data LineItemFilterProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html>
    LineItemFilterProperty {LineItemFilterProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-attribute>
                            LineItemFilterProperty -> Value Text
attribute :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-matchoption>
                            LineItemFilterProperty -> Value Text
matchOption :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-billingconductor-customlineitem-lineitemfilter.html#cfn-billingconductor-customlineitem-lineitemfilter-values>
                            LineItemFilterProperty -> ValueList Text
values :: (ValueList Prelude.Text)}
  deriving stock (LineItemFilterProperty -> LineItemFilterProperty -> Bool
(LineItemFilterProperty -> LineItemFilterProperty -> Bool)
-> (LineItemFilterProperty -> LineItemFilterProperty -> Bool)
-> Eq LineItemFilterProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemFilterProperty -> LineItemFilterProperty -> Bool
== :: LineItemFilterProperty -> LineItemFilterProperty -> Bool
$c/= :: LineItemFilterProperty -> LineItemFilterProperty -> Bool
/= :: LineItemFilterProperty -> LineItemFilterProperty -> Bool
Prelude.Eq, Int -> LineItemFilterProperty -> ShowS
[LineItemFilterProperty] -> ShowS
LineItemFilterProperty -> String
(Int -> LineItemFilterProperty -> ShowS)
-> (LineItemFilterProperty -> String)
-> ([LineItemFilterProperty] -> ShowS)
-> Show LineItemFilterProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemFilterProperty -> ShowS
showsPrec :: Int -> LineItemFilterProperty -> ShowS
$cshow :: LineItemFilterProperty -> String
show :: LineItemFilterProperty -> String
$cshowList :: [LineItemFilterProperty] -> ShowS
showList :: [LineItemFilterProperty] -> ShowS
Prelude.Show)
mkLineItemFilterProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> ValueList Prelude.Text -> LineItemFilterProperty
mkLineItemFilterProperty :: Value Text
-> Value Text -> ValueList Text -> LineItemFilterProperty
mkLineItemFilterProperty Value Text
attribute Value Text
matchOption ValueList Text
values
  = LineItemFilterProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), attribute :: Value Text
attribute = Value Text
attribute,
       matchOption :: Value Text
matchOption = Value Text
matchOption, values :: ValueList Text
values = ValueList Text
values}
instance ToResourceProperties LineItemFilterProperty where
  toResourceProperties :: LineItemFilterProperty -> ResourceProperties
toResourceProperties LineItemFilterProperty {()
ValueList Text
Value Text
haddock_workaround_ :: LineItemFilterProperty -> ()
attribute :: LineItemFilterProperty -> Value Text
matchOption :: LineItemFilterProperty -> Value Text
values :: LineItemFilterProperty -> ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
values :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::BillingConductor::CustomLineItem.LineItemFilter",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Attribute" 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
attribute,
                       Key
"MatchOption" 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
matchOption, Key
"Values" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
values]}
instance JSON.ToJSON LineItemFilterProperty where
  toJSON :: LineItemFilterProperty -> Value
toJSON LineItemFilterProperty {()
ValueList Text
Value Text
haddock_workaround_ :: LineItemFilterProperty -> ()
attribute :: LineItemFilterProperty -> Value Text
matchOption :: LineItemFilterProperty -> Value Text
values :: LineItemFilterProperty -> ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
values :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Attribute" 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
attribute, Key
"MatchOption" 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
matchOption,
         Key
"Values" Key -> ValueList Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ValueList Text
values]
instance Property "Attribute" LineItemFilterProperty where
  type PropertyType "Attribute" LineItemFilterProperty = Value Prelude.Text
  set :: PropertyType "Attribute" LineItemFilterProperty
-> LineItemFilterProperty -> LineItemFilterProperty
set PropertyType "Attribute" LineItemFilterProperty
newValue LineItemFilterProperty {()
ValueList Text
Value Text
haddock_workaround_ :: LineItemFilterProperty -> ()
attribute :: LineItemFilterProperty -> Value Text
matchOption :: LineItemFilterProperty -> Value Text
values :: LineItemFilterProperty -> ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
values :: ValueList Text
..}
    = LineItemFilterProperty {attribute :: Value Text
attribute = PropertyType "Attribute" LineItemFilterProperty
Value Text
newValue, ()
ValueList Text
Value Text
haddock_workaround_ :: ()
matchOption :: Value Text
values :: ValueList Text
haddock_workaround_ :: ()
matchOption :: Value Text
values :: ValueList Text
..}
instance Property "MatchOption" LineItemFilterProperty where
  type PropertyType "MatchOption" LineItemFilterProperty = Value Prelude.Text
  set :: PropertyType "MatchOption" LineItemFilterProperty
-> LineItemFilterProperty -> LineItemFilterProperty
set PropertyType "MatchOption" LineItemFilterProperty
newValue LineItemFilterProperty {()
ValueList Text
Value Text
haddock_workaround_ :: LineItemFilterProperty -> ()
attribute :: LineItemFilterProperty -> Value Text
matchOption :: LineItemFilterProperty -> Value Text
values :: LineItemFilterProperty -> ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
values :: ValueList Text
..}
    = LineItemFilterProperty {matchOption :: Value Text
matchOption = PropertyType "MatchOption" LineItemFilterProperty
Value Text
newValue, ()
ValueList Text
Value Text
haddock_workaround_ :: ()
attribute :: Value Text
values :: ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
values :: ValueList Text
..}
instance Property "Values" LineItemFilterProperty where
  type PropertyType "Values" LineItemFilterProperty = ValueList Prelude.Text
  set :: PropertyType "Values" LineItemFilterProperty
-> LineItemFilterProperty -> LineItemFilterProperty
set PropertyType "Values" LineItemFilterProperty
newValue LineItemFilterProperty {()
ValueList Text
Value Text
haddock_workaround_ :: LineItemFilterProperty -> ()
attribute :: LineItemFilterProperty -> Value Text
matchOption :: LineItemFilterProperty -> Value Text
values :: LineItemFilterProperty -> ValueList Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
values :: ValueList Text
..}
    = LineItemFilterProperty {values :: ValueList Text
values = PropertyType "Values" LineItemFilterProperty
ValueList Text
newValue, ()
Value Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
haddock_workaround_ :: ()
attribute :: Value Text
matchOption :: Value Text
..}