module Stratosphere.OSIS.Pipeline.VpcAttachmentOptionsProperty (
        VpcAttachmentOptionsProperty(..), mkVpcAttachmentOptionsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data VpcAttachmentOptionsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcattachmentoptions.html>
    VpcAttachmentOptionsProperty {VpcAttachmentOptionsProperty -> ()
haddock_workaround_ :: (),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcattachmentoptions.html#cfn-osis-pipeline-vpcattachmentoptions-attachtovpc>
                                  VpcAttachmentOptionsProperty -> Value Bool
attachToVpc :: (Value Prelude.Bool),
                                  -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-osis-pipeline-vpcattachmentoptions.html#cfn-osis-pipeline-vpcattachmentoptions-cidrblock>
                                  VpcAttachmentOptionsProperty -> Value Text
cidrBlock :: (Value Prelude.Text)}
  deriving stock (VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> Bool
(VpcAttachmentOptionsProperty
 -> VpcAttachmentOptionsProperty -> Bool)
-> (VpcAttachmentOptionsProperty
    -> VpcAttachmentOptionsProperty -> Bool)
-> Eq VpcAttachmentOptionsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> Bool
== :: VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> Bool
$c/= :: VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> Bool
/= :: VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> Bool
Prelude.Eq, Int -> VpcAttachmentOptionsProperty -> ShowS
[VpcAttachmentOptionsProperty] -> ShowS
VpcAttachmentOptionsProperty -> String
(Int -> VpcAttachmentOptionsProperty -> ShowS)
-> (VpcAttachmentOptionsProperty -> String)
-> ([VpcAttachmentOptionsProperty] -> ShowS)
-> Show VpcAttachmentOptionsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VpcAttachmentOptionsProperty -> ShowS
showsPrec :: Int -> VpcAttachmentOptionsProperty -> ShowS
$cshow :: VpcAttachmentOptionsProperty -> String
show :: VpcAttachmentOptionsProperty -> String
$cshowList :: [VpcAttachmentOptionsProperty] -> ShowS
showList :: [VpcAttachmentOptionsProperty] -> ShowS
Prelude.Show)
mkVpcAttachmentOptionsProperty ::
  Value Prelude.Bool
  -> Value Prelude.Text -> VpcAttachmentOptionsProperty
mkVpcAttachmentOptionsProperty :: Value Bool -> Value Text -> VpcAttachmentOptionsProperty
mkVpcAttachmentOptionsProperty Value Bool
attachToVpc Value Text
cidrBlock
  = VpcAttachmentOptionsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), attachToVpc :: Value Bool
attachToVpc = Value Bool
attachToVpc,
       cidrBlock :: Value Text
cidrBlock = Value Text
cidrBlock}
instance ToResourceProperties VpcAttachmentOptionsProperty where
  toResourceProperties :: VpcAttachmentOptionsProperty -> ResourceProperties
toResourceProperties VpcAttachmentOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: VpcAttachmentOptionsProperty -> ()
attachToVpc :: VpcAttachmentOptionsProperty -> Value Bool
cidrBlock :: VpcAttachmentOptionsProperty -> Value Text
haddock_workaround_ :: ()
attachToVpc :: Value Bool
cidrBlock :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::OSIS::Pipeline.VpcAttachmentOptions",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AttachToVpc" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
attachToVpc,
                       Key
"CidrBlock" 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
cidrBlock]}
instance JSON.ToJSON VpcAttachmentOptionsProperty where
  toJSON :: VpcAttachmentOptionsProperty -> Value
toJSON VpcAttachmentOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: VpcAttachmentOptionsProperty -> ()
attachToVpc :: VpcAttachmentOptionsProperty -> Value Bool
cidrBlock :: VpcAttachmentOptionsProperty -> Value Text
haddock_workaround_ :: ()
attachToVpc :: Value Bool
cidrBlock :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AttachToVpc" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
attachToVpc, Key
"CidrBlock" 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
cidrBlock]
instance Property "AttachToVpc" VpcAttachmentOptionsProperty where
  type PropertyType "AttachToVpc" VpcAttachmentOptionsProperty = Value Prelude.Bool
  set :: PropertyType "AttachToVpc" VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> VpcAttachmentOptionsProperty
set PropertyType "AttachToVpc" VpcAttachmentOptionsProperty
newValue VpcAttachmentOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: VpcAttachmentOptionsProperty -> ()
attachToVpc :: VpcAttachmentOptionsProperty -> Value Bool
cidrBlock :: VpcAttachmentOptionsProperty -> Value Text
haddock_workaround_ :: ()
attachToVpc :: Value Bool
cidrBlock :: Value Text
..}
    = VpcAttachmentOptionsProperty {attachToVpc :: Value Bool
attachToVpc = PropertyType "AttachToVpc" VpcAttachmentOptionsProperty
Value Bool
newValue, ()
Value Text
haddock_workaround_ :: ()
cidrBlock :: Value Text
haddock_workaround_ :: ()
cidrBlock :: Value Text
..}
instance Property "CidrBlock" VpcAttachmentOptionsProperty where
  type PropertyType "CidrBlock" VpcAttachmentOptionsProperty = Value Prelude.Text
  set :: PropertyType "CidrBlock" VpcAttachmentOptionsProperty
-> VpcAttachmentOptionsProperty -> VpcAttachmentOptionsProperty
set PropertyType "CidrBlock" VpcAttachmentOptionsProperty
newValue VpcAttachmentOptionsProperty {()
Value Bool
Value Text
haddock_workaround_ :: VpcAttachmentOptionsProperty -> ()
attachToVpc :: VpcAttachmentOptionsProperty -> Value Bool
cidrBlock :: VpcAttachmentOptionsProperty -> Value Text
haddock_workaround_ :: ()
attachToVpc :: Value Bool
cidrBlock :: Value Text
..}
    = VpcAttachmentOptionsProperty {cidrBlock :: Value Text
cidrBlock = PropertyType "CidrBlock" VpcAttachmentOptionsProperty
Value Text
newValue, ()
Value Bool
haddock_workaround_ :: ()
attachToVpc :: Value Bool
haddock_workaround_ :: ()
attachToVpc :: Value Bool
..}