{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.Firehose.UntagDeliveryStream -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Removes tags from the specified delivery stream. Removed tags are -- deleted, and you can\'t recover them after this operation successfully -- completes. -- -- If you specify a tag that doesn\'t exist, the operation ignores it. -- -- This operation has a limit of five transactions per second per account. module Amazonka.Firehose.UntagDeliveryStream ( -- * Creating a Request UntagDeliveryStream (..), newUntagDeliveryStream, -- * Request Lenses untagDeliveryStream_deliveryStreamName, untagDeliveryStream_tagKeys, -- * Destructuring the Response UntagDeliveryStreamResponse (..), newUntagDeliveryStreamResponse, -- * Response Lenses untagDeliveryStreamResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Firehose.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newUntagDeliveryStream' smart constructor. data UntagDeliveryStream = UntagDeliveryStream' { -- | The name of the delivery stream. deliveryStreamName :: Prelude.Text, -- | A list of tag keys. Each corresponding tag is removed from the delivery -- stream. tagKeys :: Prelude.NonEmpty Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UntagDeliveryStream' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'deliveryStreamName', 'untagDeliveryStream_deliveryStreamName' - The name of the delivery stream. -- -- 'tagKeys', 'untagDeliveryStream_tagKeys' - A list of tag keys. Each corresponding tag is removed from the delivery -- stream. newUntagDeliveryStream :: -- | 'deliveryStreamName' Prelude.Text -> -- | 'tagKeys' Prelude.NonEmpty Prelude.Text -> UntagDeliveryStream newUntagDeliveryStream pDeliveryStreamName_ pTagKeys_ = UntagDeliveryStream' { deliveryStreamName = pDeliveryStreamName_, tagKeys = Lens.coerced Lens.# pTagKeys_ } -- | The name of the delivery stream. untagDeliveryStream_deliveryStreamName :: Lens.Lens' UntagDeliveryStream Prelude.Text untagDeliveryStream_deliveryStreamName = Lens.lens (\UntagDeliveryStream' {deliveryStreamName} -> deliveryStreamName) (\s@UntagDeliveryStream' {} a -> s {deliveryStreamName = a} :: UntagDeliveryStream) -- | A list of tag keys. Each corresponding tag is removed from the delivery -- stream. untagDeliveryStream_tagKeys :: Lens.Lens' UntagDeliveryStream (Prelude.NonEmpty Prelude.Text) untagDeliveryStream_tagKeys = Lens.lens (\UntagDeliveryStream' {tagKeys} -> tagKeys) (\s@UntagDeliveryStream' {} a -> s {tagKeys = a} :: UntagDeliveryStream) Prelude.. Lens.coerced instance Core.AWSRequest UntagDeliveryStream where type AWSResponse UntagDeliveryStream = UntagDeliveryStreamResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> UntagDeliveryStreamResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UntagDeliveryStream where hashWithSalt _salt UntagDeliveryStream' {..} = _salt `Prelude.hashWithSalt` deliveryStreamName `Prelude.hashWithSalt` tagKeys instance Prelude.NFData UntagDeliveryStream where rnf UntagDeliveryStream' {..} = Prelude.rnf deliveryStreamName `Prelude.seq` Prelude.rnf tagKeys instance Data.ToHeaders UntagDeliveryStream where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "Firehose_20150804.UntagDeliveryStream" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON UntagDeliveryStream where toJSON UntagDeliveryStream' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("DeliveryStreamName" Data..= deliveryStreamName), Prelude.Just ("TagKeys" Data..= tagKeys) ] ) instance Data.ToPath UntagDeliveryStream where toPath = Prelude.const "/" instance Data.ToQuery UntagDeliveryStream where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newUntagDeliveryStreamResponse' smart constructor. data UntagDeliveryStreamResponse = UntagDeliveryStreamResponse' { -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UntagDeliveryStreamResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'httpStatus', 'untagDeliveryStreamResponse_httpStatus' - The response's http status code. newUntagDeliveryStreamResponse :: -- | 'httpStatus' Prelude.Int -> UntagDeliveryStreamResponse newUntagDeliveryStreamResponse pHttpStatus_ = UntagDeliveryStreamResponse' { httpStatus = pHttpStatus_ } -- | The response's http status code. untagDeliveryStreamResponse_httpStatus :: Lens.Lens' UntagDeliveryStreamResponse Prelude.Int untagDeliveryStreamResponse_httpStatus = Lens.lens (\UntagDeliveryStreamResponse' {httpStatus} -> httpStatus) (\s@UntagDeliveryStreamResponse' {} a -> s {httpStatus = a} :: UntagDeliveryStreamResponse) instance Prelude.NFData UntagDeliveryStreamResponse where rnf UntagDeliveryStreamResponse' {..} = Prelude.rnf httpStatus