amazonka-glue-1.6.0: gen/Network/AWS/Glue/BatchDeleteTableVersion.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.Glue.BatchDeleteTableVersion
-- 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)
--
-- Deletes a specified batch of versions of a table.
--
--
module Network.AWS.Glue.BatchDeleteTableVersion
(
-- * Creating a Request
batchDeleteTableVersion
, BatchDeleteTableVersion
-- * Request Lenses
, bdtvCatalogId
, bdtvDatabaseName
, bdtvTableName
, bdtvVersionIds
-- * Destructuring the Response
, batchDeleteTableVersionResponse
, BatchDeleteTableVersionResponse
-- * Response Lenses
, bdtvrsErrors
, bdtvrsResponseStatus
) where
import Network.AWS.Glue.Types
import Network.AWS.Glue.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'batchDeleteTableVersion' smart constructor.
data BatchDeleteTableVersion = BatchDeleteTableVersion'
{ _bdtvCatalogId :: !(Maybe Text)
, _bdtvDatabaseName :: !Text
, _bdtvTableName :: !Text
, _bdtvVersionIds :: ![Text]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'BatchDeleteTableVersion' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'bdtvCatalogId' - The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default.
--
-- * 'bdtvDatabaseName' - The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
--
-- * 'bdtvTableName' - The name of the table. For Hive compatibility, this name is entirely lowercase.
--
-- * 'bdtvVersionIds' - A list of the IDs of versions to be deleted.
batchDeleteTableVersion
:: Text -- ^ 'bdtvDatabaseName'
-> Text -- ^ 'bdtvTableName'
-> BatchDeleteTableVersion
batchDeleteTableVersion pDatabaseName_ pTableName_ =
BatchDeleteTableVersion'
{ _bdtvCatalogId = Nothing
, _bdtvDatabaseName = pDatabaseName_
, _bdtvTableName = pTableName_
, _bdtvVersionIds = mempty
}
-- | The ID of the Data Catalog where the tables reside. If none is supplied, the AWS account ID is used by default.
bdtvCatalogId :: Lens' BatchDeleteTableVersion (Maybe Text)
bdtvCatalogId = lens _bdtvCatalogId (\ s a -> s{_bdtvCatalogId = a})
-- | The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
bdtvDatabaseName :: Lens' BatchDeleteTableVersion Text
bdtvDatabaseName = lens _bdtvDatabaseName (\ s a -> s{_bdtvDatabaseName = a})
-- | The name of the table. For Hive compatibility, this name is entirely lowercase.
bdtvTableName :: Lens' BatchDeleteTableVersion Text
bdtvTableName = lens _bdtvTableName (\ s a -> s{_bdtvTableName = a})
-- | A list of the IDs of versions to be deleted.
bdtvVersionIds :: Lens' BatchDeleteTableVersion [Text]
bdtvVersionIds = lens _bdtvVersionIds (\ s a -> s{_bdtvVersionIds = a}) . _Coerce
instance AWSRequest BatchDeleteTableVersion where
type Rs BatchDeleteTableVersion =
BatchDeleteTableVersionResponse
request = postJSON glue
response
= receiveJSON
(\ s h x ->
BatchDeleteTableVersionResponse' <$>
(x .?> "Errors" .!@ mempty) <*> (pure (fromEnum s)))
instance Hashable BatchDeleteTableVersion where
instance NFData BatchDeleteTableVersion where
instance ToHeaders BatchDeleteTableVersion where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSGlue.BatchDeleteTableVersion" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON BatchDeleteTableVersion where
toJSON BatchDeleteTableVersion'{..}
= object
(catMaybes
[("CatalogId" .=) <$> _bdtvCatalogId,
Just ("DatabaseName" .= _bdtvDatabaseName),
Just ("TableName" .= _bdtvTableName),
Just ("VersionIds" .= _bdtvVersionIds)])
instance ToPath BatchDeleteTableVersion where
toPath = const "/"
instance ToQuery BatchDeleteTableVersion where
toQuery = const mempty
-- | /See:/ 'batchDeleteTableVersionResponse' smart constructor.
data BatchDeleteTableVersionResponse = BatchDeleteTableVersionResponse'
{ _bdtvrsErrors :: !(Maybe [TableVersionError])
, _bdtvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'BatchDeleteTableVersionResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'bdtvrsErrors' - A list of errors encountered while trying to delete the specified table versions.
--
-- * 'bdtvrsResponseStatus' - -- | The response status code.
batchDeleteTableVersionResponse
:: Int -- ^ 'bdtvrsResponseStatus'
-> BatchDeleteTableVersionResponse
batchDeleteTableVersionResponse pResponseStatus_ =
BatchDeleteTableVersionResponse'
{_bdtvrsErrors = Nothing, _bdtvrsResponseStatus = pResponseStatus_}
-- | A list of errors encountered while trying to delete the specified table versions.
bdtvrsErrors :: Lens' BatchDeleteTableVersionResponse [TableVersionError]
bdtvrsErrors = lens _bdtvrsErrors (\ s a -> s{_bdtvrsErrors = a}) . _Default . _Coerce
-- | -- | The response status code.
bdtvrsResponseStatus :: Lens' BatchDeleteTableVersionResponse Int
bdtvrsResponseStatus = lens _bdtvrsResponseStatus (\ s a -> s{_bdtvrsResponseStatus = a})
instance NFData BatchDeleteTableVersionResponse where