{-# 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.TimeStreamQuery.DeleteScheduledQuery
-- 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 given scheduled query. This is an irreversible operation.
module Amazonka.TimeStreamQuery.DeleteScheduledQuery
  ( -- * Creating a Request
    DeleteScheduledQuery (..),
    newDeleteScheduledQuery,

    -- * Request Lenses
    deleteScheduledQuery_scheduledQueryArn,

    -- * Destructuring the Response
    DeleteScheduledQueryResponse (..),
    newDeleteScheduledQueryResponse,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.TimeStreamQuery.Types

-- | /See:/ 'newDeleteScheduledQuery' smart constructor.
data DeleteScheduledQuery = DeleteScheduledQuery'
  { -- | The ARN of the scheduled query.
    DeleteScheduledQuery -> Text
scheduledQueryArn :: Prelude.Text
  }
  deriving (DeleteScheduledQuery -> DeleteScheduledQuery -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteScheduledQuery -> DeleteScheduledQuery -> Bool
$c/= :: DeleteScheduledQuery -> DeleteScheduledQuery -> Bool
== :: DeleteScheduledQuery -> DeleteScheduledQuery -> Bool
$c== :: DeleteScheduledQuery -> DeleteScheduledQuery -> Bool
Prelude.Eq, ReadPrec [DeleteScheduledQuery]
ReadPrec DeleteScheduledQuery
Int -> ReadS DeleteScheduledQuery
ReadS [DeleteScheduledQuery]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteScheduledQuery]
$creadListPrec :: ReadPrec [DeleteScheduledQuery]
readPrec :: ReadPrec DeleteScheduledQuery
$creadPrec :: ReadPrec DeleteScheduledQuery
readList :: ReadS [DeleteScheduledQuery]
$creadList :: ReadS [DeleteScheduledQuery]
readsPrec :: Int -> ReadS DeleteScheduledQuery
$creadsPrec :: Int -> ReadS DeleteScheduledQuery
Prelude.Read, Int -> DeleteScheduledQuery -> ShowS
[DeleteScheduledQuery] -> ShowS
DeleteScheduledQuery -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteScheduledQuery] -> ShowS
$cshowList :: [DeleteScheduledQuery] -> ShowS
show :: DeleteScheduledQuery -> String
$cshow :: DeleteScheduledQuery -> String
showsPrec :: Int -> DeleteScheduledQuery -> ShowS
$cshowsPrec :: Int -> DeleteScheduledQuery -> ShowS
Prelude.Show, forall x. Rep DeleteScheduledQuery x -> DeleteScheduledQuery
forall x. DeleteScheduledQuery -> Rep DeleteScheduledQuery x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteScheduledQuery x -> DeleteScheduledQuery
$cfrom :: forall x. DeleteScheduledQuery -> Rep DeleteScheduledQuery x
Prelude.Generic)

-- |
-- Create a value of 'DeleteScheduledQuery' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'scheduledQueryArn', 'deleteScheduledQuery_scheduledQueryArn' - The ARN of the scheduled query.
newDeleteScheduledQuery ::
  -- | 'scheduledQueryArn'
  Prelude.Text ->
  DeleteScheduledQuery
newDeleteScheduledQuery :: Text -> DeleteScheduledQuery
newDeleteScheduledQuery Text
pScheduledQueryArn_ =
  DeleteScheduledQuery'
    { $sel:scheduledQueryArn:DeleteScheduledQuery' :: Text
scheduledQueryArn =
        Text
pScheduledQueryArn_
    }

-- | The ARN of the scheduled query.
deleteScheduledQuery_scheduledQueryArn :: Lens.Lens' DeleteScheduledQuery Prelude.Text
deleteScheduledQuery_scheduledQueryArn :: Lens' DeleteScheduledQuery Text
deleteScheduledQuery_scheduledQueryArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteScheduledQuery' {Text
scheduledQueryArn :: Text
$sel:scheduledQueryArn:DeleteScheduledQuery' :: DeleteScheduledQuery -> Text
scheduledQueryArn} -> Text
scheduledQueryArn) (\s :: DeleteScheduledQuery
s@DeleteScheduledQuery' {} Text
a -> DeleteScheduledQuery
s {$sel:scheduledQueryArn:DeleteScheduledQuery' :: Text
scheduledQueryArn = Text
a} :: DeleteScheduledQuery)

instance Core.AWSRequest DeleteScheduledQuery where
  type
    AWSResponse DeleteScheduledQuery =
      DeleteScheduledQueryResponse
  request :: (Service -> Service)
