module Network.AWS.Greengrass.CreateGroupVersion
(
createGroupVersion
, CreateGroupVersion
, cgvAmznClientToken
, cgvSubscriptionDefinitionVersionARN
, cgvCoreDefinitionVersionARN
, cgvDeviceDefinitionVersionARN
, cgvFunctionDefinitionVersionARN
, cgvLoggerDefinitionVersionARN
, cgvGroupId
, createGroupVersionResponse
, CreateGroupVersionResponse
, cgvrsARN
, cgvrsCreationTimestamp
, cgvrsVersion
, cgvrsId
, cgvrsResponseStatus
) 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 CreateGroupVersion = CreateGroupVersion'
{ _cgvAmznClientToken :: !(Maybe Text)
, _cgvSubscriptionDefinitionVersionARN :: !(Maybe Text)
, _cgvCoreDefinitionVersionARN :: !(Maybe Text)
, _cgvDeviceDefinitionVersionARN :: !(Maybe Text)
, _cgvFunctionDefinitionVersionARN :: !(Maybe Text)
, _cgvLoggerDefinitionVersionARN :: !(Maybe Text)
, _cgvGroupId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createGroupVersion
:: Text
-> CreateGroupVersion
createGroupVersion pGroupId_ =
CreateGroupVersion'
{ _cgvAmznClientToken = Nothing
, _cgvSubscriptionDefinitionVersionARN = Nothing
, _cgvCoreDefinitionVersionARN = Nothing
, _cgvDeviceDefinitionVersionARN = Nothing
, _cgvFunctionDefinitionVersionARN = Nothing
, _cgvLoggerDefinitionVersionARN = Nothing
, _cgvGroupId = pGroupId_
}
cgvAmznClientToken :: Lens' CreateGroupVersion (Maybe Text)
cgvAmznClientToken = lens _cgvAmznClientToken (\ s a -> s{_cgvAmznClientToken = a});
cgvSubscriptionDefinitionVersionARN :: Lens' CreateGroupVersion (Maybe Text)
cgvSubscriptionDefinitionVersionARN = lens _cgvSubscriptionDefinitionVersionARN (\ s a -> s{_cgvSubscriptionDefinitionVersionARN = a});
cgvCoreDefinitionVersionARN :: Lens' CreateGroupVersion (Maybe Text)
cgvCoreDefinitionVersionARN = lens _cgvCoreDefinitionVersionARN (\ s a -> s{_cgvCoreDefinitionVersionARN = a});
cgvDeviceDefinitionVersionARN :: Lens' CreateGroupVersion (Maybe Text)
cgvDeviceDefinitionVersionARN = lens _cgvDeviceDefinitionVersionARN (\ s a -> s{_cgvDeviceDefinitionVersionARN = a});
cgvFunctionDefinitionVersionARN :: Lens' CreateGroupVersion (Maybe Text)
cgvFunctionDefinitionVersionARN = lens _cgvFunctionDefinitionVersionARN (\ s a -> s{_cgvFunctionDefinitionVersionARN = a});
cgvLoggerDefinitionVersionARN :: Lens' CreateGroupVersion (Maybe Text)
cgvLoggerDefinitionVersionARN = lens _cgvLoggerDefinitionVersionARN (\ s a -> s{_cgvLoggerDefinitionVersionARN = a});
cgvGroupId :: Lens' CreateGroupVersion Text
cgvGroupId = lens _cgvGroupId (\ s a -> s{_cgvGroupId = a});
instance AWSRequest CreateGroupVersion where
type Rs CreateGroupVersion =
CreateGroupVersionResponse
request = postJSON greengrass
response
= receiveJSON
(\ s h x ->
CreateGroupVersionResponse' <$>
(x .?> "Arn") <*> (x .?> "CreationTimestamp") <*>
(x .?> "Version")
<*> (x .?> "Id")
<*> (pure (fromEnum s)))
instance Hashable CreateGroupVersion where
instance NFData CreateGroupVersion where
instance ToHeaders CreateGroupVersion where
toHeaders CreateGroupVersion'{..}
= mconcat
["X-Amzn-Client-Token" =# _cgvAmznClientToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON CreateGroupVersion where
toJSON CreateGroupVersion'{..}
= object
(catMaybes
[("SubscriptionDefinitionVersionArn" .=) <$>
_cgvSubscriptionDefinitionVersionARN,
("CoreDefinitionVersionArn" .=) <$>
_cgvCoreDefinitionVersionARN,
("DeviceDefinitionVersionArn" .=) <$>
_cgvDeviceDefinitionVersionARN,
("FunctionDefinitionVersionArn" .=) <$>
_cgvFunctionDefinitionVersionARN,
("LoggerDefinitionVersionArn" .=) <$>
_cgvLoggerDefinitionVersionARN])
instance ToPath CreateGroupVersion where
toPath CreateGroupVersion'{..}
= mconcat
["/greengrass/groups/", toBS _cgvGroupId,
"/versions"]
instance ToQuery CreateGroupVersion where
toQuery = const mempty
data CreateGroupVersionResponse = CreateGroupVersionResponse'
{ _cgvrsARN :: !(Maybe Text)
, _cgvrsCreationTimestamp :: !(Maybe Text)
, _cgvrsVersion :: !(Maybe Text)
, _cgvrsId :: !(Maybe Text)
, _cgvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createGroupVersionResponse
:: Int
-> CreateGroupVersionResponse
createGroupVersionResponse pResponseStatus_ =
CreateGroupVersionResponse'
{ _cgvrsARN = Nothing
, _cgvrsCreationTimestamp = Nothing
, _cgvrsVersion = Nothing
, _cgvrsId = Nothing
, _cgvrsResponseStatus = pResponseStatus_
}
cgvrsARN :: Lens' CreateGroupVersionResponse (Maybe Text)
cgvrsARN = lens _cgvrsARN (\ s a -> s{_cgvrsARN = a});
cgvrsCreationTimestamp :: Lens' CreateGroupVersionResponse (Maybe Text)
cgvrsCreationTimestamp = lens _cgvrsCreationTimestamp (\ s a -> s{_cgvrsCreationTimestamp = a});
cgvrsVersion :: Lens' CreateGroupVersionResponse (Maybe Text)
cgvrsVersion = lens _cgvrsVersion (\ s a -> s{_cgvrsVersion = a});
cgvrsId :: Lens' CreateGroupVersionResponse (Maybe Text)
cgvrsId = lens _cgvrsId (\ s a -> s{_cgvrsId = a});
cgvrsResponseStatus :: Lens' CreateGroupVersionResponse Int
cgvrsResponseStatus = lens _cgvrsResponseStatus (\ s a -> s{_cgvrsResponseStatus = a});
instance NFData CreateGroupVersionResponse where