{-# 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.SSM.GetDeployablePatchSnapshotForInstance -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves the current snapshot for the patch baseline the instance uses. This API is primarily used by the AWS-RunPatchBaseline Systems Manager document. -- -- module Network.AWS.SSM.GetDeployablePatchSnapshotForInstance ( -- * Creating a Request getDeployablePatchSnapshotForInstance , GetDeployablePatchSnapshotForInstance -- * Request Lenses , gdpsfiInstanceId , gdpsfiSnapshotId -- * Destructuring the Response , getDeployablePatchSnapshotForInstanceResponse , GetDeployablePatchSnapshotForInstanceResponse -- * Response Lenses , gdpsfirsInstanceId , gdpsfirsProduct , gdpsfirsSnapshotDownloadURL , gdpsfirsSnapshotId , gdpsfirsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.SSM.Types import Network.AWS.SSM.Types.Product -- | /See:/ 'getDeployablePatchSnapshotForInstance' smart constructor. data GetDeployablePatchSnapshotForInstance = GetDeployablePatchSnapshotForInstance' { _gdpsfiInstanceId :: !Text , _gdpsfiSnapshotId :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetDeployablePatchSnapshotForInstance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gdpsfiInstanceId' - The ID of the instance for which the appropriate patch snapshot should be retrieved. -- -- * 'gdpsfiSnapshotId' - The user-defined snapshot ID. getDeployablePatchSnapshotForInstance :: Text -- ^ 'gdpsfiInstanceId' -> Text -- ^ 'gdpsfiSnapshotId' -> GetDeployablePatchSnapshotForInstance getDeployablePatchSnapshotForInstance pInstanceId_ pSnapshotId_ = GetDeployablePatchSnapshotForInstance' {_gdpsfiInstanceId = pInstanceId_, _gdpsfiSnapshotId = pSnapshotId_} -- | The ID of the instance for which the appropriate patch snapshot should be retrieved. gdpsfiInstanceId :: Lens' GetDeployablePatchSnapshotForInstance Text gdpsfiInstanceId = lens _gdpsfiInstanceId (\ s a -> s{_gdpsfiInstanceId = a}); -- | The user-defined snapshot ID. gdpsfiSnapshotId :: Lens' GetDeployablePatchSnapshotForInstance Text gdpsfiSnapshotId = lens _gdpsfiSnapshotId (\ s a -> s{_gdpsfiSnapshotId = a}); instance AWSRequest GetDeployablePatchSnapshotForInstance where type Rs GetDeployablePatchSnapshotForInstance = GetDeployablePatchSnapshotForInstanceResponse request = postJSON ssm response = receiveJSON (\ s h x -> GetDeployablePatchSnapshotForInstanceResponse' <$> (x .?> "InstanceId") <*> (x .?> "Product") <*> (x .?> "SnapshotDownloadUrl") <*> (x .?> "SnapshotId") <*> (pure (fromEnum s))) instance Hashable GetDeployablePatchSnapshotForInstance where instance NFData GetDeployablePatchSnapshotForInstance where instance ToHeaders GetDeployablePatchSnapshotForInstance where toHeaders = const (mconcat ["X-Amz-Target" =# ("AmazonSSM.GetDeployablePatchSnapshotForInstance" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON GetDeployablePatchSnapshotForInstance where toJSON GetDeployablePatchSnapshotForInstance'{..} = object (catMaybes [Just ("InstanceId" .= _gdpsfiInstanceId), Just ("SnapshotId" .= _gdpsfiSnapshotId)]) instance ToPath GetDeployablePatchSnapshotForInstance where toPath = const "/" instance ToQuery GetDeployablePatchSnapshotForInstance where toQuery = const mempty -- | /See:/ 'getDeployablePatchSnapshotForInstanceResponse' smart constructor. data GetDeployablePatchSnapshotForInstanceResponse = GetDeployablePatchSnapshotForInstanceResponse' { _gdpsfirsInstanceId :: !(Maybe Text) , _gdpsfirsProduct :: !(Maybe Text) , _gdpsfirsSnapshotDownloadURL :: !(Maybe Text) , _gdpsfirsSnapshotId :: !(Maybe Text) , _gdpsfirsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'GetDeployablePatchSnapshotForInstanceResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gdpsfirsInstanceId' - The ID of the instance. -- -- * 'gdpsfirsProduct' - Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot. -- -- * 'gdpsfirsSnapshotDownloadURL' - A pre-signed Amazon S3 URL that can be used to download the patch snapshot. -- -- * 'gdpsfirsSnapshotId' - The user-defined snapshot ID. -- -- * 'gdpsfirsResponseStatus' - -- | The response status code. getDeployablePatchSnapshotForInstanceResponse :: Int -- ^ 'gdpsfirsResponseStatus' -> GetDeployablePatchSnapshotForInstanceResponse getDeployablePatchSnapshotForInstanceResponse pResponseStatus_ = GetDeployablePatchSnapshotForInstanceResponse' { _gdpsfirsInstanceId = Nothing , _gdpsfirsProduct = Nothing , _gdpsfirsSnapshotDownloadURL = Nothing , _gdpsfirsSnapshotId = Nothing , _gdpsfirsResponseStatus = pResponseStatus_ } -- | The ID of the instance. gdpsfirsInstanceId :: Lens' GetDeployablePatchSnapshotForInstanceResponse (Maybe Text) gdpsfirsInstanceId = lens _gdpsfirsInstanceId (\ s a -> s{_gdpsfirsInstanceId = a}); -- | Returns the specific operating system (for example Windows Server 2012 or Amazon Linux 2015.09) on the instance for the specified patch snapshot. gdpsfirsProduct :: Lens' GetDeployablePatchSnapshotForInstanceResponse (Maybe Text) gdpsfirsProduct = lens _gdpsfirsProduct (\ s a -> s{_gdpsfirsProduct = a}); -- | A pre-signed Amazon S3 URL that can be used to download the patch snapshot. gdpsfirsSnapshotDownloadURL :: Lens' GetDeployablePatchSnapshotForInstanceResponse (Maybe Text) gdpsfirsSnapshotDownloadURL = lens _gdpsfirsSnapshotDownloadURL (\ s a -> s{_gdpsfirsSnapshotDownloadURL = a}); -- | The user-defined snapshot ID. gdpsfirsSnapshotId :: Lens' GetDeployablePatchSnapshotForInstanceResponse (Maybe Text) gdpsfirsSnapshotId = lens _gdpsfirsSnapshotId (\ s a -> s{_gdpsfirsSnapshotId = a}); -- | -- | The response status code. gdpsfirsResponseStatus :: Lens' GetDeployablePatchSnapshotForInstanceResponse Int gdpsfirsResponseStatus = lens _gdpsfirsResponseStatus (\ s a -> s{_gdpsfirsResponseStatus = a}); instance NFData GetDeployablePatchSnapshotForInstanceResponse where