module Network.AWS.DeviceFarm.CreateUpload
(
createUpload
, CreateUpload
, cuContentType
, cuProjectARN
, cuName
, cuType
, createUploadResponse
, CreateUploadResponse
, cursUpload
, cursResponseStatus
) where
import Network.AWS.DeviceFarm.Types
import Network.AWS.DeviceFarm.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateUpload = CreateUpload'
{ _cuContentType :: !(Maybe Text)
, _cuProjectARN :: !Text
, _cuName :: !Text
, _cuType :: !UploadType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createUpload
:: Text
-> Text
-> UploadType
-> CreateUpload
createUpload pProjectARN_ pName_ pType_ =
CreateUpload'
{ _cuContentType = Nothing
, _cuProjectARN = pProjectARN_
, _cuName = pName_
, _cuType = pType_
}
cuContentType :: Lens' CreateUpload (Maybe Text)
cuContentType = lens _cuContentType (\ s a -> s{_cuContentType = a});
cuProjectARN :: Lens' CreateUpload Text
cuProjectARN = lens _cuProjectARN (\ s a -> s{_cuProjectARN = a});
cuName :: Lens' CreateUpload Text
cuName = lens _cuName (\ s a -> s{_cuName = a});
cuType :: Lens' CreateUpload UploadType
cuType = lens _cuType (\ s a -> s{_cuType = a});
instance AWSRequest CreateUpload where
type Rs CreateUpload = CreateUploadResponse
request = postJSON deviceFarm
response
= receiveJSON
(\ s h x ->
CreateUploadResponse' <$>
(x .?> "upload") <*> (pure (fromEnum s)))
instance ToHeaders CreateUpload where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DeviceFarm_20150623.CreateUpload" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateUpload where
toJSON CreateUpload'{..}
= object
(catMaybes
[("contentType" .=) <$> _cuContentType,
Just ("projectArn" .= _cuProjectARN),
Just ("name" .= _cuName), Just ("type" .= _cuType)])
instance ToPath CreateUpload where
toPath = const "/"
instance ToQuery CreateUpload where
toQuery = const mempty
data CreateUploadResponse = CreateUploadResponse'
{ _cursUpload :: !(Maybe Upload)
, _cursResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createUploadResponse
:: Int
-> CreateUploadResponse
createUploadResponse pResponseStatus_ =
CreateUploadResponse'
{ _cursUpload = Nothing
, _cursResponseStatus = pResponseStatus_
}
cursUpload :: Lens' CreateUploadResponse (Maybe Upload)
cursUpload = lens _cursUpload (\ s a -> s{_cursUpload = a});
cursResponseStatus :: Lens' CreateUploadResponse Int
cursResponseStatus = lens _cursResponseStatus (\ s a -> s{_cursResponseStatus = a});