amazonka-greengrass-1.5.0: gen/Network/AWS/Greengrass/CreateLoggerDefinition.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.Greengrass.CreateLoggerDefinition
-- Copyright : (c) 2013-2017 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a logger definition. You may optionally provide the initial version of the logger definition or use ``CreateLoggerDefinitionVersion`` at a later time.
module Network.AWS.Greengrass.CreateLoggerDefinition
(
-- * Creating a Request
createLoggerDefinition
, CreateLoggerDefinition
-- * Request Lenses
, cldAmznClientToken
, cldInitialVersion
, cldName
-- * Destructuring the Response
, createLoggerDefinitionResponse
, CreateLoggerDefinitionResponse
-- * Response Lenses
, cldrsLatestVersionARN
, cldrsARN
, cldrsName
, cldrsCreationTimestamp
, cldrsId
, cldrsLatestVersion
, cldrsLastUpdatedTimestamp
, cldrsResponseStatus
) 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
-- | /See:/ 'createLoggerDefinition' smart constructor.
data CreateLoggerDefinition = CreateLoggerDefinition'
{ _cldAmznClientToken :: !(Maybe Text)
, _cldInitialVersion :: !(Maybe LoggerDefinitionVersion)
, _cldName :: !(Maybe Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateLoggerDefinition' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'cldAmznClientToken' - The client token used to request idempotent operations.
--
-- * 'cldInitialVersion' - Information on the initial version
--
-- * 'cldName' - name of the logger definition
createLoggerDefinition
:: CreateLoggerDefinition
createLoggerDefinition =
CreateLoggerDefinition'
{ _cldAmznClientToken = Nothing
, _cldInitialVersion = Nothing
, _cldName = Nothing
}
-- | The client token used to request idempotent operations.
cldAmznClientToken :: Lens' CreateLoggerDefinition (Maybe Text)
cldAmznClientToken = lens _cldAmznClientToken (\ s a -> s{_cldAmznClientToken = a});
-- | Information on the initial version
cldInitialVersion :: Lens' CreateLoggerDefinition (Maybe LoggerDefinitionVersion)
cldInitialVersion = lens _cldInitialVersion (\ s a -> s{_cldInitialVersion = a});
-- | name of the logger definition
cldName :: Lens' CreateLoggerDefinition (Maybe Text)
cldName = lens _cldName (\ s a -> s{_cldName = a});
instance AWSRequest CreateLoggerDefinition where
type Rs CreateLoggerDefinition =
CreateLoggerDefinitionResponse
request = postJSON greengrass
response
= receiveJSON
(\ s h x ->
CreateLoggerDefinitionResponse' <$>
(x .?> "LatestVersionArn") <*> (x .?> "Arn") <*>
(x .?> "Name")
<*> (x .?> "CreationTimestamp")
<*> (x .?> "Id")
<*> (x .?> "LatestVersion")
<*> (x .?> "LastUpdatedTimestamp")
<*> (pure (fromEnum s)))
instance Hashable CreateLoggerDefinition where
instance NFData CreateLoggerDefinition where
instance ToHeaders CreateLoggerDefinition where
toHeaders CreateLoggerDefinition'{..}
= mconcat
["X-Amzn-Client-Token" =# _cldAmznClientToken,
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)]
instance ToJSON CreateLoggerDefinition where
toJSON CreateLoggerDefinition'{..}
= object
(catMaybes
[("InitialVersion" .=) <$> _cldInitialVersion,
("Name" .=) <$> _cldName])
instance ToPath CreateLoggerDefinition where
toPath = const "/greengrass/definition/loggers"
instance ToQuery CreateLoggerDefinition where
toQuery = const mempty
-- | /See:/ 'createLoggerDefinitionResponse' smart constructor.
data CreateLoggerDefinitionResponse = CreateLoggerDefinitionResponse'
{ _cldrsLatestVersionARN :: !(Maybe Text)
, _cldrsARN :: !(Maybe Text)
, _cldrsName :: !(Maybe Text)
, _cldrsCreationTimestamp :: !(Maybe Text)
, _cldrsId :: !(Maybe Text)
, _cldrsLatestVersion :: !(Maybe Text)
, _cldrsLastUpdatedTimestamp :: !(Maybe Text)
, _cldrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'CreateLoggerDefinitionResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'cldrsLatestVersionARN' - Latest version arn of the definition.
--
-- * 'cldrsARN' - Arn of the definition.
--
-- * 'cldrsName' - Name of the definition.
--
-- * 'cldrsCreationTimestamp' - Timestamp of when the definition was created.
--
-- * 'cldrsId' - Id of the definition.
--
-- * 'cldrsLatestVersion' - Last version of the definition.
--
-- * 'cldrsLastUpdatedTimestamp' - Last updated timestamp of the definition.
--
-- * 'cldrsResponseStatus' - -- | The response status code.
createLoggerDefinitionResponse
:: Int -- ^ 'cldrsResponseStatus'
-> CreateLoggerDefinitionResponse
createLoggerDefinitionResponse pResponseStatus_ =
CreateLoggerDefinitionResponse'
{ _cldrsLatestVersionARN = Nothing
, _cldrsARN = Nothing
, _cldrsName = Nothing
, _cldrsCreationTimestamp = Nothing
, _cldrsId = Nothing
, _cldrsLatestVersion = Nothing
, _cldrsLastUpdatedTimestamp = Nothing
, _cldrsResponseStatus = pResponseStatus_
}
-- | Latest version arn of the definition.
cldrsLatestVersionARN :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsLatestVersionARN = lens _cldrsLatestVersionARN (\ s a -> s{_cldrsLatestVersionARN = a});
-- | Arn of the definition.
cldrsARN :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsARN = lens _cldrsARN (\ s a -> s{_cldrsARN = a});
-- | Name of the definition.
cldrsName :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsName = lens _cldrsName (\ s a -> s{_cldrsName = a});
-- | Timestamp of when the definition was created.
cldrsCreationTimestamp :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsCreationTimestamp = lens _cldrsCreationTimestamp (\ s a -> s{_cldrsCreationTimestamp = a});
-- | Id of the definition.
cldrsId :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsId = lens _cldrsId (\ s a -> s{_cldrsId = a});
-- | Last version of the definition.
cldrsLatestVersion :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsLatestVersion = lens _cldrsLatestVersion (\ s a -> s{_cldrsLatestVersion = a});
-- | Last updated timestamp of the definition.
cldrsLastUpdatedTimestamp :: Lens' CreateLoggerDefinitionResponse (Maybe Text)
cldrsLastUpdatedTimestamp = lens _cldrsLastUpdatedTimestamp (\ s a -> s{_cldrsLastUpdatedTimestamp = a});
-- | -- | The response status code.
cldrsResponseStatus :: Lens' CreateLoggerDefinitionResponse Int
cldrsResponseStatus = lens _cldrsResponseStatus (\ s a -> s{_cldrsResponseStatus = a});
instance NFData CreateLoggerDefinitionResponse where