{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.IoT.CreateOTAUpdate
(
createOTAUpdate
, CreateOTAUpdate
, cotauAdditionalParameters
, cotauDescription
, cotauTargetSelection
, cotauOtaUpdateId
, cotauTargets
, cotauFiles
, cotauRoleARN
, createOTAUpdateResponse
, CreateOTAUpdateResponse
, cotaursAwsIotJobId
, cotaursOtaUpdateStatus
, cotaursAwsIotJobARN
, cotaursOtaUpdateId
, cotaursOtaUpdateARN
, cotaursResponseStatus
) where
import Network.AWS.IoT.Types
import Network.AWS.IoT.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateOTAUpdate = CreateOTAUpdate'
{ _cotauAdditionalParameters :: !(Maybe (Map Text Text))
, _cotauDescription :: !(Maybe Text)
, _cotauTargetSelection :: !(Maybe TargetSelection)
, _cotauOtaUpdateId :: !Text
, _cotauTargets :: !(List1 Text)
, _cotauFiles :: !(List1 OTAUpdateFile)
, _cotauRoleARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createOTAUpdate
:: Text
-> NonEmpty Text
-> NonEmpty OTAUpdateFile
-> Text
-> CreateOTAUpdate
createOTAUpdate pOtaUpdateId_ pTargets_ pFiles_ pRoleARN_ =
CreateOTAUpdate'
{ _cotauAdditionalParameters = Nothing
, _cotauDescription = Nothing
, _cotauTargetSelection = Nothing
, _cotauOtaUpdateId = pOtaUpdateId_
, _cotauTargets = _List1 # pTargets_
, _cotauFiles = _List1 # pFiles_
, _cotauRoleARN = pRoleARN_
}
cotauAdditionalParameters :: Lens' CreateOTAUpdate (HashMap Text Text)
cotauAdditionalParameters = lens _cotauAdditionalParameters (\ s a -> s{_cotauAdditionalParameters = a}) . _Default . _Map
cotauDescription :: Lens' CreateOTAUpdate (Maybe Text)
cotauDescription = lens _cotauDescription (\ s a -> s{_cotauDescription = a})
cotauTargetSelection :: Lens' CreateOTAUpdate (Maybe TargetSelection)
cotauTargetSelection = lens _cotauTargetSelection (\ s a -> s{_cotauTargetSelection = a})
cotauOtaUpdateId :: Lens' CreateOTAUpdate Text
cotauOtaUpdateId = lens _cotauOtaUpdateId (\ s a -> s{_cotauOtaUpdateId = a})
cotauTargets :: Lens' CreateOTAUpdate (NonEmpty Text)
cotauTargets = lens _cotauTargets (\ s a -> s{_cotauTargets = a}) . _List1
cotauFiles :: Lens' CreateOTAUpdate (NonEmpty OTAUpdateFile)
cotauFiles = lens _cotauFiles (\ s a -> s{_cotauFiles = a}) . _List1
cotauRoleARN :: Lens' CreateOTAUpdate Text
cotauRoleARN = lens _cotauRoleARN (\ s a -> s{_cotauRoleARN = a})
instance AWSRequest CreateOTAUpdate where
type Rs CreateOTAUpdate = CreateOTAUpdateResponse
request = postJSON ioT
response
= receiveJSON
(\ s h x ->
CreateOTAUpdateResponse' <$>
(x .?> "awsIotJobId") <*> (x .?> "otaUpdateStatus")
<*> (x .?> "awsIotJobArn")
<*> (x .?> "otaUpdateId")
<*> (x .?> "otaUpdateArn")
<*> (pure (fromEnum s)))
instance Hashable CreateOTAUpdate where
instance NFData CreateOTAUpdate where
instance ToHeaders CreateOTAUpdate where
toHeaders = const mempty
instance ToJSON CreateOTAUpdate where
toJSON CreateOTAUpdate'{..}
= object
(catMaybes
[("additionalParameters" .=) <$>
_cotauAdditionalParameters,
("description" .=) <$> _cotauDescription,
("targetSelection" .=) <$> _cotauTargetSelection,
Just ("targets" .= _cotauTargets),
Just ("files" .= _cotauFiles),
Just ("roleArn" .= _cotauRoleARN)])
instance ToPath CreateOTAUpdate where
toPath CreateOTAUpdate'{..}
= mconcat ["/otaUpdates/", toBS _cotauOtaUpdateId]
instance ToQuery CreateOTAUpdate where
toQuery = const mempty
data CreateOTAUpdateResponse = CreateOTAUpdateResponse'
{ _cotaursAwsIotJobId :: !(Maybe Text)
, _cotaursOtaUpdateStatus :: !(Maybe OTAUpdateStatus)
, _cotaursAwsIotJobARN :: !(Maybe Text)
, _cotaursOtaUpdateId :: !(Maybe Text)
, _cotaursOtaUpdateARN :: !(Maybe Text)
, _cotaursResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createOTAUpdateResponse
:: Int
-> CreateOTAUpdateResponse
createOTAUpdateResponse pResponseStatus_ =
CreateOTAUpdateResponse'
{ _cotaursAwsIotJobId = Nothing
, _cotaursOtaUpdateStatus = Nothing
, _cotaursAwsIotJobARN = Nothing
, _cotaursOtaUpdateId = Nothing
, _cotaursOtaUpdateARN = Nothing
, _cotaursResponseStatus = pResponseStatus_
}
cotaursAwsIotJobId :: Lens' CreateOTAUpdateResponse (Maybe Text)
cotaursAwsIotJobId = lens _cotaursAwsIotJobId (\ s a -> s{_cotaursAwsIotJobId = a})
cotaursOtaUpdateStatus :: Lens' CreateOTAUpdateResponse (Maybe OTAUpdateStatus)
cotaursOtaUpdateStatus = lens _cotaursOtaUpdateStatus (\ s a -> s{_cotaursOtaUpdateStatus = a})
cotaursAwsIotJobARN :: Lens' CreateOTAUpdateResponse (Maybe Text)
cotaursAwsIotJobARN = lens _cotaursAwsIotJobARN (\ s a -> s{_cotaursAwsIotJobARN = a})
cotaursOtaUpdateId :: Lens' CreateOTAUpdateResponse (Maybe Text)
cotaursOtaUpdateId = lens _cotaursOtaUpdateId (\ s a -> s{_cotaursOtaUpdateId = a})
cotaursOtaUpdateARN :: Lens' CreateOTAUpdateResponse (Maybe Text)
cotaursOtaUpdateARN = lens _cotaursOtaUpdateARN (\ s a -> s{_cotaursOtaUpdateARN = a})
cotaursResponseStatus :: Lens' CreateOTAUpdateResponse Int
cotaursResponseStatus = lens _cotaursResponseStatus (\ s a -> s{_cotaursResponseStatus = a})
instance NFData CreateOTAUpdateResponse where