{-# 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.Greengrass.CreateResourceDefinition
(
createResourceDefinition
, CreateResourceDefinition
, crdAmznClientToken
, crdInitialVersion
, crdName
, createResourceDefinitionResponse
, CreateResourceDefinitionResponse
, crdrsLatestVersionARN
, crdrsARN
, crdrsName
, crdrsCreationTimestamp
, crdrsId
, crdrsLatestVersion
, crdrsLastUpdatedTimestamp
, crdrsResponseStatus
) 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 CreateResourceDefinition = CreateResourceDefinition'
{ _crdAmznClientToken :: !(Maybe Text)
, _crdInitialVersion :: !(Maybe ResourceDefinitionVersion)
, _crdName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResourceDefinition
:: CreateResourceDefinition
createResourceDefinition =
CreateResourceDefinition'
{ _crdAmznClientToken = Nothing
, _crdInitialVersion = Nothing
, _crdName = Nothing
}
crdAmznClientToken :: Lens' CreateResourceDefinition (Maybe Text)
crdAmznClientToken = lens _crdAmznClientToken (\ s a -> s{_crdAmznClientToken = a})
crdInitialVersion :: Lens' CreateResourceDefinition (Maybe ResourceDefinitionVersion)
crdInitialVersion = lens _crdInitialVersion (\ s a -> s{_crdInitialVersion = a})
crdName :: Lens' CreateResourceDefinition (Maybe Text)
crdName = lens _crdName (\ s a -> s{_crdName = a})
instance AWSRequest CreateResourceDefinition where
type Rs CreateResourceDefinition =
CreateResourceDefinitionResponse
request = postJSON greengrass
response
= receiveJSON
(\ s h x ->
CreateResourceDefinitionResponse' <$>
(x .?> "LatestVersionArn") <*> (x .?> "Arn") <*>
(x .?> "Name")
<*> (x .?> "CreationTimestamp")
<*> (x .?> "Id")
<*> (x .?> "LatestVersion")
<*> (x .?> "LastUpdatedTimestamp")
<*> (pure (fromEnum s)))
instance Hashable CreateResourceDefinition where
instance NFData CreateResourceDefinition where
instance ToHeaders CreateResourceDefinition where
toHeaders CreateResourceDefinition'{..}
= mconcat
["X-Amzn-Client-Token" =# _crdAmznClientToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON CreateResourceDefinition where
toJSON CreateResourceDefinition'{..}
= object
(catMaybes
[("InitialVersion" .=) <$> _crdInitialVersion,
("Name" .=) <$> _crdName])
instance ToPath CreateResourceDefinition where
toPath = const "/greengrass/definition/resources"
instance ToQuery CreateResourceDefinition where
toQuery = const mempty
data CreateResourceDefinitionResponse = CreateResourceDefinitionResponse'
{ _crdrsLatestVersionARN :: !(Maybe Text)
, _crdrsARN :: !(Maybe Text)
, _crdrsName :: !(Maybe Text)
, _crdrsCreationTimestamp :: !(Maybe Text)
, _crdrsId :: !(Maybe Text)
, _crdrsLatestVersion :: !(Maybe Text)
, _crdrsLastUpdatedTimestamp :: !(Maybe Text)
, _crdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResourceDefinitionResponse
:: Int
-> CreateResourceDefinitionResponse
createResourceDefinitionResponse pResponseStatus_ =
CreateResourceDefinitionResponse'
{ _crdrsLatestVersionARN = Nothing
, _crdrsARN = Nothing
, _crdrsName = Nothing
, _crdrsCreationTimestamp = Nothing
, _crdrsId = Nothing
, _crdrsLatestVersion = Nothing
, _crdrsLastUpdatedTimestamp = Nothing
, _crdrsResponseStatus = pResponseStatus_
}
crdrsLatestVersionARN :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsLatestVersionARN = lens _crdrsLatestVersionARN (\ s a -> s{_crdrsLatestVersionARN = a})
crdrsARN :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsARN = lens _crdrsARN (\ s a -> s{_crdrsARN = a})
crdrsName :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsName = lens _crdrsName (\ s a -> s{_crdrsName = a})
crdrsCreationTimestamp :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsCreationTimestamp = lens _crdrsCreationTimestamp (\ s a -> s{_crdrsCreationTimestamp = a})
crdrsId :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsId = lens _crdrsId (\ s a -> s{_crdrsId = a})
crdrsLatestVersion :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsLatestVersion = lens _crdrsLatestVersion (\ s a -> s{_crdrsLatestVersion = a})
crdrsLastUpdatedTimestamp :: Lens' CreateResourceDefinitionResponse (Maybe Text)
crdrsLastUpdatedTimestamp = lens _crdrsLastUpdatedTimestamp (\ s a -> s{_crdrsLastUpdatedTimestamp = a})
crdrsResponseStatus :: Lens' CreateResourceDefinitionResponse Int
crdrsResponseStatus = lens _crdrsResponseStatus (\ s a -> s{_crdrsResponseStatus = a})
instance NFData CreateResourceDefinitionResponse
where