{-# LANGUAGE DataKinds          #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric      #-}
{-# LANGUAGE FlexibleInstances  #-}
{-# LANGUAGE NoImplicitPrelude  #-}
{-# LANGUAGE OverloadedStrings  #-}
{-# LANGUAGE RecordWildCards    #-}
{-# LANGUAGE TypeFamilies       #-}
{-# LANGUAGE TypeOperators      #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
module Network.Google.Resource.CloudTasks.Projects.Locations.Queues.Delete
    (
    
      ProjectsLocationsQueuesDeleteResource
    
    , projectsLocationsQueuesDelete
    , ProjectsLocationsQueuesDelete
    
    , plqdXgafv
    , plqdUploadProtocol
    , plqdAccessToken
    , plqdUploadType
    , plqdName
    , plqdCallback
    ) where
import           Network.Google.CloudTasks.Types
import           Network.Google.Prelude
type ProjectsLocationsQueuesDeleteResource =
     "v2beta3" :>
       Capture "name" Text :>
         QueryParam "$.xgafv" Xgafv :>
           QueryParam "upload_protocol" Text :>
             QueryParam "access_token" Text :>
               QueryParam "uploadType" Text :>
                 QueryParam "callback" Text :>
                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
data ProjectsLocationsQueuesDelete = ProjectsLocationsQueuesDelete'
    { _plqdXgafv          :: !(Maybe Xgafv)
    , _plqdUploadProtocol :: !(Maybe Text)
    , _plqdAccessToken    :: !(Maybe Text)
    , _plqdUploadType     :: !(Maybe Text)
    , _plqdName           :: !Text
    , _plqdCallback       :: !(Maybe Text)
    } deriving (Eq,Show,Data,Typeable,Generic)
projectsLocationsQueuesDelete
    :: Text 
    -> ProjectsLocationsQueuesDelete
projectsLocationsQueuesDelete pPlqdName_ =
    ProjectsLocationsQueuesDelete'
    { _plqdXgafv = Nothing
    , _plqdUploadProtocol = Nothing
    , _plqdAccessToken = Nothing
    , _plqdUploadType = Nothing
    , _plqdName = pPlqdName_
    , _plqdCallback = Nothing
    }
plqdXgafv :: Lens' ProjectsLocationsQueuesDelete (Maybe Xgafv)
plqdXgafv
  = lens _plqdXgafv (\ s a -> s{_plqdXgafv = a})
plqdUploadProtocol :: Lens' ProjectsLocationsQueuesDelete (Maybe Text)
plqdUploadProtocol
  = lens _plqdUploadProtocol
      (\ s a -> s{_plqdUploadProtocol = a})
plqdAccessToken :: Lens' ProjectsLocationsQueuesDelete (Maybe Text)
plqdAccessToken
  = lens _plqdAccessToken
      (\ s a -> s{_plqdAccessToken = a})
plqdUploadType :: Lens' ProjectsLocationsQueuesDelete (Maybe Text)
plqdUploadType
  = lens _plqdUploadType
      (\ s a -> s{_plqdUploadType = a})
plqdName :: Lens' ProjectsLocationsQueuesDelete Text
plqdName = lens _plqdName (\ s a -> s{_plqdName = a})
plqdCallback :: Lens' ProjectsLocationsQueuesDelete (Maybe Text)
plqdCallback
  = lens _plqdCallback (\ s a -> s{_plqdCallback = a})
instance GoogleRequest ProjectsLocationsQueuesDelete
         where
        type Rs ProjectsLocationsQueuesDelete = Empty
        type Scopes ProjectsLocationsQueuesDelete =
             '["https://www.googleapis.com/auth/cloud-platform"]
        requestClient ProjectsLocationsQueuesDelete'{..}
          = go _plqdName _plqdXgafv _plqdUploadProtocol
              _plqdAccessToken
              _plqdUploadType
              _plqdCallback
              (Just AltJSON)
              cloudTasksService
          where go
                  = buildClient
                      (Proxy ::
                         Proxy ProjectsLocationsQueuesDeleteResource)
                      mempty