module Network.Google.Resource.MapsEngine.Projects.Icons.Create
(
ProjectsIconsCreateResource
, projectsIconsCreate
, ProjectsIconsCreate
, picPayload
, picProjectId
) where
import Network.Google.MapsEngine.Types
import Network.Google.Prelude
type ProjectsIconsCreateResource =
"mapsengine" :>
"v1" :>
"projects" :>
Capture "projectId" Text :>
"icons" :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] Icon :> Post '[JSON] Icon
:<|>
"upload" :>
"mapsengine" :>
"v1" :>
"projects" :>
Capture "projectId" Text :>
"icons" :>
QueryParam "alt" AltJSON :>
QueryParam "uploadType" AltMedia :>
MultipartRelated '[JSON] Icon RequestBody :>
Post '[JSON] Icon
data ProjectsIconsCreate = ProjectsIconsCreate
{ _picPayload :: !Icon
, _picProjectId :: !Text
} deriving (Eq,Show,Data,Typeable,Generic)
projectsIconsCreate
:: Icon
-> Text
-> ProjectsIconsCreate
projectsIconsCreate pPicPayload_ pPicProjectId_ =
ProjectsIconsCreate
{ _picPayload = pPicPayload_
, _picProjectId = pPicProjectId_
}
picPayload :: Lens' ProjectsIconsCreate Icon
picPayload
= lens _picPayload (\ s a -> s{_picPayload = a})
picProjectId :: Lens' ProjectsIconsCreate Text
picProjectId
= lens _picProjectId (\ s a -> s{_picProjectId = a})
instance GoogleRequest ProjectsIconsCreate where
type Rs ProjectsIconsCreate = Icon
requestClient ProjectsIconsCreate{..}
= go _picProjectId (Just AltJSON) _picPayload
mapsEngineService
where go :<|> _
= buildClient
(Proxy :: Proxy ProjectsIconsCreateResource)
mempty
instance GoogleRequest
(MediaUpload ProjectsIconsCreate) where
type Rs (MediaUpload ProjectsIconsCreate) = Icon
requestClient
(MediaUpload ProjectsIconsCreate{..} body)
= go _picProjectId (Just AltJSON) (Just AltMedia)
_picPayload
body
mapsEngineService
where _ :<|> go
= buildClient
(Proxy :: Proxy ProjectsIconsCreateResource)
mempty