amazonka-ec2-1.6.0: gen/Network/AWS/EC2/ModifyLaunchTemplate.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.EC2.ModifyLaunchTemplate
-- Copyright : (c) 2013-2018 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)
--
-- Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified.
--
--
module Network.AWS.EC2.ModifyLaunchTemplate
(
-- * Creating a Request
modifyLaunchTemplate
, ModifyLaunchTemplate
-- * Request Lenses
, mltLaunchTemplateName
, mltClientToken
, mltLaunchTemplateId
, mltDefaultVersion
, mltDryRun
-- * Destructuring the Response
, modifyLaunchTemplateResponse
, ModifyLaunchTemplateResponse
-- * Response Lenses
, mltrsLaunchTemplate
, mltrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'modifyLaunchTemplate' smart constructor.
data ModifyLaunchTemplate = ModifyLaunchTemplate'
{ _mltLaunchTemplateName :: !(Maybe Text)
, _mltClientToken :: !(Maybe Text)
, _mltLaunchTemplateId :: !(Maybe Text)
, _mltDefaultVersion :: !(Maybe Text)
, _mltDryRun :: !(Maybe Bool)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'ModifyLaunchTemplate' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mltLaunchTemplateName' - The name of the launch template. You must specify either the launch template ID or launch template name in the request.
--
-- * 'mltClientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .
--
-- * 'mltLaunchTemplateId' - The ID of the launch template. You must specify either the launch template ID or launch template name in the request.
--
-- * 'mltDefaultVersion' - The version number of the launch template to set as the default version.
--
-- * 'mltDryRun' - Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
modifyLaunchTemplate
:: ModifyLaunchTemplate
modifyLaunchTemplate =
ModifyLaunchTemplate'
{ _mltLaunchTemplateName = Nothing
, _mltClientToken = Nothing
, _mltLaunchTemplateId = Nothing
, _mltDefaultVersion = Nothing
, _mltDryRun = Nothing
}
-- | The name of the launch template. You must specify either the launch template ID or launch template name in the request.
mltLaunchTemplateName :: Lens' ModifyLaunchTemplate (Maybe Text)
mltLaunchTemplateName = lens _mltLaunchTemplateName (\ s a -> s{_mltLaunchTemplateName = a})
-- | Unique, case-sensitive identifier you provide to ensure the idempotency of the request. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency> .
mltClientToken :: Lens' ModifyLaunchTemplate (Maybe Text)
mltClientToken = lens _mltClientToken (\ s a -> s{_mltClientToken = a})
-- | The ID of the launch template. You must specify either the launch template ID or launch template name in the request.
mltLaunchTemplateId :: Lens' ModifyLaunchTemplate (Maybe Text)
mltLaunchTemplateId = lens _mltLaunchTemplateId (\ s a -> s{_mltLaunchTemplateId = a})
-- | The version number of the launch template to set as the default version.
mltDefaultVersion :: Lens' ModifyLaunchTemplate (Maybe Text)
mltDefaultVersion = lens _mltDefaultVersion (\ s a -> s{_mltDefaultVersion = a})
-- | Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is @DryRunOperation@ . Otherwise, it is @UnauthorizedOperation@ .
mltDryRun :: Lens' ModifyLaunchTemplate (Maybe Bool)
mltDryRun = lens _mltDryRun (\ s a -> s{_mltDryRun = a})
instance AWSRequest ModifyLaunchTemplate where
type Rs ModifyLaunchTemplate =
ModifyLaunchTemplateResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
ModifyLaunchTemplateResponse' <$>
(x .@? "launchTemplate") <*> (pure (fromEnum s)))
instance Hashable ModifyLaunchTemplate where
instance NFData ModifyLaunchTemplate where
instance ToHeaders ModifyLaunchTemplate where
toHeaders = const mempty
instance ToPath ModifyLaunchTemplate where
toPath = const "/"
instance ToQuery ModifyLaunchTemplate where
toQuery ModifyLaunchTemplate'{..}
= mconcat
["Action" =: ("ModifyLaunchTemplate" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
"LaunchTemplateName" =: _mltLaunchTemplateName,
"ClientToken" =: _mltClientToken,
"LaunchTemplateId" =: _mltLaunchTemplateId,
"SetDefaultVersion" =: _mltDefaultVersion,
"DryRun" =: _mltDryRun]
-- | /See:/ 'modifyLaunchTemplateResponse' smart constructor.
data ModifyLaunchTemplateResponse = ModifyLaunchTemplateResponse'
{ _mltrsLaunchTemplate :: !(Maybe LaunchTemplate)
, _mltrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'ModifyLaunchTemplateResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'mltrsLaunchTemplate' - Information about the launch template.
--
-- * 'mltrsResponseStatus' - -- | The response status code.
modifyLaunchTemplateResponse
:: Int -- ^ 'mltrsResponseStatus'
-> ModifyLaunchTemplateResponse
modifyLaunchTemplateResponse pResponseStatus_ =
ModifyLaunchTemplateResponse'
{_mltrsLaunchTemplate = Nothing, _mltrsResponseStatus = pResponseStatus_}
-- | Information about the launch template.
mltrsLaunchTemplate :: Lens' ModifyLaunchTemplateResponse (Maybe LaunchTemplate)
mltrsLaunchTemplate = lens _mltrsLaunchTemplate (\ s a -> s{_mltrsLaunchTemplate = a})
-- | -- | The response status code.
mltrsResponseStatus :: Lens' ModifyLaunchTemplateResponse Int
mltrsResponseStatus = lens _mltrsResponseStatus (\ s a -> s{_mltrsResponseStatus = a})
instance NFData ModifyLaunchTemplateResponse where