amazonka-ec2-1.5.0: gen/Network/AWS/EC2/ModifyVPCPeeringConnectionOptions.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.EC2.ModifyVPCPeeringConnectionOptions
-- Copyright : (c) 2013-2017 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:
--
--
-- * Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.
--
-- * Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.
--
-- * Enable/disable a local VPC to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.
--
--
--
-- If the peered VPCs are in different accounts, each owner must initiate a separate request to modify the peering connection options, depending on whether their VPC was the requester or accepter for the VPC peering connection. If the peered VPCs are in the same account, you can modify the requester and accepter options in the same request. To confirm which VPC is the accepter and requester for a VPC peering connection, use the 'DescribeVpcPeeringConnections' command.
--
module Network.AWS.EC2.ModifyVPCPeeringConnectionOptions
(
-- * Creating a Request
modifyVPCPeeringConnectionOptions
, ModifyVPCPeeringConnectionOptions
-- * Request Lenses
, mvpcoRequesterPeeringConnectionOptions
, mvpcoAccepterPeeringConnectionOptions
, mvpcoDryRun
, mvpcoVPCPeeringConnectionId
-- * Destructuring the Response
, modifyVPCPeeringConnectionOptionsResponse
, ModifyVPCPeeringConnectionOptionsResponse
-- * Response Lenses
, mvpcorsRequesterPeeringConnectionOptions
, mvpcorsAccepterPeeringConnectionOptions
, mvpcorsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'modifyVPCPeeringConnectionOptions' smart constructor.
data ModifyVPCPeeringConnectionOptions = ModifyVPCPeeringConnectionOptions'
{ _mvpcoRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptionsRequest)
, _mvpcoAccepterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptionsRequest)
, _mvpcoDryRun :: !(Maybe Bool)
, _mvpcoVPCPeeringConnectionId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'ModifyVPCPeeringConnectionOptions' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mvpcoRequesterPeeringConnectionOptions' - The VPC peering connection options for the requester VPC.
--
-- * 'mvpcoAccepterPeeringConnectionOptions' - The VPC peering connection options for the accepter VPC.
--
-- * 'mvpcoDryRun' - Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
--
-- * 'mvpcoVPCPeeringConnectionId' - The ID of the VPC peering connection.
modifyVPCPeeringConnectionOptions
:: Text -- ^ 'mvpcoVPCPeeringConnectionId'
-> ModifyVPCPeeringConnectionOptions
modifyVPCPeeringConnectionOptions pVPCPeeringConnectionId_ =
ModifyVPCPeeringConnectionOptions'
{ _mvpcoRequesterPeeringConnectionOptions = Nothing
, _mvpcoAccepterPeeringConnectionOptions = Nothing
, _mvpcoDryRun = Nothing
, _mvpcoVPCPeeringConnectionId = pVPCPeeringConnectionId_
}
-- | The VPC peering connection options for the requester VPC.
mvpcoRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptions (Maybe PeeringConnectionOptionsRequest)
mvpcoRequesterPeeringConnectionOptions = lens _mvpcoRequesterPeeringConnectionOptions (\ s a -> s{_mvpcoRequesterPeeringConnectionOptions = a});
-- | The VPC peering connection options for the accepter VPC.
mvpcoAccepterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptions (Maybe PeeringConnectionOptionsRequest)
mvpcoAccepterPeeringConnectionOptions = lens _mvpcoAccepterPeeringConnectionOptions (\ s a -> s{_mvpcoAccepterPeeringConnectionOptions = a});
-- | Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
mvpcoDryRun :: Lens' ModifyVPCPeeringConnectionOptions (Maybe Bool)
mvpcoDryRun = lens _mvpcoDryRun (\ s a -> s{_mvpcoDryRun = a});
-- | The ID of the VPC peering connection.
mvpcoVPCPeeringConnectionId :: Lens' ModifyVPCPeeringConnectionOptions Text
mvpcoVPCPeeringConnectionId = lens _mvpcoVPCPeeringConnectionId (\ s a -> s{_mvpcoVPCPeeringConnectionId = a});
instance AWSRequest ModifyVPCPeeringConnectionOptions
where
type Rs ModifyVPCPeeringConnectionOptions =
ModifyVPCPeeringConnectionOptionsResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
ModifyVPCPeeringConnectionOptionsResponse' <$>
(x .@? "requesterPeeringConnectionOptions") <*>
(x .@? "accepterPeeringConnectionOptions")
<*> (pure (fromEnum s)))
instance Hashable ModifyVPCPeeringConnectionOptions
where
instance NFData ModifyVPCPeeringConnectionOptions
where
instance ToHeaders ModifyVPCPeeringConnectionOptions
where
toHeaders = const mempty
instance ToPath ModifyVPCPeeringConnectionOptions
where
toPath = const "/"
instance ToQuery ModifyVPCPeeringConnectionOptions
where
toQuery ModifyVPCPeeringConnectionOptions'{..}
= mconcat
["Action" =:
("ModifyVpcPeeringConnectionOptions" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"RequesterPeeringConnectionOptions" =:
_mvpcoRequesterPeeringConnectionOptions,
"AccepterPeeringConnectionOptions" =:
_mvpcoAccepterPeeringConnectionOptions,
"DryRun" =: _mvpcoDryRun,
"VpcPeeringConnectionId" =:
_mvpcoVPCPeeringConnectionId]
-- | /See:/ 'modifyVPCPeeringConnectionOptionsResponse' smart constructor.
data ModifyVPCPeeringConnectionOptionsResponse = ModifyVPCPeeringConnectionOptionsResponse'
{ _mvpcorsRequesterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptions)
, _mvpcorsAccepterPeeringConnectionOptions :: !(Maybe PeeringConnectionOptions)
, _mvpcorsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'ModifyVPCPeeringConnectionOptionsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mvpcorsRequesterPeeringConnectionOptions' - Information about the VPC peering connection options for the requester VPC.
--
-- * 'mvpcorsAccepterPeeringConnectionOptions' - Information about the VPC peering connection options for the accepter VPC.
--
-- * 'mvpcorsResponseStatus' - -- | The response status code.
modifyVPCPeeringConnectionOptionsResponse
:: Int -- ^ 'mvpcorsResponseStatus'
-> ModifyVPCPeeringConnectionOptionsResponse
modifyVPCPeeringConnectionOptionsResponse pResponseStatus_ =
ModifyVPCPeeringConnectionOptionsResponse'
{ _mvpcorsRequesterPeeringConnectionOptions = Nothing
, _mvpcorsAccepterPeeringConnectionOptions = Nothing
, _mvpcorsResponseStatus = pResponseStatus_
}
-- | Information about the VPC peering connection options for the requester VPC.
mvpcorsRequesterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptionsResponse (Maybe PeeringConnectionOptions)
mvpcorsRequesterPeeringConnectionOptions = lens _mvpcorsRequesterPeeringConnectionOptions (\ s a -> s{_mvpcorsRequesterPeeringConnectionOptions = a});
-- | Information about the VPC peering connection options for the accepter VPC.
mvpcorsAccepterPeeringConnectionOptions :: Lens' ModifyVPCPeeringConnectionOptionsResponse (Maybe PeeringConnectionOptions)
mvpcorsAccepterPeeringConnectionOptions = lens _mvpcorsAccepterPeeringConnectionOptions (\ s a -> s{_mvpcorsAccepterPeeringConnectionOptions = a});
-- | -- | The response status code.
mvpcorsResponseStatus :: Lens' ModifyVPCPeeringConnectionOptionsResponse Int
mvpcorsResponseStatus = lens _mvpcorsResponseStatus (\ s a -> s{_mvpcorsResponseStatus = a});
instance NFData
ModifyVPCPeeringConnectionOptionsResponse
where