{-# 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.Route53.ListTagsForResources -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Lists tags for up to 10 health checks or hosted zones. -- -- -- For information about using tags for cost allocation, see in the /AWS Billing and Cost Management User Guide/ . -- module Network.AWS.Route53.ListTagsForResources ( -- * Creating a Request listTagsForResources , ListTagsForResources -- * Request Lenses , lResourceType , lResourceIds -- * Destructuring the Response , listTagsForResourcesResponse , ListTagsForResourcesResponse -- * Response Lenses , lrsResponseStatus , lrsResourceTagSets ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.Route53.Types import Network.AWS.Route53.Types.Product -- | A complex type that contains information about the health checks or hosted zones for which you want to list tags. -- -- -- -- /See:/ 'listTagsForResources' smart constructor. data ListTagsForResources = ListTagsForResources' { _lResourceType :: !TagResourceType , _lResourceIds :: !(List1 Text) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListTagsForResources' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lResourceType' - The type of the resources. * The resource type for health checks is @healthcheck@ . * The resource type for hosted zones is @hostedzone@ . -- -- * 'lResourceIds' - A complex type that contains the ResourceId element for each resource for which you want to get a list of tags. listTagsForResources :: TagResourceType -- ^ 'lResourceType' -> NonEmpty Text -- ^ 'lResourceIds' -> ListTagsForResources listTagsForResources pResourceType_ pResourceIds_ = ListTagsForResources' {_lResourceType = pResourceType_, _lResourceIds = _List1 # pResourceIds_} -- | The type of the resources. * The resource type for health checks is @healthcheck@ . * The resource type for hosted zones is @hostedzone@ . lResourceType :: Lens' ListTagsForResources TagResourceType lResourceType = lens _lResourceType (\ s a -> s{_lResourceType = a}); -- | A complex type that contains the ResourceId element for each resource for which you want to get a list of tags. lResourceIds :: Lens' ListTagsForResources (NonEmpty Text) lResourceIds = lens _lResourceIds (\ s a -> s{_lResourceIds = a}) . _List1; instance AWSRequest ListTagsForResources where type Rs ListTagsForResources = ListTagsForResourcesResponse request = postXML route53 response = receiveXML (\ s h x -> ListTagsForResourcesResponse' <$> (pure (fromEnum s)) <*> (x .@? "ResourceTagSets" .!@ mempty >>= parseXMLList "ResourceTagSet")) instance Hashable ListTagsForResources where instance NFData ListTagsForResources where instance ToElement ListTagsForResources where toElement = mkElement "{https://route53.amazonaws.com/doc/2013-04-01/}ListTagsForResourcesRequest" instance ToHeaders ListTagsForResources where toHeaders = const mempty instance ToPath ListTagsForResources where toPath ListTagsForResources'{..} = mconcat ["/2013-04-01/tags/", toBS _lResourceType] instance ToQuery ListTagsForResources where toQuery = const mempty instance ToXML ListTagsForResources where toXML ListTagsForResources'{..} = mconcat ["ResourceIds" @= toXMLList "ResourceId" _lResourceIds] -- | A complex type containing tags for the specified resources. -- -- -- -- /See:/ 'listTagsForResourcesResponse' smart constructor. data ListTagsForResourcesResponse = ListTagsForResourcesResponse' { _lrsResponseStatus :: !Int , _lrsResourceTagSets :: ![ResourceTagSet] } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListTagsForResourcesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lrsResponseStatus' - -- | The response status code. -- -- * 'lrsResourceTagSets' - A list of @ResourceTagSet@ s containing tags associated with the specified resources. listTagsForResourcesResponse :: Int -- ^ 'lrsResponseStatus' -> ListTagsForResourcesResponse listTagsForResourcesResponse pResponseStatus_ = ListTagsForResourcesResponse' {_lrsResponseStatus = pResponseStatus_, _lrsResourceTagSets = mempty} -- | -- | The response status code. lrsResponseStatus :: Lens' ListTagsForResourcesResponse Int lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a}); -- | A list of @ResourceTagSet@ s containing tags associated with the specified resources. lrsResourceTagSets :: Lens' ListTagsForResourcesResponse [ResourceTagSet] lrsResourceTagSets = lens _lrsResourceTagSets (\ s a -> s{_lrsResourceTagSets = a}) . _Coerce; instance NFData ListTagsForResourcesResponse where