-> DeleteScheduledQuery -> Request DeleteScheduledQuery
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DeleteScheduledQuery
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteScheduledQuery)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull DeleteScheduledQueryResponse
DeleteScheduledQueryResponse'

instance Prelude.Hashable DeleteScheduledQuery where
  hashWithSalt :: Int -> DeleteScheduledQuery -> Int
hashWithSalt Int
_salt DeleteScheduledQuery' {Text
scheduledQueryArn :: Text
$sel:scheduledQueryArn:DeleteScheduledQuery' :: DeleteScheduledQuery -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
scheduledQueryArn

instance Prelude.NFData DeleteScheduledQuery where
  rnf :: DeleteScheduledQuery -> ()
rnf DeleteScheduledQuery' {Text
scheduledQueryArn :: Text
$sel:scheduledQueryArn:DeleteScheduledQuery' :: DeleteScheduledQuery -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
scheduledQueryArn

instance Data.ToHeaders DeleteScheduledQuery where
  toHeaders :: DeleteScheduledQuery -> [Header]
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"Timestream_20181101.DeleteScheduledQuery" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DeleteScheduledQuery where
  toJSON :: DeleteScheduledQuery -> Value
toJSON DeleteScheduledQuery' {Text
scheduledQueryArn :: Text
$sel:scheduledQueryArn:DeleteScheduledQuery' :: DeleteScheduledQuery -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"ScheduledQueryArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
scheduledQueryArn)
          ]
      )

instance Data.ToPath DeleteScheduledQuery where
  toPath :: DeleteScheduledQuery -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery DeleteScheduledQuery where
  toQuery :: DeleteScheduledQuery -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDeleteScheduledQueryResponse' smart constructor.
data DeleteScheduledQueryResponse = DeleteScheduledQueryResponse'
  {
  }
  deriving (DeleteScheduledQueryResponse
-> DeleteScheduledQueryResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteScheduledQueryResponse
-> DeleteScheduledQueryResponse -> Bool
$c/= :: DeleteScheduledQueryResponse
-> DeleteScheduledQueryResponse -> Bool
== :: DeleteScheduledQueryResponse
-> DeleteScheduledQueryResponse -> Bool
$c== :: DeleteScheduledQueryResponse
-> DeleteScheduledQueryResponse -> Bool
Prelude.Eq, ReadPrec [DeleteScheduledQueryResponse]
ReadPrec DeleteScheduledQueryResponse
Int -> ReadS DeleteScheduledQueryResponse
ReadS [DeleteScheduledQueryResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteScheduledQueryResponse]
$creadListPrec :: ReadPrec [DeleteScheduledQueryResponse]
readPrec :: ReadPrec DeleteScheduledQueryResponse
$creadPrec :: ReadPrec DeleteScheduledQueryResponse
readList :: ReadS [DeleteScheduledQueryResponse]
$creadList :: ReadS [DeleteScheduledQueryResponse]
readsPrec :: Int -> ReadS DeleteScheduledQueryResponse
$creadsPrec :: Int -> ReadS DeleteScheduledQueryResponse
Prelude.Read, Int -> DeleteScheduledQueryResponse -> ShowS
[DeleteScheduledQueryResponse] -> ShowS
DeleteScheduledQueryResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteScheduledQueryResponse] -> ShowS
$cshowList :: [DeleteScheduledQueryResponse] -> ShowS
show :: DeleteScheduledQueryResponse -> String
$cshow :: DeleteScheduledQueryResponse -> String
showsPrec :: Int -> DeleteScheduledQueryResponse -> ShowS
$cshowsPrec :: Int -> DeleteScheduledQueryResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteScheduledQueryResponse x -> DeleteScheduledQueryResponse
forall x.
DeleteScheduledQueryResponse -> Rep DeleteScheduledQueryResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteScheduledQueryResponse x -> DeleteScheduledQueryResponse
$cfrom :: forall x.
DeleteScheduledQueryResponse -> Rep DeleteScheduledQueryResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteScheduledQueryResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
newDeleteScheduledQueryResponse ::
  DeleteScheduledQueryResponse
newDeleteScheduledQueryResponse :: DeleteScheduledQueryResponse
newDeleteScheduledQueryResponse =
  DeleteScheduledQueryResponse
DeleteScheduledQueryResponse'

instance Prelude.NFData DeleteScheduledQueryResponse where
  rnf :: DeleteScheduledQueryResponse -> ()
rnf DeleteScheduledQueryResponse
_ = ()