module Network.AWS.Greengrass.CreateSubscriptionDefinition
(
createSubscriptionDefinition
, CreateSubscriptionDefinition
, csdAmznClientToken
, csdInitialVersion
, csdName
, createSubscriptionDefinitionResponse
, CreateSubscriptionDefinitionResponse
, csdrsLatestVersionARN
, csdrsARN
, csdrsName
, csdrsCreationTimestamp
, csdrsId
, csdrsLatestVersion
, csdrsLastUpdatedTimestamp
, csdrsResponseStatus
) where
import Network.AWS.Greengrass.Types
import Network.AWS.Greengrass.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateSubscriptionDefinition = CreateSubscriptionDefinition'
{ _csdAmznClientToken :: !(Maybe Text)
, _csdInitialVersion :: !(Maybe SubscriptionDefinitionVersion)
, _csdName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSubscriptionDefinition
:: CreateSubscriptionDefinition
createSubscriptionDefinition =
CreateSubscriptionDefinition'
{ _csdAmznClientToken = Nothing
, _csdInitialVersion = Nothing
, _csdName = Nothing
}
csdAmznClientToken :: Lens' CreateSubscriptionDefinition (Maybe Text)
csdAmznClientToken = lens _csdAmznClientToken (\ s a -> s{_csdAmznClientToken = a});
csdInitialVersion :: Lens' CreateSubscriptionDefinition (Maybe SubscriptionDefinitionVersion)
csdInitialVersion = lens _csdInitialVersion (\ s a -> s{_csdInitialVersion = a});
csdName :: Lens' CreateSubscriptionDefinition (Maybe Text)
csdName = lens _csdName (\ s a -> s{_csdName = a});
instance AWSRequest CreateSubscriptionDefinition
where
type Rs CreateSubscriptionDefinition =
CreateSubscriptionDefinitionResponse
request = postJSON greengrass
response
= receiveJSON
(\ s h x ->
CreateSubscriptionDefinitionResponse' <$>
(x .?> "LatestVersionArn") <*> (x .?> "Arn") <*>
(x .?> "Name")
<*> (x .?> "CreationTimestamp")
<*> (x .?> "Id")
<*> (x .?> "LatestVersion")
<*> (x .?> "LastUpdatedTimestamp")
<*> (pure (fromEnum s)))
instance Hashable CreateSubscriptionDefinition where
instance NFData CreateSubscriptionDefinition where
instance ToHeaders CreateSubscriptionDefinition where
toHeaders CreateSubscriptionDefinition'{..}
= mconcat
["X-Amzn-Client-Token" =# _csdAmznClientToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON CreateSubscriptionDefinition where
toJSON CreateSubscriptionDefinition'{..}
= object
(catMaybes
[("InitialVersion" .=) <$> _csdInitialVersion,
("Name" .=) <$> _csdName])
instance ToPath CreateSubscriptionDefinition where
toPath = const "/greengrass/definition/subscriptions"
instance ToQuery CreateSubscriptionDefinition where
toQuery = const mempty
data CreateSubscriptionDefinitionResponse = CreateSubscriptionDefinitionResponse'
{ _csdrsLatestVersionARN :: !(Maybe Text)
, _csdrsARN :: !(Maybe Text)
, _csdrsName :: !(Maybe Text)
, _csdrsCreationTimestamp :: !(Maybe Text)
, _csdrsId :: !(Maybe Text)
, _csdrsLatestVersion :: !(Maybe Text)
, _csdrsLastUpdatedTimestamp :: !(Maybe Text)
, _csdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createSubscriptionDefinitionResponse
:: Int
-> CreateSubscriptionDefinitionResponse
createSubscriptionDefinitionResponse pResponseStatus_ =
CreateSubscriptionDefinitionResponse'
{ _csdrsLatestVersionARN = Nothing
, _csdrsARN = Nothing
, _csdrsName = Nothing
, _csdrsCreationTimestamp = Nothing
, _csdrsId = Nothing
, _csdrsLatestVersion = Nothing
, _csdrsLastUpdatedTimestamp = Nothing
, _csdrsResponseStatus = pResponseStatus_
}
csdrsLatestVersionARN :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsLatestVersionARN = lens _csdrsLatestVersionARN (\ s a -> s{_csdrsLatestVersionARN = a});
csdrsARN :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsARN = lens _csdrsARN (\ s a -> s{_csdrsARN = a});
csdrsName :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsName = lens _csdrsName (\ s a -> s{_csdrsName = a});
csdrsCreationTimestamp :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsCreationTimestamp = lens _csdrsCreationTimestamp (\ s a -> s{_csdrsCreationTimestamp = a});
csdrsId :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsId = lens _csdrsId (\ s a -> s{_csdrsId = a});
csdrsLatestVersion :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsLatestVersion = lens _csdrsLatestVersion (\ s a -> s{_csdrsLatestVersion = a});
csdrsLastUpdatedTimestamp :: Lens' CreateSubscriptionDefinitionResponse (Maybe Text)
csdrsLastUpdatedTimestamp = lens _csdrsLastUpdatedTimestamp (\ s a -> s{_csdrsLastUpdatedTimestamp = a});
csdrsResponseStatus :: Lens' CreateSubscriptionDefinitionResponse Int
csdrsResponseStatus = lens _csdrsResponseStatus (\ s a -> s{_csdrsResponseStatus = a});
instance NFData CreateSubscriptionDefinitionResponse
where