{-# 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.KinesisVideo.DeleteSignalingChannel -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes a specified signaling channel. @DeleteSignalingChannel@ is an -- asynchronous operation. If you don\'t specify the channel\'s current -- version, the most recent version is deleted. module Amazonka.KinesisVideo.DeleteSignalingChannel ( -- * Creating a Request DeleteSignalingChannel (..), newDeleteSignalingChannel, -- * Request Lenses deleteSignalingChannel_currentVersion, deleteSignalingChannel_channelARN, -- * Destructuring the Response DeleteSignalingChannelResponse (..), newDeleteSignalingChannelResponse, -- * Response Lenses deleteSignalingChannelResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.KinesisVideo.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeleteSignalingChannel' smart constructor. data DeleteSignalingChannel = DeleteSignalingChannel' { -- | The current version of the signaling channel that you want to delete. -- You can obtain the current version by invoking the -- @DescribeSignalingChannel@ or @ListSignalingChannels@ API operations. currentVersion :: Prelude.Maybe Prelude.Text, -- | The Amazon Resource Name (ARN) of the signaling channel that you want to -- delete. channelARN :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteSignalingChannel' 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: -- -- 'currentVersion', 'deleteSignalingChannel_currentVersion' - The current version of the signaling channel that you want to delete. -- You can obtain the current version by invoking the -- @DescribeSignalingChannel@ or @ListSignalingChannels@ API operations. -- -- 'channelARN', 'deleteSignalingChannel_channelARN' - The Amazon Resource Name (ARN) of the signaling channel that you want to -- delete. newDeleteSignalingChannel :: -- | 'channelARN' Prelude.Text -> DeleteSignalingChannel newDeleteSignalingChannel pChannelARN_ = DeleteSignalingChannel' { currentVersion = Prelude.Nothing, channelARN = pChannelARN_ } -- | The current version of the signaling channel that you want to delete. -- You can obtain the current version by invoking the -- @DescribeSignalingChannel@ or @ListSignalingChannels@ API operations. deleteSignalingChannel_currentVersion :: Lens.Lens' DeleteSignalingChannel (Prelude.Maybe Prelude.Text) deleteSignalingChannel_currentVersion = Lens.lens (\DeleteSignalingChannel' {currentVersion} -> currentVersion) (\s@DeleteSignalingChannel' {} a -> s {currentVersion = a} :: DeleteSignalingChannel) -- | The Amazon Resource Name (ARN) of the signaling channel that you want to -- delete. deleteSignalingChannel_channelARN :: Lens.Lens' DeleteSignalingChannel Prelude.Text deleteSignalingChannel_channelARN = Lens.lens (\DeleteSignalingChannel' {channelARN} -> channelARN) (\s@DeleteSignalingChannel' {} a -> s {channelARN = a} :: DeleteSignalingChannel) instance Core.AWSRequest DeleteSignalingChannel where type AWSResponse DeleteSignalingChannel = DeleteSignalingChannelResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> DeleteSignalingChannelResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeleteSignalingChannel where hashWithSalt _salt DeleteSignalingChannel' {..} = _salt `Prelude.hashWithSalt` currentVersion `Prelude.hashWithSalt` channelARN instance Prelude.NFData DeleteSignalingChannel where rnf DeleteSignalingChannel' {..} = Prelude.rnf currentVersion `Prelude.seq` Prelude.rnf channelARN instance Data.ToHeaders DeleteSignalingChannel where toHeaders = Prelude.const Prelude.mempty instance Data.ToJSON DeleteSignalingChannel where toJSON DeleteSignalingChannel' {..} = Data.object ( Prelude.catMaybes [ ("CurrentVersion" Data..=) Prelude.<$> currentVersion, Prelude.Just ("ChannelARN" Data..= channelARN) ] ) instance Data.ToPath DeleteSignalingChannel where toPath = Prelude.const "/deleteSignalingChannel" instance Data.ToQuery DeleteSignalingChannel where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteSignalingChannelResponse' smart constructor. data DeleteSignalingChannelResponse = DeleteSignalingChannelResponse' { -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteSignalingChannelResponse' 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', 'deleteSignalingChannelResponse_httpStatus' - The response's http status code. newDeleteSignalingChannelResponse :: -- | 'httpStatus' Prelude.Int -> DeleteSignalingChannelResponse newDeleteSignalingChannelResponse pHttpStatus_ = DeleteSignalingChannelResponse' { httpStatus = pHttpStatus_ } -- | The response's http status code. deleteSignalingChannelResponse_httpStatus :: Lens.Lens' DeleteSignalingChannelResponse Prelude.Int deleteSignalingChannelResponse_httpStatus = Lens.lens (\DeleteSignalingChannelResponse' {httpStatus} -> httpStatus) (\s@DeleteSignalingChannelResponse' {} a -> s {httpStatus = a} :: DeleteSignalingChannelResponse) instance Prelude.NFData DeleteSignalingChannelResponse where rnf DeleteSignalingChannelResponse' {..} = Prelude.rnf httpStatus