stratosphere-0.1.0: library-gen/Stratosphere/Resources/EIPAssociation.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | The AWS::EC2::EIPAssociation resource type associates an Elastic IP
-- address with an Amazon EC2 instance. The Elastic IP address can be an
-- existing Elastic IP address or an Elastic IP address allocated through an
-- AWS::EC2::EIP resource. This type supports updates. For more information
-- about updating stacks, see AWS CloudFormation Stacks Updates.
module Stratosphere.Resources.EIPAssociation where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for EIPAssociation. See 'eipAssociation' for a
-- more convenient constructor.
data EIPAssociation =
EIPAssociation
{ _eIPAssociationAllocationId :: Maybe (Val Text)
, _eIPAssociationEIP :: Maybe (Val Text)
, _eIPAssociationInstanceId :: Maybe (Val Text)
, _eIPAssociationNetworkInterfaceId :: Maybe (Val Text)
, _eIPAssociationPrivateIpAddress :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON EIPAssociation where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }
instance FromJSON EIPAssociation where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 15, omitNothingFields = True }
-- | Constructor for 'EIPAssociation' containing required fields as arguments.
eipAssociation
:: EIPAssociation
eipAssociation =
EIPAssociation
{ _eIPAssociationAllocationId = Nothing
, _eIPAssociationEIP = Nothing
, _eIPAssociationInstanceId = Nothing
, _eIPAssociationNetworkInterfaceId = Nothing
, _eIPAssociationPrivateIpAddress = Nothing
}
-- | Allocation ID for the VPC Elastic IP address you want to associate with
-- an Amazon EC2 instance in your VPC.
eipaAllocationId :: Lens' EIPAssociation (Maybe (Val Text))
eipaAllocationId = lens _eIPAssociationAllocationId (\s a -> s { _eIPAssociationAllocationId = a })
-- | Elastic IP address that you want to associate with the Amazon EC2
-- instance specified by the InstanceId property. You can specify an existing
-- Elastic IP address or a reference to an Elastic IP address allocated with a
-- AWS::EC2::EIP resource.
eipaEIP :: Lens' EIPAssociation (Maybe (Val Text))
eipaEIP = lens _eIPAssociationEIP (\s a -> s { _eIPAssociationEIP = a })
-- | Instance ID of the Amazon EC2 instance that you want to associate with
-- the Elastic IP address specified by the EIP property.
eipaInstanceId :: Lens' EIPAssociation (Maybe (Val Text))
eipaInstanceId = lens _eIPAssociationInstanceId (\s a -> s { _eIPAssociationInstanceId = a })
-- | The ID of the network interface to associate with the Elastic IP address
-- (VPC only).
eipaNetworkInterfaceId :: Lens' EIPAssociation (Maybe (Val Text))
eipaNetworkInterfaceId = lens _eIPAssociationNetworkInterfaceId (\s a -> s { _eIPAssociationNetworkInterfaceId = a })
-- | The private IP address that you want to associate with the Elastic IP
-- address. The private IP address is restricted to the primary and secondary
-- private IP addresses that are associated with the network interface. By
-- default, the private IP address that is associated with the EIP is the
-- primary private IP address of the network interface.
eipaPrivateIpAddress :: Lens' EIPAssociation (Maybe (Val Text))
eipaPrivateIpAddress = lens _eIPAssociationPrivateIpAddress (\s a -> s { _eIPAssociationPrivateIpAddress = a })