gogol-cloudsearch-0.5.0: gen/Network/Google/Resource/CloudSearch/Indexing/Datasources/Items/Upload.hs
{-# 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.CloudSearch.Indexing.Datasources.Items.Upload
-- Copyright : (c) 2015-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an upload session for uploading item content. For items smaller
-- than 100 KiB, it\'s easier to embed the content inline within update.
--
-- /See:/ <https://gsuite.google.com/products/cloud-search/ Cloud Search API Reference> for @cloudsearch.indexing.datasources.items.upload@.
module Network.Google.Resource.CloudSearch.Indexing.Datasources.Items.Upload
(
-- * REST Resource
IndexingDatasourcesItemsUploadResource
-- * Creating a Request
, indexingDatasourcesItemsUpload
, IndexingDatasourcesItemsUpload
-- * Request Lenses
, indXgafv
, indUploadProtocol
, indAccessToken
, indUploadType
, indPayload
, indName
, indCallback
) where
import Network.Google.CloudSearch.Types
import Network.Google.Prelude
-- | A resource alias for @cloudsearch.indexing.datasources.items.upload@ method which the
-- 'IndexingDatasourcesItemsUpload' request conforms to.
type IndexingDatasourcesItemsUploadResource =
"v1" :>
"indexing" :>
CaptureMode "name" "upload" Text :>
QueryParam "$.xgafv" Xgafv :>
QueryParam "upload_protocol" Text :>
QueryParam "access_token" Text :>
QueryParam "uploadType" Text :>
QueryParam "callback" Text :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] StartUploadItemRequest :>
Post '[JSON] UploadItemRef
-- | Creates an upload session for uploading item content. For items smaller
-- than 100 KiB, it\'s easier to embed the content inline within update.
--
-- /See:/ 'indexingDatasourcesItemsUpload' smart constructor.
data IndexingDatasourcesItemsUpload =
IndexingDatasourcesItemsUpload'
{ _indXgafv :: !(Maybe Xgafv)
, _indUploadProtocol :: !(Maybe Text)
, _indAccessToken :: !(Maybe Text)
, _indUploadType :: !(Maybe Text)
, _indPayload :: !StartUploadItemRequest
, _indName :: !Text
, _indCallback :: !(Maybe Text)
}
deriving (Eq, Show, Data, Typeable, Generic)
-- | Creates a value of 'IndexingDatasourcesItemsUpload' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'indXgafv'
--
-- * 'indUploadProtocol'
--
-- * 'indAccessToken'
--
-- * 'indUploadType'
--
-- * 'indPayload'
--
-- * 'indName'
--
-- * 'indCallback'
indexingDatasourcesItemsUpload
:: StartUploadItemRequest -- ^ 'indPayload'
-> Text -- ^ 'indName'
-> IndexingDatasourcesItemsUpload
indexingDatasourcesItemsUpload pIndPayload_ pIndName_ =
IndexingDatasourcesItemsUpload'
{ _indXgafv = Nothing
, _indUploadProtocol = Nothing
, _indAccessToken = Nothing
, _indUploadType = Nothing
, _indPayload = pIndPayload_
, _indName = pIndName_
, _indCallback = Nothing
}
-- | V1 error format.
indXgafv :: Lens' IndexingDatasourcesItemsUpload (Maybe Xgafv)
indXgafv = lens _indXgafv (\ s a -> s{_indXgafv = a})
-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
indUploadProtocol :: Lens' IndexingDatasourcesItemsUpload (Maybe Text)
indUploadProtocol
= lens _indUploadProtocol
(\ s a -> s{_indUploadProtocol = a})
-- | OAuth access token.
indAccessToken :: Lens' IndexingDatasourcesItemsUpload (Maybe Text)
indAccessToken
= lens _indAccessToken
(\ s a -> s{_indAccessToken = a})
-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
indUploadType :: Lens' IndexingDatasourcesItemsUpload (Maybe Text)
indUploadType
= lens _indUploadType
(\ s a -> s{_indUploadType = a})
-- | Multipart request metadata.
indPayload :: Lens' IndexingDatasourcesItemsUpload StartUploadItemRequest
indPayload
= lens _indPayload (\ s a -> s{_indPayload = a})
-- | Name of the Item to start a resumable upload. Format:
-- datasources\/{source_id}\/items\/{item_id}.
indName :: Lens' IndexingDatasourcesItemsUpload Text
indName = lens _indName (\ s a -> s{_indName = a})
-- | JSONP
indCallback :: Lens' IndexingDatasourcesItemsUpload (Maybe Text)
indCallback
= lens _indCallback (\ s a -> s{_indCallback = a})
instance GoogleRequest IndexingDatasourcesItemsUpload
where
type Rs IndexingDatasourcesItemsUpload =
UploadItemRef
type Scopes IndexingDatasourcesItemsUpload =
'["https://www.googleapis.com/auth/cloud_search",
"https://www.googleapis.com/auth/cloud_search.indexing"]
requestClient IndexingDatasourcesItemsUpload'{..}
= go _indName _indXgafv _indUploadProtocol
_indAccessToken
_indUploadType
_indCallback
(Just AltJSON)
_indPayload
cloudSearchService
where go
= buildClient
(Proxy ::
Proxy IndexingDatasourcesItemsUploadResource)
mempty