{-# 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.CertificateManager.AddTagsToCertificate -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Adds one or more tags to an ACM Certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a @key@ and an optional @value@ . You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. -- -- -- You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM Certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see . -- -- To remove one or more tags, use the 'RemoveTagsFromCertificate' action. To view all of the tags that have been applied to the certificate, use the 'ListTagsForCertificate' action. -- module Network.AWS.CertificateManager.AddTagsToCertificate ( -- * Creating a Request addTagsToCertificate , AddTagsToCertificate -- * Request Lenses , attcCertificateARN , attcTags -- * Destructuring the Response , addTagsToCertificateResponse , AddTagsToCertificateResponse ) where import Network.AWS.CertificateManager.Types import Network.AWS.CertificateManager.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'addTagsToCertificate' smart constructor. data AddTagsToCertificate = AddTagsToCertificate' { _attcCertificateARN :: !Text , _attcTags :: !(List1 Tag) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'AddTagsToCertificate' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'attcCertificateARN' - String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form: @arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012@ For more information about ARNs, see . -- -- * 'attcTags' - The key-value pair that defines the tag. The tag value is optional. addTagsToCertificate :: Text -- ^ 'attcCertificateARN' -> NonEmpty Tag -- ^ 'attcTags' -> AddTagsToCertificate addTagsToCertificate pCertificateARN_ pTags_ = AddTagsToCertificate' {_attcCertificateARN = pCertificateARN_, _attcTags = _List1 # pTags_} -- | String that contains the ARN of the ACM Certificate to which the tag is to be applied. This must be of the form: @arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012@ For more information about ARNs, see . attcCertificateARN :: Lens' AddTagsToCertificate Text attcCertificateARN = lens _attcCertificateARN (\ s a -> s{_attcCertificateARN = a}); -- | The key-value pair that defines the tag. The tag value is optional. attcTags :: Lens' AddTagsToCertificate (NonEmpty Tag) attcTags = lens _attcTags (\ s a -> s{_attcTags = a}) . _List1; instance AWSRequest AddTagsToCertificate where type Rs AddTagsToCertificate = AddTagsToCertificateResponse request = postJSON certificateManager response = receiveNull AddTagsToCertificateResponse' instance Hashable AddTagsToCertificate where instance NFData AddTagsToCertificate where instance ToHeaders AddTagsToCertificate where toHeaders = const (mconcat ["X-Amz-Target" =# ("CertificateManager.AddTagsToCertificate" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON AddTagsToCertificate where toJSON AddTagsToCertificate'{..} = object (catMaybes [Just ("CertificateArn" .= _attcCertificateARN), Just ("Tags" .= _attcTags)]) instance ToPath AddTagsToCertificate where toPath = const "/" instance ToQuery AddTagsToCertificate where toQuery = const mempty -- | /See:/ 'addTagsToCertificateResponse' smart constructor. data AddTagsToCertificateResponse = AddTagsToCertificateResponse' deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'AddTagsToCertificateResponse' with the minimum fields required to make a request. -- addTagsToCertificateResponse :: AddTagsToCertificateResponse addTagsToCertificateResponse = AddTagsToCertificateResponse' instance NFData AddTagsToCertificateResponse where