{-# 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.EC2.ReportInstanceStatus
(
reportInstanceStatus
, ReportInstanceStatus
, risStartTime
, risEndTime
, risDescription
, risDryRun
, risInstances
, risStatus
, risReasonCodes
, reportInstanceStatusResponse
, ReportInstanceStatusResponse
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ReportInstanceStatus = ReportInstanceStatus'
{ _risStartTime :: !(Maybe ISO8601)
, _risEndTime :: !(Maybe ISO8601)
, _risDescription :: !(Maybe Text)
, _risDryRun :: !(Maybe Bool)
, _risInstances :: ![Text]
, _risStatus :: !ReportStatusType
, _risReasonCodes :: ![ReportInstanceReasonCodes]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
reportInstanceStatus
:: ReportStatusType
-> ReportInstanceStatus
reportInstanceStatus pStatus_ =
ReportInstanceStatus'
{ _risStartTime = Nothing
, _risEndTime = Nothing
, _risDescription = Nothing
, _risDryRun = Nothing
, _risInstances = mempty
, _risStatus = pStatus_
, _risReasonCodes = mempty
}
risStartTime :: Lens' ReportInstanceStatus (Maybe UTCTime)
risStartTime = lens _risStartTime (\ s a -> s{_risStartTime = a}) . mapping _Time;
risEndTime :: Lens' ReportInstanceStatus (Maybe UTCTime)
risEndTime = lens _risEndTime (\ s a -> s{_risEndTime = a}) . mapping _Time;
risDescription :: Lens' ReportInstanceStatus (Maybe Text)
risDescription = lens _risDescription (\ s a -> s{_risDescription = a});
risDryRun :: Lens' ReportInstanceStatus (Maybe Bool)
risDryRun = lens _risDryRun (\ s a -> s{_risDryRun = a});
risInstances :: Lens' ReportInstanceStatus [Text]
risInstances = lens _risInstances (\ s a -> s{_risInstances = a}) . _Coerce;
risStatus :: Lens' ReportInstanceStatus ReportStatusType
risStatus = lens _risStatus (\ s a -> s{_risStatus = a});
risReasonCodes :: Lens' ReportInstanceStatus [ReportInstanceReasonCodes]
risReasonCodes = lens _risReasonCodes (\ s a -> s{_risReasonCodes = a}) . _Coerce;
instance AWSRequest ReportInstanceStatus where
type Rs ReportInstanceStatus =
ReportInstanceStatusResponse
request = postQuery ec2
response = receiveNull ReportInstanceStatusResponse'
instance Hashable ReportInstanceStatus
instance NFData ReportInstanceStatus
instance ToHeaders ReportInstanceStatus where
toHeaders = const mempty
instance ToPath ReportInstanceStatus where
toPath = const "/"
instance ToQuery ReportInstanceStatus where
toQuery ReportInstanceStatus'{..}
= mconcat
["Action" =: ("ReportInstanceStatus" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
"StartTime" =: _risStartTime,
"EndTime" =: _risEndTime,
"Description" =: _risDescription,
"DryRun" =: _risDryRun,
toQueryList "InstanceId" _risInstances,
"Status" =: _risStatus,
toQueryList "ReasonCode" _risReasonCodes]
data ReportInstanceStatusResponse =
ReportInstanceStatusResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
reportInstanceStatusResponse
:: ReportInstanceStatusResponse
reportInstanceStatusResponse = ReportInstanceStatusResponse'
instance NFData ReportInstanceStatusResponse