{-# 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.ReplaceRoute -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Replaces an existing route within a route table in a VPC. You must provide only one of the following: Internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, or network interface. -- -- For more information about route tables, see in the /Amazon Virtual Private Cloud User Guide/. module Network.AWS.EC2.ReplaceRoute ( -- * Creating a Request replaceRoute , ReplaceRoute -- * Request Lenses , rrVPCPeeringConnectionId , rrInstanceId , rrNatGatewayId , rrNetworkInterfaceId , rrGatewayId , rrDryRun , rrRouteTableId , rrDestinationCIdRBlock -- * Destructuring the Response , replaceRouteResponse , ReplaceRouteResponse ) 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 -- | Contains the parameters for ReplaceRoute. -- -- /See:/ 'replaceRoute' smart constructor. data ReplaceRoute = ReplaceRoute' { _rrVPCPeeringConnectionId :: !(Maybe Text) , _rrInstanceId :: !(Maybe Text) , _rrNatGatewayId :: !(Maybe Text) , _rrNetworkInterfaceId :: !(Maybe Text) , _rrGatewayId :: !(Maybe Text) , _rrDryRun :: !(Maybe Bool) , _rrRouteTableId :: !Text , _rrDestinationCIdRBlock :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ReplaceRoute' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'rrVPCPeeringConnectionId' -- -- * 'rrInstanceId' -- -- * 'rrNatGatewayId' -- -- * 'rrNetworkInterfaceId' -- -- * 'rrGatewayId' -- -- * 'rrDryRun' -- -- * 'rrRouteTableId' -- -- * 'rrDestinationCIdRBlock' replaceRoute :: Text -- ^ 'rrRouteTableId' -> Text -- ^ 'rrDestinationCIdRBlock' -> ReplaceRoute replaceRoute pRouteTableId_ pDestinationCIdRBlock_ = ReplaceRoute' { _rrVPCPeeringConnectionId = Nothing , _rrInstanceId = Nothing , _rrNatGatewayId = Nothing , _rrNetworkInterfaceId = Nothing , _rrGatewayId = Nothing , _rrDryRun = Nothing , _rrRouteTableId = pRouteTableId_ , _rrDestinationCIdRBlock = pDestinationCIdRBlock_ } -- | The ID of a VPC peering connection. rrVPCPeeringConnectionId :: Lens' ReplaceRoute (Maybe Text) rrVPCPeeringConnectionId = lens _rrVPCPeeringConnectionId (\ s a -> s{_rrVPCPeeringConnectionId = a}); -- | The ID of a NAT instance in your VPC. rrInstanceId :: Lens' ReplaceRoute (Maybe Text) rrInstanceId = lens _rrInstanceId (\ s a -> s{_rrInstanceId = a}); -- | The ID of a NAT gateway. rrNatGatewayId :: Lens' ReplaceRoute (Maybe Text) rrNatGatewayId = lens _rrNatGatewayId (\ s a -> s{_rrNatGatewayId = a}); -- | The ID of a network interface. rrNetworkInterfaceId :: Lens' ReplaceRoute (Maybe Text) rrNetworkInterfaceId = lens _rrNetworkInterfaceId (\ s a -> s{_rrNetworkInterfaceId = a}); -- | The ID of an Internet gateway or virtual private gateway. rrGatewayId :: Lens' ReplaceRoute (Maybe Text) rrGatewayId = lens _rrGatewayId (\ s a -> s{_rrGatewayId = a}); -- | Checks whether you have the required permissions for the action, 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'. rrDryRun :: Lens' ReplaceRoute (Maybe Bool) rrDryRun = lens _rrDryRun (\ s a -> s{_rrDryRun = a}); -- | The ID of the route table. rrRouteTableId :: Lens' ReplaceRoute Text rrRouteTableId = lens _rrRouteTableId (\ s a -> s{_rrRouteTableId = a}); -- | The CIDR address block used for the destination match. The value you provide must match the CIDR of an existing route in the table. rrDestinationCIdRBlock :: Lens' ReplaceRoute Text rrDestinationCIdRBlock = lens _rrDestinationCIdRBlock (\ s a -> s{_rrDestinationCIdRBlock = a}); instance AWSRequest ReplaceRoute where type Rs ReplaceRoute = ReplaceRouteResponse request = postQuery ec2 response = receiveNull ReplaceRouteResponse' instance Hashable ReplaceRoute instance NFData ReplaceRoute instance ToHeaders ReplaceRoute where toHeaders = const mempty instance ToPath ReplaceRoute where toPath = const "/" instance ToQuery ReplaceRoute where toQuery ReplaceRoute'{..} = mconcat ["Action" =: ("ReplaceRoute" :: ByteString), "Version" =: ("2016-04-01" :: ByteString), "VpcPeeringConnectionId" =: _rrVPCPeeringConnectionId, "InstanceId" =: _rrInstanceId, "NatGatewayId" =: _rrNatGatewayId, "NetworkInterfaceId" =: _rrNetworkInterfaceId, "GatewayId" =: _rrGatewayId, "DryRun" =: _rrDryRun, "RouteTableId" =: _rrRouteTableId, "DestinationCidrBlock" =: _rrDestinationCIdRBlock] -- | /See:/ 'replaceRouteResponse' smart constructor. data ReplaceRouteResponse = ReplaceRouteResponse' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ReplaceRouteResponse' with the minimum fields required to make a request. -- replaceRouteResponse :: ReplaceRouteResponse replaceRouteResponse = ReplaceRouteResponse' instance NFData ReplaceRouteResponse