{-# 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.DMS.DescribeEventCategories -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Lists categories for all event source types, or, if specified, for a specified source type. You can see a list of the event categories and source types in in the AWS Database Migration Service User Guide. -- -- module Network.AWS.DMS.DescribeEventCategories ( -- * Creating a Request describeEventCategories , DescribeEventCategories -- * Request Lenses , decSourceType , decFilters -- * Destructuring the Response , describeEventCategoriesResponse , DescribeEventCategoriesResponse -- * Response Lenses , decrsEventCategoryGroupList , decrsResponseStatus ) where import Network.AWS.DMS.Types import Network.AWS.DMS.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | -- -- -- -- /See:/ 'describeEventCategories' smart constructor. data DescribeEventCategories = DescribeEventCategories' { _decSourceType :: !(Maybe Text) , _decFilters :: !(Maybe [Filter]) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeEventCategories' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'decSourceType' - The type of AWS DMS resource that generates events. Valid values: replication-instance | migration-task -- -- * 'decFilters' - Filters applied to the action. describeEventCategories :: DescribeEventCategories describeEventCategories = DescribeEventCategories' {_decSourceType = Nothing, _decFilters = Nothing} -- | The type of AWS DMS resource that generates events. Valid values: replication-instance | migration-task decSourceType :: Lens' DescribeEventCategories (Maybe Text) decSourceType = lens _decSourceType (\ s a -> s{_decSourceType = a}) -- | Filters applied to the action. decFilters :: Lens' DescribeEventCategories [Filter] decFilters = lens _decFilters (\ s a -> s{_decFilters = a}) . _Default . _Coerce instance AWSRequest DescribeEventCategories where type Rs DescribeEventCategories = DescribeEventCategoriesResponse request = postJSON dms response = receiveJSON (\ s h x -> DescribeEventCategoriesResponse' <$> (x .?> "EventCategoryGroupList" .!@ mempty) <*> (pure (fromEnum s))) instance Hashable DescribeEventCategories where instance NFData DescribeEventCategories where instance ToHeaders DescribeEventCategories where toHeaders = const (mconcat ["X-Amz-Target" =# ("AmazonDMSv20160101.DescribeEventCategories" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DescribeEventCategories where toJSON DescribeEventCategories'{..} = object (catMaybes [("SourceType" .=) <$> _decSourceType, ("Filters" .=) <$> _decFilters]) instance ToPath DescribeEventCategories where toPath = const "/" instance ToQuery DescribeEventCategories where toQuery = const mempty -- | -- -- -- -- /See:/ 'describeEventCategoriesResponse' smart constructor. data DescribeEventCategoriesResponse = DescribeEventCategoriesResponse' { _decrsEventCategoryGroupList :: !(Maybe [EventCategoryGroup]) , _decrsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeEventCategoriesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'decrsEventCategoryGroupList' - A list of event categories. -- -- * 'decrsResponseStatus' - -- | The response status code. describeEventCategoriesResponse :: Int -- ^ 'decrsResponseStatus' -> DescribeEventCategoriesResponse describeEventCategoriesResponse pResponseStatus_ = DescribeEventCategoriesResponse' { _decrsEventCategoryGroupList = Nothing , _decrsResponseStatus = pResponseStatus_ } -- | A list of event categories. decrsEventCategoryGroupList :: Lens' DescribeEventCategoriesResponse [EventCategoryGroup] decrsEventCategoryGroupList = lens _decrsEventCategoryGroupList (\ s a -> s{_decrsEventCategoryGroupList = a}) . _Default . _Coerce -- | -- | The response status code. decrsResponseStatus :: Lens' DescribeEventCategoriesResponse Int decrsResponseStatus = lens _decrsResponseStatus (\ s a -> s{_decrsResponseStatus = a}) instance NFData DescribeEventCategoriesResponse where