{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.AWS.MigrationHub.Types.Product where
import Network.AWS.Lens
import Network.AWS.MigrationHub.Types.Sum
import Network.AWS.Prelude
data CreatedArtifact = CreatedArtifact'
{ _caDescription :: !(Maybe Text)
, _caName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createdArtifact
:: Text
-> CreatedArtifact
createdArtifact pName_ =
CreatedArtifact' {_caDescription = Nothing, _caName = pName_}
caDescription :: Lens' CreatedArtifact (Maybe Text)
caDescription = lens _caDescription (\ s a -> s{_caDescription = a})
caName :: Lens' CreatedArtifact Text
caName = lens _caName (\ s a -> s{_caName = a})
instance FromJSON CreatedArtifact where
parseJSON
= withObject "CreatedArtifact"
(\ x ->
CreatedArtifact' <$>
(x .:? "Description") <*> (x .: "Name"))
instance Hashable CreatedArtifact where
instance NFData CreatedArtifact where
instance ToJSON CreatedArtifact where
toJSON CreatedArtifact'{..}
= object
(catMaybes
[("Description" .=) <$> _caDescription,
Just ("Name" .= _caName)])
data DiscoveredResource = DiscoveredResource'
{ _drDescription :: !(Maybe Text)
, _drConfigurationId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
discoveredResource
:: Text
-> DiscoveredResource
discoveredResource pConfigurationId_ =
DiscoveredResource'
{_drDescription = Nothing, _drConfigurationId = pConfigurationId_}
drDescription :: Lens' DiscoveredResource (Maybe Text)
drDescription = lens _drDescription (\ s a -> s{_drDescription = a})
drConfigurationId :: Lens' DiscoveredResource Text
drConfigurationId = lens _drConfigurationId (\ s a -> s{_drConfigurationId = a})
instance FromJSON DiscoveredResource where
parseJSON
= withObject "DiscoveredResource"
(\ x ->
DiscoveredResource' <$>
(x .:? "Description") <*> (x .: "ConfigurationId"))
instance Hashable DiscoveredResource where
instance NFData DiscoveredResource where
instance ToJSON DiscoveredResource where
toJSON DiscoveredResource'{..}
= object
(catMaybes
[("Description" .=) <$> _drDescription,
Just ("ConfigurationId" .= _drConfigurationId)])
data MigrationTask = MigrationTask'
{ _mtUpdateDateTime :: !(Maybe POSIX)
, _mtResourceAttributeList :: !(Maybe [ResourceAttribute])
, _mtTask :: !(Maybe Task)
, _mtProgressUpdateStream :: !(Maybe Text)
, _mtMigrationTaskName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
migrationTask
:: MigrationTask
migrationTask =
MigrationTask'
{ _mtUpdateDateTime = Nothing
, _mtResourceAttributeList = Nothing
, _mtTask = Nothing
, _mtProgressUpdateStream = Nothing
, _mtMigrationTaskName = Nothing
}
mtUpdateDateTime :: Lens' MigrationTask (Maybe UTCTime)
mtUpdateDateTime = lens _mtUpdateDateTime (\ s a -> s{_mtUpdateDateTime = a}) . mapping _Time
mtResourceAttributeList :: Lens' MigrationTask [ResourceAttribute]
mtResourceAttributeList = lens _mtResourceAttributeList (\ s a -> s{_mtResourceAttributeList = a}) . _Default . _Coerce
mtTask :: Lens' MigrationTask (Maybe Task)
mtTask = lens _mtTask (\ s a -> s{_mtTask = a})
mtProgressUpdateStream :: Lens' MigrationTask (Maybe Text)
mtProgressUpdateStream = lens _mtProgressUpdateStream (\ s a -> s{_mtProgressUpdateStream = a})
mtMigrationTaskName :: Lens' MigrationTask (Maybe Text)
mtMigrationTaskName = lens _mtMigrationTaskName (\ s a -> s{_mtMigrationTaskName = a})
instance FromJSON MigrationTask where
parseJSON
= withObject "MigrationTask"
(\ x ->
MigrationTask' <$>
(x .:? "UpdateDateTime") <*>
(x .:? "ResourceAttributeList" .!= mempty)
<*> (x .:? "Task")
<*> (x .:? "ProgressUpdateStream")
<*> (x .:? "MigrationTaskName"))
instance Hashable MigrationTask where
instance NFData MigrationTask where
data MigrationTaskSummary = MigrationTaskSummary'
{ _mtsStatus :: !(Maybe MigrationStatus)
, _mtsUpdateDateTime :: !(Maybe POSIX)
, _mtsProgressPercent :: !(Maybe Nat)
, _mtsStatusDetail :: !(Maybe Text)
, _mtsProgressUpdateStream :: !(Maybe Text)
, _mtsMigrationTaskName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
migrationTaskSummary
:: MigrationTaskSummary
migrationTaskSummary =
MigrationTaskSummary'
{ _mtsStatus = Nothing
, _mtsUpdateDateTime = Nothing
, _mtsProgressPercent = Nothing
, _mtsStatusDetail = Nothing
, _mtsProgressUpdateStream = Nothing
, _mtsMigrationTaskName = Nothing
}
mtsStatus :: Lens' MigrationTaskSummary (Maybe MigrationStatus)
mtsStatus = lens _mtsStatus (\ s a -> s{_mtsStatus = a})
mtsUpdateDateTime :: Lens' MigrationTaskSummary (Maybe UTCTime)
mtsUpdateDateTime = lens _mtsUpdateDateTime (\ s a -> s{_mtsUpdateDateTime = a}) . mapping _Time
mtsProgressPercent :: Lens' MigrationTaskSummary (Maybe Natural)
mtsProgressPercent = lens _mtsProgressPercent (\ s a -> s{_mtsProgressPercent = a}) . mapping _Nat
mtsStatusDetail :: Lens' MigrationTaskSummary (Maybe Text)
mtsStatusDetail = lens _mtsStatusDetail (\ s a -> s{_mtsStatusDetail = a})
mtsProgressUpdateStream :: Lens' MigrationTaskSummary (Maybe Text)
mtsProgressUpdateStream = lens _mtsProgressUpdateStream (\ s a -> s{_mtsProgressUpdateStream = a})
mtsMigrationTaskName :: Lens' MigrationTaskSummary (Maybe Text)
mtsMigrationTaskName = lens _mtsMigrationTaskName (\ s a -> s{_mtsMigrationTaskName = a})
instance FromJSON MigrationTaskSummary where
parseJSON
= withObject "MigrationTaskSummary"
(\ x ->
MigrationTaskSummary' <$>
(x .:? "Status") <*> (x .:? "UpdateDateTime") <*>
(x .:? "ProgressPercent")
<*> (x .:? "StatusDetail")
<*> (x .:? "ProgressUpdateStream")
<*> (x .:? "MigrationTaskName"))
instance Hashable MigrationTaskSummary where
instance NFData MigrationTaskSummary where
newtype ProgressUpdateStreamSummary = ProgressUpdateStreamSummary'
{ _pussProgressUpdateStreamName :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
progressUpdateStreamSummary
:: ProgressUpdateStreamSummary
progressUpdateStreamSummary =
ProgressUpdateStreamSummary' {_pussProgressUpdateStreamName = Nothing}
pussProgressUpdateStreamName :: Lens' ProgressUpdateStreamSummary (Maybe Text)
pussProgressUpdateStreamName = lens _pussProgressUpdateStreamName (\ s a -> s{_pussProgressUpdateStreamName = a})
instance FromJSON ProgressUpdateStreamSummary where
parseJSON
= withObject "ProgressUpdateStreamSummary"
(\ x ->
ProgressUpdateStreamSummary' <$>
(x .:? "ProgressUpdateStreamName"))
instance Hashable ProgressUpdateStreamSummary where
instance NFData ProgressUpdateStreamSummary where
data ResourceAttribute = ResourceAttribute'
{ _raType :: !ResourceAttributeType
, _raValue :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
resourceAttribute
:: ResourceAttributeType
-> Text
-> ResourceAttribute
resourceAttribute pType_ pValue_ =
ResourceAttribute' {_raType = pType_, _raValue = pValue_}
raType :: Lens' ResourceAttribute ResourceAttributeType
raType = lens _raType (\ s a -> s{_raType = a})
raValue :: Lens' ResourceAttribute Text
raValue = lens _raValue (\ s a -> s{_raValue = a})
instance FromJSON ResourceAttribute where
parseJSON
= withObject "ResourceAttribute"
(\ x ->
ResourceAttribute' <$>
(x .: "Type") <*> (x .: "Value"))
instance Hashable ResourceAttribute where
instance NFData ResourceAttribute where
instance ToJSON ResourceAttribute where
toJSON ResourceAttribute'{..}
= object
(catMaybes
[Just ("Type" .= _raType),
Just ("Value" .= _raValue)])
data Task = Task'
{ _tProgressPercent :: !(Maybe Nat)
, _tStatusDetail :: !(Maybe Text)
, _tStatus :: !MigrationStatus
} deriving (Eq, Read, Show, Data, Typeable, Generic)
task
:: MigrationStatus
-> Task
task pStatus_ =
Task'
{_tProgressPercent = Nothing, _tStatusDetail = Nothing, _tStatus = pStatus_}
tProgressPercent :: Lens' Task (Maybe Natural)
tProgressPercent = lens _tProgressPercent (\ s a -> s{_tProgressPercent = a}) . mapping _Nat
tStatusDetail :: Lens' Task (Maybe Text)
tStatusDetail = lens _tStatusDetail (\ s a -> s{_tStatusDetail = a})
tStatus :: Lens' Task MigrationStatus
tStatus = lens _tStatus (\ s a -> s{_tStatus = a})
instance FromJSON Task where
parseJSON
= withObject "Task"
(\ x ->
Task' <$>
(x .:? "ProgressPercent") <*> (x .:? "StatusDetail")
<*> (x .: "Status"))
instance Hashable Task where
instance NFData Task where
instance ToJSON Task where
toJSON Task'{..}
= object
(catMaybes
[("ProgressPercent" .=) <$> _tProgressPercent,
("StatusDetail" .=) <$> _tStatusDetail,
Just ("Status" .= _tStatus)])