module Stratosphere.CloudFront.ResponseHeadersPolicy.AccessControlExposeHeadersProperty (
        AccessControlExposeHeadersProperty(..),
        mkAccessControlExposeHeadersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AccessControlExposeHeadersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html>
    AccessControlExposeHeadersProperty {AccessControlExposeHeadersProperty -> ()
haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-accesscontrolexposeheaders.html#cfn-cloudfront-responseheaderspolicy-accesscontrolexposeheaders-items>
                                        AccessControlExposeHeadersProperty -> ValueList Text
items :: (ValueList Prelude.Text)}
  deriving stock (AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty -> Bool
(AccessControlExposeHeadersProperty
 -> AccessControlExposeHeadersProperty -> Bool)
-> (AccessControlExposeHeadersProperty
    -> AccessControlExposeHeadersProperty -> Bool)
-> Eq AccessControlExposeHeadersProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty -> Bool
== :: AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty -> Bool
$c/= :: AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty -> Bool
/= :: AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty -> Bool
Prelude.Eq, Int -> AccessControlExposeHeadersProperty -> ShowS
[AccessControlExposeHeadersProperty] -> ShowS
AccessControlExposeHeadersProperty -> String
(Int -> AccessControlExposeHeadersProperty -> ShowS)
-> (AccessControlExposeHeadersProperty -> String)
-> ([AccessControlExposeHeadersProperty] -> ShowS)
-> Show AccessControlExposeHeadersProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessControlExposeHeadersProperty -> ShowS
showsPrec :: Int -> AccessControlExposeHeadersProperty -> ShowS
$cshow :: AccessControlExposeHeadersProperty -> String
show :: AccessControlExposeHeadersProperty -> String
$cshowList :: [AccessControlExposeHeadersProperty] -> ShowS
showList :: [AccessControlExposeHeadersProperty] -> ShowS
Prelude.Show)
mkAccessControlExposeHeadersProperty ::
  ValueList Prelude.Text -> AccessControlExposeHeadersProperty
mkAccessControlExposeHeadersProperty :: ValueList Text -> AccessControlExposeHeadersProperty
mkAccessControlExposeHeadersProperty ValueList Text
items
  = AccessControlExposeHeadersProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), items :: ValueList Text
items = ValueList Text
items}
instance ToResourceProperties AccessControlExposeHeadersProperty where
  toResourceProperties :: AccessControlExposeHeadersProperty -> ResourceProperties
toResourceProperties AccessControlExposeHeadersProperty {()
ValueList Text
haddock_workaround_ :: AccessControlExposeHeadersProperty -> ()
items :: AccessControlExposeHeadersProperty -> ValueList Text
haddock_workaround_ :: ()
items :: ValueList Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False, properties :: Object
properties = [Key
"Items" 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
items]}
instance JSON.ToJSON AccessControlExposeHeadersProperty where
  toJSON :: AccessControlExposeHeadersProperty -> Value
toJSON AccessControlExposeHeadersProperty {()
ValueList Text
haddock_workaround_ :: AccessControlExposeHeadersProperty -> ()
items :: AccessControlExposeHeadersProperty -> ValueList Text
haddock_workaround_ :: ()
items :: ValueList Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Items" 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
items]
instance Property "Items" AccessControlExposeHeadersProperty where
  type PropertyType "Items" AccessControlExposeHeadersProperty = ValueList Prelude.Text
  set :: PropertyType "Items" AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty
-> AccessControlExposeHeadersProperty
set PropertyType "Items" AccessControlExposeHeadersProperty
newValue AccessControlExposeHeadersProperty {()
ValueList Text
haddock_workaround_ :: AccessControlExposeHeadersProperty -> ()
items :: AccessControlExposeHeadersProperty -> ValueList Text
haddock_workaround_ :: ()
items :: ValueList Text
..}
    = AccessControlExposeHeadersProperty {items :: ValueList Text
items = PropertyType "Items" AccessControlExposeHeadersProperty
ValueList Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}