module Network.AWS.Greengrass.CreateCoreDefinition
(
createCoreDefinition
, CreateCoreDefinition
, ccdAmznClientToken
, ccdInitialVersion
, ccdName
, createCoreDefinitionResponse
, CreateCoreDefinitionResponse
, ccdrsLatestVersionARN
, ccdrsARN
, ccdrsName
, ccdrsCreationTimestamp
, ccdrsId
, ccdrsLatestVersion
, ccdrsLastUpdatedTimestamp
, ccdrsResponseStatus
) 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 CreateCoreDefinition = CreateCoreDefinition'
{ _ccdAmznClientToken :: !(Maybe Text)
, _ccdInitialVersion :: !(Maybe CoreDefinitionVersion)
, _ccdName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCoreDefinition
:: CreateCoreDefinition
createCoreDefinition =
CreateCoreDefinition'
{ _ccdAmznClientToken = Nothing
, _ccdInitialVersion = Nothing
, _ccdName = Nothing
}
ccdAmznClientToken :: Lens' CreateCoreDefinition (Maybe Text)
ccdAmznClientToken = lens _ccdAmznClientToken (\ s a -> s{_ccdAmznClientToken = a});
ccdInitialVersion :: Lens' CreateCoreDefinition (Maybe CoreDefinitionVersion)
ccdInitialVersion = lens _ccdInitialVersion (\ s a -> s{_ccdInitialVersion = a});
ccdName :: Lens' CreateCoreDefinition (Maybe Text)
ccdName = lens _ccdName (\ s a -> s{_ccdName = a});
instance AWSRequest CreateCoreDefinition where
type Rs CreateCoreDefinition =
CreateCoreDefinitionResponse
request = postJSON greengrass
response
= receiveJSON
(\ s h x ->
CreateCoreDefinitionResponse' <$>
(x .?> "LatestVersionArn") <*> (x .?> "Arn") <*>
(x .?> "Name")
<*> (x .?> "CreationTimestamp")
<*> (x .?> "Id")
<*> (x .?> "LatestVersion")
<*> (x .?> "LastUpdatedTimestamp")
<*> (pure (fromEnum s)))
instance Hashable CreateCoreDefinition where
instance NFData CreateCoreDefinition where
instance ToHeaders CreateCoreDefinition where
toHeaders CreateCoreDefinition'{..}
= mconcat
["X-Amzn-Client-Token" =# _ccdAmznClientToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON CreateCoreDefinition where
toJSON CreateCoreDefinition'{..}
= object
(catMaybes
[("InitialVersion" .=) <$> _ccdInitialVersion,
("Name" .=) <$> _ccdName])
instance ToPath CreateCoreDefinition where
toPath = const "/greengrass/definition/cores"
instance ToQuery CreateCoreDefinition where
toQuery = const mempty
data CreateCoreDefinitionResponse = CreateCoreDefinitionResponse'
{ _ccdrsLatestVersionARN :: !(Maybe Text)
, _ccdrsARN :: !(Maybe Text)
, _ccdrsName :: !(Maybe Text)
, _ccdrsCreationTimestamp :: !(Maybe Text)
, _ccdrsId :: !(Maybe Text)
, _ccdrsLatestVersion :: !(Maybe Text)
, _ccdrsLastUpdatedTimestamp :: !(Maybe Text)
, _ccdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createCoreDefinitionResponse
:: Int
-> CreateCoreDefinitionResponse
createCoreDefinitionResponse pResponseStatus_ =
CreateCoreDefinitionResponse'
{ _ccdrsLatestVersionARN = Nothing
, _ccdrsARN = Nothing
, _ccdrsName = Nothing
, _ccdrsCreationTimestamp = Nothing
, _ccdrsId = Nothing
, _ccdrsLatestVersion = Nothing
, _ccdrsLastUpdatedTimestamp = Nothing
, _ccdrsResponseStatus = pResponseStatus_
}
ccdrsLatestVersionARN :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsLatestVersionARN = lens _ccdrsLatestVersionARN (\ s a -> s{_ccdrsLatestVersionARN = a});
ccdrsARN :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsARN = lens _ccdrsARN (\ s a -> s{_ccdrsARN = a});
ccdrsName :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsName = lens _ccdrsName (\ s a -> s{_ccdrsName = a});
ccdrsCreationTimestamp :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsCreationTimestamp = lens _ccdrsCreationTimestamp (\ s a -> s{_ccdrsCreationTimestamp = a});
ccdrsId :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsId = lens _ccdrsId (\ s a -> s{_ccdrsId = a});
ccdrsLatestVersion :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsLatestVersion = lens _ccdrsLatestVersion (\ s a -> s{_ccdrsLatestVersion = a});
ccdrsLastUpdatedTimestamp :: Lens' CreateCoreDefinitionResponse (Maybe Text)
ccdrsLastUpdatedTimestamp = lens _ccdrsLastUpdatedTimestamp (\ s a -> s{_ccdrsLastUpdatedTimestamp = a});
ccdrsResponseStatus :: Lens' CreateCoreDefinitionResponse Int
ccdrsResponseStatus = lens _ccdrsResponseStatus (\ s a -> s{_ccdrsResponseStatus = a});
instance NFData CreateCoreDefinitionResponse where