{-# 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.CloudIdentity.Groups.Memberships.Get
    (
    
      GroupsMembershipsGetResource
    
    , groupsMembershipsGet
    , GroupsMembershipsGet
    
    , gmgXgafv
    , gmgUploadProtocol
    , gmgAccessToken
    , gmgUploadType
    , gmgName
    , gmgCallback
    ) where
import           Network.Google.CloudIdentity.Types
import           Network.Google.Prelude
type GroupsMembershipsGetResource =
     "v1" :>
       Capture "name" Text :>
         QueryParam "$.xgafv" Xgafv :>
           QueryParam "upload_protocol" Text :>
             QueryParam "access_token" Text :>
               QueryParam "uploadType" Text :>
                 QueryParam "callback" Text :>
                   QueryParam "alt" AltJSON :> Get '[JSON] Membership
data GroupsMembershipsGet = GroupsMembershipsGet'
    { _gmgXgafv          :: !(Maybe Xgafv)
    , _gmgUploadProtocol :: !(Maybe Text)
    , _gmgAccessToken    :: !(Maybe Text)
    , _gmgUploadType     :: !(Maybe Text)
    , _gmgName           :: !Text
    , _gmgCallback       :: !(Maybe Text)
    } deriving (Eq,Show,Data,Typeable,Generic)
groupsMembershipsGet
    :: Text 
    -> GroupsMembershipsGet
groupsMembershipsGet pGmgName_ =
    GroupsMembershipsGet'
    { _gmgXgafv = Nothing
    , _gmgUploadProtocol = Nothing
    , _gmgAccessToken = Nothing
    , _gmgUploadType = Nothing
    , _gmgName = pGmgName_
    , _gmgCallback = Nothing
    }
gmgXgafv :: Lens' GroupsMembershipsGet (Maybe Xgafv)
gmgXgafv = lens _gmgXgafv (\ s a -> s{_gmgXgafv = a})
gmgUploadProtocol :: Lens' GroupsMembershipsGet (Maybe Text)
gmgUploadProtocol
  = lens _gmgUploadProtocol
      (\ s a -> s{_gmgUploadProtocol = a})
gmgAccessToken :: Lens' GroupsMembershipsGet (Maybe Text)
gmgAccessToken
  = lens _gmgAccessToken
      (\ s a -> s{_gmgAccessToken = a})
gmgUploadType :: Lens' GroupsMembershipsGet (Maybe Text)
gmgUploadType
  = lens _gmgUploadType
      (\ s a -> s{_gmgUploadType = a})
gmgName :: Lens' GroupsMembershipsGet Text
gmgName = lens _gmgName (\ s a -> s{_gmgName = a})
gmgCallback :: Lens' GroupsMembershipsGet (Maybe Text)
gmgCallback
  = lens _gmgCallback (\ s a -> s{_gmgCallback = a})
instance GoogleRequest GroupsMembershipsGet where
        type Rs GroupsMembershipsGet = Membership
        type Scopes GroupsMembershipsGet = '[]
        requestClient GroupsMembershipsGet'{..}
          = go _gmgName _gmgXgafv _gmgUploadProtocol
              _gmgAccessToken
              _gmgUploadType
              _gmgCallback
              (Just AltJSON)
              cloudIdentityService
          where go
                  = buildClient
                      (Proxy :: Proxy GroupsMembershipsGetResource)
                      mempty