module Stratosphere.EC2.NetworkInterfacePermission (
        NetworkInterfacePermission(..), mkNetworkInterfacePermission
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data NetworkInterfacePermission
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html>
    NetworkInterfacePermission {NetworkInterfacePermission -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-awsaccountid>
                                NetworkInterfacePermission -> Value Text
awsAccountId :: (Value Prelude.Text),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-networkinterfaceid>
                                NetworkInterfacePermission -> Value Text
networkInterfaceId :: (Value Prelude.Text),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html#cfn-ec2-networkinterfacepermission-permission>
                                NetworkInterfacePermission -> Value Text
permission :: (Value Prelude.Text)}
  deriving stock (NetworkInterfacePermission -> NetworkInterfacePermission -> Bool
(NetworkInterfacePermission -> NetworkInterfacePermission -> Bool)
-> (NetworkInterfacePermission
    -> NetworkInterfacePermission -> Bool)
-> Eq NetworkInterfacePermission
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkInterfacePermission -> NetworkInterfacePermission -> Bool
== :: NetworkInterfacePermission -> NetworkInterfacePermission -> Bool
$c/= :: NetworkInterfacePermission -> NetworkInterfacePermission -> Bool
/= :: NetworkInterfacePermission -> NetworkInterfacePermission -> Bool
Prelude.Eq, Int -> NetworkInterfacePermission -> ShowS
[NetworkInterfacePermission] -> ShowS
NetworkInterfacePermission -> String
(Int -> NetworkInterfacePermission -> ShowS)
-> (NetworkInterfacePermission -> String)
-> ([NetworkInterfacePermission] -> ShowS)
-> Show NetworkInterfacePermission
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkInterfacePermission -> ShowS
showsPrec :: Int -> NetworkInterfacePermission -> ShowS
$cshow :: NetworkInterfacePermission -> String
show :: NetworkInterfacePermission -> String
$cshowList :: [NetworkInterfacePermission] -> ShowS
showList :: [NetworkInterfacePermission] -> ShowS
Prelude.Show)
mkNetworkInterfacePermission ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> NetworkInterfacePermission
mkNetworkInterfacePermission :: Value Text
-> Value Text -> Value Text -> NetworkInterfacePermission
mkNetworkInterfacePermission
  Value Text
awsAccountId
  Value Text
networkInterfaceId
  Value Text
permission
  = NetworkInterfacePermission
      {haddock_workaround_ :: ()
haddock_workaround_ = (), awsAccountId :: Value Text
awsAccountId = Value Text
awsAccountId,
       networkInterfaceId :: Value Text
networkInterfaceId = Value Text
networkInterfaceId, permission :: Value Text
permission = Value Text
permission}
instance ToResourceProperties NetworkInterfacePermission where
  toResourceProperties :: NetworkInterfacePermission -> ResourceProperties
toResourceProperties NetworkInterfacePermission {()
Value Text
haddock_workaround_ :: NetworkInterfacePermission -> ()
awsAccountId :: NetworkInterfacePermission -> Value Text
networkInterfaceId :: NetworkInterfacePermission -> Value Text
permission :: NetworkInterfacePermission -> Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
permission :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::EC2::NetworkInterfacePermission",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AwsAccountId" 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
awsAccountId,
                       Key
"NetworkInterfaceId" 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
networkInterfaceId,
                       Key
"Permission" 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
permission]}
instance JSON.ToJSON NetworkInterfacePermission where
  toJSON :: NetworkInterfacePermission -> Value
toJSON NetworkInterfacePermission {()
Value Text
haddock_workaround_ :: NetworkInterfacePermission -> ()
awsAccountId :: NetworkInterfacePermission -> Value Text
networkInterfaceId :: NetworkInterfacePermission -> Value Text
permission :: NetworkInterfacePermission -> Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
permission :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AwsAccountId" 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
awsAccountId,
         Key
"NetworkInterfaceId" 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
networkInterfaceId,
         Key
"Permission" 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
permission]
instance Property "AwsAccountId" NetworkInterfacePermission where
  type PropertyType "AwsAccountId" NetworkInterfacePermission = Value Prelude.Text
  set :: PropertyType "AwsAccountId" NetworkInterfacePermission
-> NetworkInterfacePermission -> NetworkInterfacePermission
set PropertyType "AwsAccountId" NetworkInterfacePermission
newValue NetworkInterfacePermission {()
Value Text
haddock_workaround_ :: NetworkInterfacePermission -> ()
awsAccountId :: NetworkInterfacePermission -> Value Text
networkInterfaceId :: NetworkInterfacePermission -> Value Text
permission :: NetworkInterfacePermission -> Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
permission :: Value Text
..}
    = NetworkInterfacePermission {awsAccountId :: Value Text
awsAccountId = PropertyType "AwsAccountId" NetworkInterfacePermission
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
networkInterfaceId :: Value Text
permission :: Value Text
haddock_workaround_ :: ()
networkInterfaceId :: Value Text
permission :: Value Text
..}
instance Property "NetworkInterfaceId" NetworkInterfacePermission where
  type PropertyType "NetworkInterfaceId" NetworkInterfacePermission = Value Prelude.Text
  set :: PropertyType "NetworkInterfaceId" NetworkInterfacePermission
-> NetworkInterfacePermission -> NetworkInterfacePermission
set PropertyType "NetworkInterfaceId" NetworkInterfacePermission
newValue NetworkInterfacePermission {()
Value Text
haddock_workaround_ :: NetworkInterfacePermission -> ()
awsAccountId :: NetworkInterfacePermission -> Value Text
networkInterfaceId :: NetworkInterfacePermission -> Value Text
permission :: NetworkInterfacePermission -> Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
permission :: Value Text
..}
    = NetworkInterfacePermission {networkInterfaceId :: Value Text
networkInterfaceId = PropertyType "NetworkInterfaceId" NetworkInterfacePermission
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
permission :: Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
permission :: Value Text
..}
instance Property "Permission" NetworkInterfacePermission where
  type PropertyType "Permission" NetworkInterfacePermission = Value Prelude.Text
  set :: PropertyType "Permission" NetworkInterfacePermission
-> NetworkInterfacePermission -> NetworkInterfacePermission
set PropertyType "Permission" NetworkInterfacePermission
newValue NetworkInterfacePermission {()
Value Text
haddock_workaround_ :: NetworkInterfacePermission -> ()
awsAccountId :: NetworkInterfacePermission -> Value Text
networkInterfaceId :: NetworkInterfacePermission -> Value Text
permission :: NetworkInterfacePermission -> Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
permission :: Value Text
..}
    = NetworkInterfacePermission {permission :: Value Text
permission = PropertyType "Permission" NetworkInterfacePermission
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
haddock_workaround_ :: ()
awsAccountId :: Value Text
networkInterfaceId :: Value Text
..}