module Stratosphere.EC2.IPAMPool.SourceResourceProperty (
        SourceResourceProperty(..), mkSourceResourceProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SourceResourceProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html>
    SourceResourceProperty {SourceResourceProperty -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html#cfn-ec2-ipampool-sourceresource-resourceid>
                            SourceResourceProperty -> Value Text
resourceId :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html#cfn-ec2-ipampool-sourceresource-resourceowner>
                            SourceResourceProperty -> Value Text
resourceOwner :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html#cfn-ec2-ipampool-sourceresource-resourceregion>
                            SourceResourceProperty -> Value Text
resourceRegion :: (Value Prelude.Text),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ipampool-sourceresource.html#cfn-ec2-ipampool-sourceresource-resourcetype>
                            SourceResourceProperty -> Value Text
resourceType :: (Value Prelude.Text)}
  deriving stock (SourceResourceProperty -> SourceResourceProperty -> Bool
(SourceResourceProperty -> SourceResourceProperty -> Bool)
-> (SourceResourceProperty -> SourceResourceProperty -> Bool)
-> Eq SourceResourceProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SourceResourceProperty -> SourceResourceProperty -> Bool
== :: SourceResourceProperty -> SourceResourceProperty -> Bool
$c/= :: SourceResourceProperty -> SourceResourceProperty -> Bool
/= :: SourceResourceProperty -> SourceResourceProperty -> Bool
Prelude.Eq, Int -> SourceResourceProperty -> ShowS
[SourceResourceProperty] -> ShowS
SourceResourceProperty -> String
(Int -> SourceResourceProperty -> ShowS)
-> (SourceResourceProperty -> String)
-> ([SourceResourceProperty] -> ShowS)
-> Show SourceResourceProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SourceResourceProperty -> ShowS
showsPrec :: Int -> SourceResourceProperty -> ShowS
$cshow :: SourceResourceProperty -> String
show :: SourceResourceProperty -> String
$cshowList :: [SourceResourceProperty] -> ShowS
showList :: [SourceResourceProperty] -> ShowS
Prelude.Show)
mkSourceResourceProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Text -> SourceResourceProperty
mkSourceResourceProperty :: Value Text
-> Value Text -> Value Text -> Value Text -> SourceResourceProperty
mkSourceResourceProperty
  Value Text
resourceId
  Value Text
resourceOwner
  Value Text
resourceRegion
  Value Text
resourceType
  = SourceResourceProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), resourceId :: Value Text
resourceId = Value Text
resourceId,
       resourceOwner :: Value Text
resourceOwner = Value Text
resourceOwner, resourceRegion :: Value Text
resourceRegion = Value Text
resourceRegion,
       resourceType :: Value Text
resourceType = Value Text
resourceType}
instance ToResourceProperties SourceResourceProperty where
  toResourceProperties :: SourceResourceProperty -> ResourceProperties
toResourceProperties SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EC2::IPAMPool.SourceResource",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ResourceId" 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
resourceId,
                       Key
"ResourceOwner" 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
resourceOwner,
                       Key
"ResourceRegion" 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
resourceRegion,
                       Key
"ResourceType" 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
resourceType]}
instance JSON.ToJSON SourceResourceProperty where
  toJSON :: SourceResourceProperty -> Value
toJSON SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ResourceId" 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
resourceId,
         Key
"ResourceOwner" 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
resourceOwner,
         Key
"ResourceRegion" 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
resourceRegion,
         Key
"ResourceType" 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
resourceType]
instance Property "ResourceId" SourceResourceProperty where
  type PropertyType "ResourceId" SourceResourceProperty = Value Prelude.Text
  set :: PropertyType "ResourceId" SourceResourceProperty
-> SourceResourceProperty -> SourceResourceProperty
set PropertyType "ResourceId" SourceResourceProperty
newValue SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = SourceResourceProperty {resourceId :: Value Text
resourceId = PropertyType "ResourceId" SourceResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
haddock_workaround_ :: ()
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
instance Property "ResourceOwner" SourceResourceProperty where
  type PropertyType "ResourceOwner" SourceResourceProperty = Value Prelude.Text
  set :: PropertyType "ResourceOwner" SourceResourceProperty
-> SourceResourceProperty -> SourceResourceProperty
set PropertyType "ResourceOwner" SourceResourceProperty
newValue SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = SourceResourceProperty {resourceOwner :: Value Text
resourceOwner = PropertyType "ResourceOwner" SourceResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
instance Property "ResourceRegion" SourceResourceProperty where
  type PropertyType "ResourceRegion" SourceResourceProperty = Value Prelude.Text
  set :: PropertyType "ResourceRegion" SourceResourceProperty
-> SourceResourceProperty -> SourceResourceProperty
set PropertyType "ResourceRegion" SourceResourceProperty
newValue SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = SourceResourceProperty {resourceRegion :: Value Text
resourceRegion = PropertyType "ResourceRegion" SourceResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceType :: Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceType :: Value Text
..}
instance Property "ResourceType" SourceResourceProperty where
  type PropertyType "ResourceType" SourceResourceProperty = Value Prelude.Text
  set :: PropertyType "ResourceType" SourceResourceProperty
-> SourceResourceProperty -> SourceResourceProperty
set PropertyType "ResourceType" SourceResourceProperty
newValue SourceResourceProperty {()
Value Text
haddock_workaround_ :: SourceResourceProperty -> ()
resourceId :: SourceResourceProperty -> Value Text
resourceOwner :: SourceResourceProperty -> Value Text
resourceRegion :: SourceResourceProperty -> Value Text
resourceType :: SourceResourceProperty -> Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
resourceType :: Value Text
..}
    = SourceResourceProperty {resourceType :: Value Text
resourceType = PropertyType "ResourceType" SourceResourceProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
haddock_workaround_ :: ()
resourceId :: Value Text
resourceOwner :: Value Text
resourceRegion :: Value Text
..}