module Stratosphere.ElasticBeanstalk.ApplicationVersion.SourceBundleProperty (
        SourceBundleProperty(..), mkSourceBundleProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SourceBundleProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html>
    SourceBundleProperty {SourceBundleProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html#cfn-elasticbeanstalk-applicationversion-sourcebundle-s3bucket>
                          SourceBundleProperty -> Value Text
s3Bucket :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-applicationversion-sourcebundle.html#cfn-elasticbeanstalk-applicationversion-sourcebundle-s3key>
                          SourceBundleProperty -> Value Text
s3Key :: (Value Prelude.Text)}
  deriving stock (SourceBundleProperty -> SourceBundleProperty -> Bool
(SourceBundleProperty -> SourceBundleProperty -> Bool)
-> (SourceBundleProperty -> SourceBundleProperty -> Bool)
-> Eq SourceBundleProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SourceBundleProperty -> SourceBundleProperty -> Bool
== :: SourceBundleProperty -> SourceBundleProperty -> Bool
$c/= :: SourceBundleProperty -> SourceBundleProperty -> Bool
/= :: SourceBundleProperty -> SourceBundleProperty -> Bool
Prelude.Eq, Int -> SourceBundleProperty -> ShowS
[SourceBundleProperty] -> ShowS
SourceBundleProperty -> String
(Int -> SourceBundleProperty -> ShowS)
-> (SourceBundleProperty -> String)
-> ([SourceBundleProperty] -> ShowS)
-> Show SourceBundleProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SourceBundleProperty -> ShowS
showsPrec :: Int -> SourceBundleProperty -> ShowS
$cshow :: SourceBundleProperty -> String
show :: SourceBundleProperty -> String
$cshowList :: [SourceBundleProperty] -> ShowS
showList :: [SourceBundleProperty] -> ShowS
Prelude.Show)
mkSourceBundleProperty ::
  Value Prelude.Text -> Value Prelude.Text -> SourceBundleProperty
mkSourceBundleProperty :: Value Text -> Value Text -> SourceBundleProperty
mkSourceBundleProperty Value Text
s3Bucket Value Text
s3Key
  = SourceBundleProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), s3Bucket :: Value Text
s3Bucket = Value Text
s3Bucket, s3Key :: Value Text
s3Key = Value Text
s3Key}
instance ToResourceProperties SourceBundleProperty where
  toResourceProperties :: SourceBundleProperty -> ResourceProperties
toResourceProperties SourceBundleProperty {()
Value Text
haddock_workaround_ :: SourceBundleProperty -> ()
s3Bucket :: SourceBundleProperty -> Value Text
s3Key :: SourceBundleProperty -> Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"S3Bucket" 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
s3Bucket, Key
"S3Key" 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
s3Key]}
instance JSON.ToJSON SourceBundleProperty where
  toJSON :: SourceBundleProperty -> Value
toJSON SourceBundleProperty {()
Value Text
haddock_workaround_ :: SourceBundleProperty -> ()
s3Bucket :: SourceBundleProperty -> Value Text
s3Key :: SourceBundleProperty -> Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"S3Bucket" 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
s3Bucket, Key
"S3Key" 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
s3Key]
instance Property "S3Bucket" SourceBundleProperty where
  type PropertyType "S3Bucket" SourceBundleProperty = Value Prelude.Text
  set :: PropertyType "S3Bucket" SourceBundleProperty
-> SourceBundleProperty -> SourceBundleProperty
set PropertyType "S3Bucket" SourceBundleProperty
newValue SourceBundleProperty {()
Value Text
haddock_workaround_ :: SourceBundleProperty -> ()
s3Bucket :: SourceBundleProperty -> Value Text
s3Key :: SourceBundleProperty -> Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = SourceBundleProperty {s3Bucket :: Value Text
s3Bucket = PropertyType "S3Bucket" SourceBundleProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
s3Key :: Value Text
haddock_workaround_ :: ()
s3Key :: Value Text
..}
instance Property "S3Key" SourceBundleProperty where
  type PropertyType "S3Key" SourceBundleProperty = Value Prelude.Text
  set :: PropertyType "S3Key" SourceBundleProperty
-> SourceBundleProperty -> SourceBundleProperty
set PropertyType "S3Key" SourceBundleProperty
newValue SourceBundleProperty {()
Value Text
haddock_workaround_ :: SourceBundleProperty -> ()
s3Bucket :: SourceBundleProperty -> Value Text
s3Key :: SourceBundleProperty -> Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
s3Key :: Value Text
..}
    = SourceBundleProperty {s3Key :: Value Text
s3Key = PropertyType "S3Key" SourceBundleProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
haddock_workaround_ :: ()
s3Bucket :: Value Text
..}