{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.EC2.ModifyVpcEndpoint -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Modifies attributes of a specified VPC endpoint. You can modify the policy -- associated with the endpoint, and you can add and remove route tables -- associated with the endpoint. -- -- module Network.AWS.EC2.ModifyVpcEndpoint ( -- * Request ModifyVpcEndpoint -- ** Request constructor , modifyVpcEndpoint -- ** Request lenses , mveAddRouteTableIds , mveDryRun , mvePolicyDocument , mveRemoveRouteTableIds , mveResetPolicy , mveVpcEndpointId -- * Response , ModifyVpcEndpointResponse -- ** Response constructor , modifyVpcEndpointResponse -- ** Response lenses , mverReturn ) where import Network.AWS.Prelude import Network.AWS.Request.Query import Network.AWS.EC2.Types import qualified GHC.Exts data ModifyVpcEndpoint = ModifyVpcEndpoint { _mveAddRouteTableIds :: List "item" Text , _mveDryRun :: Maybe Bool , _mvePolicyDocument :: Maybe Text , _mveRemoveRouteTableIds :: List "item" Text , _mveResetPolicy :: Maybe Bool , _mveVpcEndpointId :: Text } deriving (Eq, Ord, Read, Show) -- | 'ModifyVpcEndpoint' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'mveAddRouteTableIds' @::@ ['Text'] -- -- * 'mveDryRun' @::@ 'Maybe' 'Bool' -- -- * 'mvePolicyDocument' @::@ 'Maybe' 'Text' -- -- * 'mveRemoveRouteTableIds' @::@ ['Text'] -- -- * 'mveResetPolicy' @::@ 'Maybe' 'Bool' -- -- * 'mveVpcEndpointId' @::@ 'Text' -- modifyVpcEndpoint :: Text -- ^ 'mveVpcEndpointId' -> ModifyVpcEndpoint modifyVpcEndpoint p1 = ModifyVpcEndpoint { _mveVpcEndpointId = p1 , _mveDryRun = Nothing , _mveResetPolicy = Nothing , _mvePolicyDocument = Nothing , _mveAddRouteTableIds = mempty , _mveRemoveRouteTableIds = mempty } -- | One or more route tables IDs to associate with the endpoint. mveAddRouteTableIds :: Lens' ModifyVpcEndpoint [Text] mveAddRouteTableIds = lens _mveAddRouteTableIds (\s a -> s { _mveAddRouteTableIds = a }) . _List -- | 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'. mveDryRun :: Lens' ModifyVpcEndpoint (Maybe Bool) mveDryRun = lens _mveDryRun (\s a -> s { _mveDryRun = a }) -- | A policy document to attach to the endpoint. The policy must be in valid JSON -- format. mvePolicyDocument :: Lens' ModifyVpcEndpoint (Maybe Text) mvePolicyDocument = lens _mvePolicyDocument (\s a -> s { _mvePolicyDocument = a }) -- | One or more route table IDs to disassociate from the endpoint. mveRemoveRouteTableIds :: Lens' ModifyVpcEndpoint [Text] mveRemoveRouteTableIds = lens _mveRemoveRouteTableIds (\s a -> s { _mveRemoveRouteTableIds = a }) . _List -- | Specify 'true' to reset the policy document to the default policy. The default -- policy allows access to the service. mveResetPolicy :: Lens' ModifyVpcEndpoint (Maybe Bool) mveResetPolicy = lens _mveResetPolicy (\s a -> s { _mveResetPolicy = a }) -- | The ID of the endpoint. mveVpcEndpointId :: Lens' ModifyVpcEndpoint Text mveVpcEndpointId = lens _mveVpcEndpointId (\s a -> s { _mveVpcEndpointId = a }) newtype ModifyVpcEndpointResponse = ModifyVpcEndpointResponse { _mverReturn :: Maybe Bool } deriving (Eq, Ord, Read, Show) -- | 'ModifyVpcEndpointResponse' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'mverReturn' @::@ 'Maybe' 'Bool' -- modifyVpcEndpointResponse :: ModifyVpcEndpointResponse modifyVpcEndpointResponse = ModifyVpcEndpointResponse { _mverReturn = Nothing } -- | Returns 'true' if the request succeeds; otherwise, it returns an error. mverReturn :: Lens' ModifyVpcEndpointResponse (Maybe Bool) mverReturn = lens _mverReturn (\s a -> s { _mverReturn = a }) instance ToPath ModifyVpcEndpoint where toPath = const "/" instance ToQuery ModifyVpcEndpoint where toQuery ModifyVpcEndpoint{..} = mconcat [ "AddRouteTableId" `toQueryList` _mveAddRouteTableIds , "DryRun" =? _mveDryRun , "PolicyDocument" =? _mvePolicyDocument , "RemoveRouteTableId" `toQueryList` _mveRemoveRouteTableIds , "ResetPolicy" =? _mveResetPolicy , "VpcEndpointId" =? _mveVpcEndpointId ] instance ToHeaders ModifyVpcEndpoint instance AWSRequest ModifyVpcEndpoint where type Sv ModifyVpcEndpoint = EC2 type Rs ModifyVpcEndpoint = ModifyVpcEndpointResponse request = post "ModifyVpcEndpoint" response = xmlResponse instance FromXML ModifyVpcEndpointResponse where parseXML x = ModifyVpcEndpointResponse <$> x .@? "return"