{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html module Stratosphere.Resources.EC2VPCDHCPOptionsAssociation where import Control.Lens hiding ((.=)) import Data.Aeson import Data.Maybe (catMaybes) import Data.Monoid (mempty) import Data.Text import Stratosphere.Values -- | Full data type definition for EC2VPCDHCPOptionsAssociation. See -- 'ec2VPCDHCPOptionsAssociation' for a more convenient constructor. data EC2VPCDHCPOptionsAssociation = EC2VPCDHCPOptionsAssociation { _eC2VPCDHCPOptionsAssociationDhcpOptionsId :: Val Text , _eC2VPCDHCPOptionsAssociationVpcId :: Val Text } deriving (Show, Eq) instance ToJSON EC2VPCDHCPOptionsAssociation where toJSON EC2VPCDHCPOptionsAssociation{..} = object $ catMaybes [ Just ("DhcpOptionsId" .= _eC2VPCDHCPOptionsAssociationDhcpOptionsId) , Just ("VpcId" .= _eC2VPCDHCPOptionsAssociationVpcId) ] instance FromJSON EC2VPCDHCPOptionsAssociation where parseJSON (Object obj) = EC2VPCDHCPOptionsAssociation <$> obj .: "DhcpOptionsId" <*> obj .: "VpcId" parseJSON _ = mempty -- | Constructor for 'EC2VPCDHCPOptionsAssociation' containing required fields -- as arguments. ec2VPCDHCPOptionsAssociation :: Val Text -- ^ 'ecvpcdhcpoaDhcpOptionsId' -> Val Text -- ^ 'ecvpcdhcpoaVpcId' -> EC2VPCDHCPOptionsAssociation ec2VPCDHCPOptionsAssociation dhcpOptionsIdarg vpcIdarg = EC2VPCDHCPOptionsAssociation { _eC2VPCDHCPOptionsAssociationDhcpOptionsId = dhcpOptionsIdarg , _eC2VPCDHCPOptionsAssociationVpcId = vpcIdarg } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-dhcpoptionsid ecvpcdhcpoaDhcpOptionsId :: Lens' EC2VPCDHCPOptionsAssociation (Val Text) ecvpcdhcpoaDhcpOptionsId = lens _eC2VPCDHCPOptionsAssociationDhcpOptionsId (\s a -> s { _eC2VPCDHCPOptionsAssociationDhcpOptionsId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-dhcp-options-assoc.html#cfn-ec2-vpcdhcpoptionsassociation-vpcid ecvpcdhcpoaVpcId :: Lens' EC2VPCDHCPOptionsAssociation (Val Text) ecvpcdhcpoaVpcId = lens _eC2VPCDHCPOptionsAssociationVpcId (\s a -> s { _eC2VPCDHCPOptionsAssociationVpcId = a })