{-# 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.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
-- 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 an Amazon CloudWatch log stream from an Kinesis Data Analytics
-- application.
module Amazonka.KinesisAnalyticsV2.DeleteApplicationCloudWatchLoggingOption
  ( -- * Creating a Request
    DeleteApplicationCloudWatchLoggingOption (..),
    newDeleteApplicationCloudWatchLoggingOption,

    -- * Request Lenses
    deleteApplicationCloudWatchLoggingOption_conditionalToken,
    deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId,
    deleteApplicationCloudWatchLoggingOption_applicationName,
    deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId,

    -- * Destructuring the Response
    DeleteApplicationCloudWatchLoggingOptionResponse (..),
    newDeleteApplicationCloudWatchLoggingOptionResponse,

    -- * Response Lenses
    deleteApplicationCloudWatchLoggingOptionResponse_applicationARN,
    deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
    deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
    deleteApplicationCloudWatchLoggingOptionResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDeleteApplicationCloudWatchLoggingOption' smart constructor.
data DeleteApplicationCloudWatchLoggingOption = DeleteApplicationCloudWatchLoggingOption'
  { -- | A value you use to implement strong concurrency for application updates.
    -- You must provide the @CurrentApplicationVersionId@ or the
    -- @ConditionalToken@. You get the application\'s current
    -- @ConditionalToken@ using DescribeApplication. For better concurrency
    -- support, use the @ConditionalToken@ parameter instead of
    -- @CurrentApplicationVersionId@.
    DeleteApplicationCloudWatchLoggingOption -> Maybe Text
conditionalToken :: Prelude.Maybe Prelude.Text,
    -- | The version ID of the application. You must provide the
    -- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
    -- retrieve the application version ID using DescribeApplication. For
    -- better concurrency support, use the @ConditionalToken@ parameter instead
    -- of @CurrentApplicationVersionId@.
    DeleteApplicationCloudWatchLoggingOption -> Maybe Natural
currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
    -- | The application name.
    DeleteApplicationCloudWatchLoggingOption -> Text
applicationName :: Prelude.Text,
    -- | The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
    -- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
    -- DescribeApplication operation.
    DeleteApplicationCloudWatchLoggingOption -> Text
cloudWatchLoggingOptionId :: Prelude.Text
  }
  deriving (DeleteApplicationCloudWatchLoggingOption
-> DeleteApplicationCloudWatchLoggingOption -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteApplicationCloudWatchLoggingOption
-> DeleteApplicationCloudWatchLoggingOption -> Bool
$c/= :: DeleteApplicationCloudWatchLoggingOption
-> DeleteApplicationCloudWatchLoggingOption -> Bool
== :: DeleteApplicationCloudWatchLoggingOption
-> DeleteApplicationCloudWatchLoggingOption -> Bool
$c== :: DeleteApplicationCloudWatchLoggingOption
-> DeleteApplicationCloudWatchLoggingOption -> Bool
Prelude.Eq, ReadPrec [DeleteApplicationCloudWatchLoggingOption]
ReadPrec DeleteApplicationCloudWatchLoggingOption
Int -> ReadS DeleteApplicationCloudWatchLoggingOption
ReadS [DeleteApplicationCloudWatchLoggingOption]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteApplicationCloudWatchLoggingOption]
$creadListPrec :: ReadPrec [DeleteApplicationCloudWatchLoggingOption]
readPrec :: ReadPrec DeleteApplicationCloudWatchLoggingOption
$creadPrec :: ReadPrec DeleteApplicationCloudWatchLoggingOption
readList :: ReadS [DeleteApplicationCloudWatchLoggingOption]
$creadList :: ReadS [DeleteApplicationCloudWatchLoggingOption]
readsPrec :: Int -> ReadS DeleteApplicationCloudWatchLoggingOption
$creadsPrec :: Int -> ReadS DeleteApplicationCloudWatchLoggingOption
Prelude.Read, Int -> DeleteApplicationCloudWatchLoggingOption -> ShowS
[DeleteApplicationCloudWatchLoggingOption] -> ShowS
DeleteApplicationCloudWatchLoggingOption -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteApplicationCloudWatchLoggingOption] -> ShowS
$cshowList :: [DeleteApplicationCloudWatchLoggingOption] -> ShowS
show :: DeleteApplicationCloudWatchLoggingOption -> String
$cshow :: DeleteApplicationCloudWatchLoggingOption -> String
showsPrec :: Int -> DeleteApplicationCloudWatchLoggingOption -> ShowS
$cshowsPrec :: Int -> DeleteApplicationCloudWatchLoggingOption -> ShowS
Prelude.Show, forall x.
Rep DeleteApplicationCloudWatchLoggingOption x
-> DeleteApplicationCloudWatchLoggingOption
forall x.
DeleteApplicationCloudWatchLoggingOption
-> Rep DeleteApplicationCloudWatchLoggingOption x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteApplicationCloudWatchLoggingOption x
-> DeleteApplicationCloudWatchLoggingOption
$cfrom :: forall x.
DeleteApplicationCloudWatchLoggingOption
-> Rep DeleteApplicationCloudWatchLoggingOption x
Prelude.Generic)

-- |
-- Create a value of 'DeleteApplicationCloudWatchLoggingOption' 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:
--
-- 'conditionalToken', 'deleteApplicationCloudWatchLoggingOption_conditionalToken' - A value you use to implement strong concurrency for application updates.
-- You must provide the @CurrentApplicationVersionId@ or the
-- @ConditionalToken@. You get the application\'s current
-- @ConditionalToken@ using DescribeApplication. For better concurrency
-- support, use the @ConditionalToken@ parameter instead of
-- @CurrentApplicationVersionId@.
--
-- 'currentApplicationVersionId', 'deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId' - The version ID of the application. You must provide the
-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
-- retrieve the application version ID using DescribeApplication. For
-- better concurrency support, use the @ConditionalToken@ parameter instead
-- of @CurrentApplicationVersionId@.
--
-- 'applicationName', 'deleteApplicationCloudWatchLoggingOption_applicationName' - The application name.
--
-- 'cloudWatchLoggingOptionId', 'deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId' - The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
-- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
-- DescribeApplication operation.
newDeleteApplicationCloudWatchLoggingOption ::
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'cloudWatchLoggingOptionId'
  Prelude.Text ->
  DeleteApplicationCloudWatchLoggingOption
newDeleteApplicationCloudWatchLoggingOption :: Text -> Text -> DeleteApplicationCloudWatchLoggingOption
newDeleteApplicationCloudWatchLoggingOption
  Text
pApplicationName_
  Text
pCloudWatchLoggingOptionId_ =
    DeleteApplicationCloudWatchLoggingOption'
      { $sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: Maybe Text
conditionalToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: Maybe Natural
currentApplicationVersionId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: Text
applicationName =
          Text
pApplicationName_,
        $sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: Text
cloudWatchLoggingOptionId =
          Text
pCloudWatchLoggingOptionId_
      }

-- | A value you use to implement strong concurrency for application updates.
-- You must provide the @CurrentApplicationVersionId@ or the
-- @ConditionalToken@. You get the application\'s current
-- @ConditionalToken@ using DescribeApplication. For better concurrency
-- support, use the @ConditionalToken@ parameter instead of
-- @CurrentApplicationVersionId@.
deleteApplicationCloudWatchLoggingOption_conditionalToken :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Text)
deleteApplicationCloudWatchLoggingOption_conditionalToken :: Lens' DeleteApplicationCloudWatchLoggingOption (Maybe Text)
deleteApplicationCloudWatchLoggingOption_conditionalToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {Maybe Text
conditionalToken :: Maybe Text
$sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Text
conditionalToken} -> Maybe Text
conditionalToken) (\s :: DeleteApplicationCloudWatchLoggingOption
s@DeleteApplicationCloudWatchLoggingOption' {} Maybe Text
a -> DeleteApplicationCloudWatchLoggingOption
s {$sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: Maybe Text
conditionalToken = Maybe Text
a} :: DeleteApplicationCloudWatchLoggingOption)

-- | The version ID of the application. You must provide the
-- @CurrentApplicationVersionId@ or the @ConditionalToken@. You can
-- retrieve the application version ID using DescribeApplication. For
-- better concurrency support, use the @ConditionalToken@ parameter instead
-- of @CurrentApplicationVersionId@.
deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Natural)
deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens' DeleteApplicationCloudWatchLoggingOption (Maybe Natural)
deleteApplicationCloudWatchLoggingOption_currentApplicationVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {Maybe Natural
currentApplicationVersionId :: Maybe Natural
$sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Natural
currentApplicationVersionId} -> Maybe Natural
currentApplicationVersionId) (\s :: DeleteApplicationCloudWatchLoggingOption
s@DeleteApplicationCloudWatchLoggingOption' {} Maybe Natural
a -> DeleteApplicationCloudWatchLoggingOption
s {$sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: Maybe Natural
currentApplicationVersionId = Maybe Natural
a} :: DeleteApplicationCloudWatchLoggingOption)

-- | The application name.
deleteApplicationCloudWatchLoggingOption_applicationName :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption Prelude.Text
deleteApplicationCloudWatchLoggingOption_applicationName :: Lens' DeleteApplicationCloudWatchLoggingOption Text
deleteApplicationCloudWatchLoggingOption_applicationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {Text
applicationName :: Text
$sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
applicationName} -> Text
applicationName) (\s :: DeleteApplicationCloudWatchLoggingOption
s@DeleteApplicationCloudWatchLoggingOption' {} Text
a -> DeleteApplicationCloudWatchLoggingOption
s {$sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: Text
applicationName = Text
a} :: DeleteApplicationCloudWatchLoggingOption)

-- | The @CloudWatchLoggingOptionId@ of the Amazon CloudWatch logging option
-- to delete. You can get the @CloudWatchLoggingOptionId@ by using the
-- DescribeApplication operation.
deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOption Prelude.Text
deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId :: Lens' DeleteApplicationCloudWatchLoggingOption Text
deleteApplicationCloudWatchLoggingOption_cloudWatchLoggingOptionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOption' {Text
cloudWatchLoggingOptionId :: Text
$sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
cloudWatchLoggingOptionId} -> Text
cloudWatchLoggingOptionId) (\s :: DeleteApplicationCloudWatchLoggingOption
s@DeleteApplicationCloudWatchLoggingOption' {} Text
a -> DeleteApplicationCloudWatchLoggingOption
s {$sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: Text
cloudWatchLoggingOptionId = Text
a} :: DeleteApplicationCloudWatchLoggingOption)

instance
  Core.AWSRequest
    DeleteApplicationCloudWatchLoggingOption
  where
  type
    AWSResponse
      DeleteApplicationCloudWatchLoggingOption =
      DeleteApplicationCloudWatchLoggingOptionResponse
  request :: (Service -> Service)
-> DeleteApplicationCloudWatchLoggingOption
-> Request DeleteApplicationCloudWatchLoggingOption
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 DeleteApplicationCloudWatchLoggingOption
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse DeleteApplicationCloudWatchLoggingOption)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Natural
-> Maybe [CloudWatchLoggingOptionDescription]
-> Int
-> DeleteApplicationCloudWatchLoggingOptionResponse
DeleteApplicationCloudWatchLoggingOptionResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ApplicationARN")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ApplicationVersionId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CloudWatchLoggingOptionDescriptions"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DeleteApplicationCloudWatchLoggingOption
  where
  hashWithSalt :: Int -> DeleteApplicationCloudWatchLoggingOption -> Int
hashWithSalt
    Int
_salt
    DeleteApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
cloudWatchLoggingOptionId :: Text
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
conditionalToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
currentApplicationVersionId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
cloudWatchLoggingOptionId

instance
  Prelude.NFData
    DeleteApplicationCloudWatchLoggingOption
  where
  rnf :: DeleteApplicationCloudWatchLoggingOption -> ()
rnf DeleteApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
cloudWatchLoggingOptionId :: Text
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
conditionalToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
currentApplicationVersionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
cloudWatchLoggingOptionId

instance
  Data.ToHeaders
    DeleteApplicationCloudWatchLoggingOption
  where
  toHeaders :: DeleteApplicationCloudWatchLoggingOption -> ResponseHeaders
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 -> ResponseHeaders
Data.=# ( ByteString
"KinesisAnalytics_20180523.DeleteApplicationCloudWatchLoggingOption" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance
  Data.ToJSON
    DeleteApplicationCloudWatchLoggingOption
  where
  toJSON :: DeleteApplicationCloudWatchLoggingOption -> Value
toJSON DeleteApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
cloudWatchLoggingOptionId :: Text
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOptionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:applicationName:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:DeleteApplicationCloudWatchLoggingOption' :: DeleteApplicationCloudWatchLoggingOption -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ConditionalToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
conditionalToken,
            (Key
"CurrentApplicationVersionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
currentApplicationVersionId,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ApplicationName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
applicationName),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"CloudWatchLoggingOptionId"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
cloudWatchLoggingOptionId
              )
          ]
      )

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

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

-- | /See:/ 'newDeleteApplicationCloudWatchLoggingOptionResponse' smart constructor.
data DeleteApplicationCloudWatchLoggingOptionResponse = DeleteApplicationCloudWatchLoggingOptionResponse'
  { -- | The application\'s Amazon Resource Name (ARN).
    DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Text
applicationARN :: Prelude.Maybe Prelude.Text,
    -- | The version ID of the application. Kinesis Data Analytics updates the
    -- @ApplicationVersionId@ each time you change the CloudWatch logging
    -- options.
    DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Natural
applicationVersionId :: Prelude.Maybe Prelude.Natural,
    -- | The descriptions of the remaining CloudWatch logging options for the
    -- application.
    DeleteApplicationCloudWatchLoggingOptionResponse
-> Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions :: Prelude.Maybe [CloudWatchLoggingOptionDescription],
    -- | The response's http status code.
    DeleteApplicationCloudWatchLoggingOptionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DeleteApplicationCloudWatchLoggingOptionResponse
-> DeleteApplicationCloudWatchLoggingOptionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteApplicationCloudWatchLoggingOptionResponse
-> DeleteApplicationCloudWatchLoggingOptionResponse -> Bool
$c/= :: DeleteApplicationCloudWatchLoggingOptionResponse
-> DeleteApplicationCloudWatchLoggingOptionResponse -> Bool
== :: DeleteApplicationCloudWatchLoggingOptionResponse
-> DeleteApplicationCloudWatchLoggingOptionResponse -> Bool
$c== :: DeleteApplicationCloudWatchLoggingOptionResponse
-> DeleteApplicationCloudWatchLoggingOptionResponse -> Bool
Prelude.Eq, ReadPrec [DeleteApplicationCloudWatchLoggingOptionResponse]
ReadPrec DeleteApplicationCloudWatchLoggingOptionResponse
Int -> ReadS DeleteApplicationCloudWatchLoggingOptionResponse
ReadS [DeleteApplicationCloudWatchLoggingOptionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteApplicationCloudWatchLoggingOptionResponse]
$creadListPrec :: ReadPrec [DeleteApplicationCloudWatchLoggingOptionResponse]
readPrec :: ReadPrec DeleteApplicationCloudWatchLoggingOptionResponse
$creadPrec :: ReadPrec DeleteApplicationCloudWatchLoggingOptionResponse
readList :: ReadS [DeleteApplicationCloudWatchLoggingOptionResponse]
$creadList :: ReadS [DeleteApplicationCloudWatchLoggingOptionResponse]
readsPrec :: Int -> ReadS DeleteApplicationCloudWatchLoggingOptionResponse
$creadsPrec :: Int -> ReadS DeleteApplicationCloudWatchLoggingOptionResponse
Prelude.Read, Int -> DeleteApplicationCloudWatchLoggingOptionResponse -> ShowS
[DeleteApplicationCloudWatchLoggingOptionResponse] -> ShowS
DeleteApplicationCloudWatchLoggingOptionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteApplicationCloudWatchLoggingOptionResponse] -> ShowS
$cshowList :: [DeleteApplicationCloudWatchLoggingOptionResponse] -> ShowS
show :: DeleteApplicationCloudWatchLoggingOptionResponse -> String
$cshow :: DeleteApplicationCloudWatchLoggingOptionResponse -> String
showsPrec :: Int -> DeleteApplicationCloudWatchLoggingOptionResponse -> ShowS
$cshowsPrec :: Int -> DeleteApplicationCloudWatchLoggingOptionResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteApplicationCloudWatchLoggingOptionResponse x
-> DeleteApplicationCloudWatchLoggingOptionResponse
forall x.
DeleteApplicationCloudWatchLoggingOptionResponse
-> Rep DeleteApplicationCloudWatchLoggingOptionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteApplicationCloudWatchLoggingOptionResponse x
-> DeleteApplicationCloudWatchLoggingOptionResponse
$cfrom :: forall x.
DeleteApplicationCloudWatchLoggingOptionResponse
-> Rep DeleteApplicationCloudWatchLoggingOptionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteApplicationCloudWatchLoggingOptionResponse' 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:
--
-- 'applicationARN', 'deleteApplicationCloudWatchLoggingOptionResponse_applicationARN' - The application\'s Amazon Resource Name (ARN).
--
-- 'applicationVersionId', 'deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId' - The version ID of the application. Kinesis Data Analytics updates the
-- @ApplicationVersionId@ each time you change the CloudWatch logging
-- options.
--
-- 'cloudWatchLoggingOptionDescriptions', 'deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions' - The descriptions of the remaining CloudWatch logging options for the
-- application.
--
-- 'httpStatus', 'deleteApplicationCloudWatchLoggingOptionResponse_httpStatus' - The response's http status code.
newDeleteApplicationCloudWatchLoggingOptionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteApplicationCloudWatchLoggingOptionResponse
newDeleteApplicationCloudWatchLoggingOptionResponse :: Int -> DeleteApplicationCloudWatchLoggingOptionResponse
newDeleteApplicationCloudWatchLoggingOptionResponse
  Int
pHttpStatus_ =
    DeleteApplicationCloudWatchLoggingOptionResponse'
      { $sel:applicationARN:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe Text
applicationARN =
          forall a. Maybe a
Prelude.Nothing,
        $sel:applicationVersionId:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe Natural
applicationVersionId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:cloudWatchLoggingOptionDescriptions:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DeleteApplicationCloudWatchLoggingOptionResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The application\'s Amazon Resource Name (ARN).
deleteApplicationCloudWatchLoggingOptionResponse_applicationARN :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Text)
deleteApplicationCloudWatchLoggingOptionResponse_applicationARN :: Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Maybe Text)
deleteApplicationCloudWatchLoggingOptionResponse_applicationARN = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {Maybe Text
applicationARN :: Maybe Text
$sel:applicationARN:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Text
applicationARN} -> Maybe Text
applicationARN) (\s :: DeleteApplicationCloudWatchLoggingOptionResponse
s@DeleteApplicationCloudWatchLoggingOptionResponse' {} Maybe Text
a -> DeleteApplicationCloudWatchLoggingOptionResponse
s {$sel:applicationARN:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe Text
applicationARN = Maybe Text
a} :: DeleteApplicationCloudWatchLoggingOptionResponse)

-- | The version ID of the application. Kinesis Data Analytics updates the
-- @ApplicationVersionId@ each time you change the CloudWatch logging
-- options.
deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe Prelude.Natural)
deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId :: Lens'
  DeleteApplicationCloudWatchLoggingOptionResponse (Maybe Natural)
deleteApplicationCloudWatchLoggingOptionResponse_applicationVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {Maybe Natural
applicationVersionId :: Maybe Natural
$sel:applicationVersionId:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Natural
applicationVersionId} -> Maybe Natural
applicationVersionId) (\s :: DeleteApplicationCloudWatchLoggingOptionResponse
s@DeleteApplicationCloudWatchLoggingOptionResponse' {} Maybe Natural
a -> DeleteApplicationCloudWatchLoggingOptionResponse
s {$sel:applicationVersionId:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe Natural
applicationVersionId = Maybe Natural
a} :: DeleteApplicationCloudWatchLoggingOptionResponse)

-- | The descriptions of the remaining CloudWatch logging options for the
-- application.
deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe [CloudWatchLoggingOptionDescription])
deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens'
  DeleteApplicationCloudWatchLoggingOptionResponse
  (Maybe [CloudWatchLoggingOptionDescription])
deleteApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions :: Maybe [CloudWatchLoggingOptionDescription]
$sel:cloudWatchLoggingOptionDescriptions:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse
-> Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions} -> Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions) (\s :: DeleteApplicationCloudWatchLoggingOptionResponse
s@DeleteApplicationCloudWatchLoggingOptionResponse' {} Maybe [CloudWatchLoggingOptionDescription]
a -> DeleteApplicationCloudWatchLoggingOptionResponse
s {$sel:cloudWatchLoggingOptionDescriptions:DeleteApplicationCloudWatchLoggingOptionResponse' :: Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions = Maybe [CloudWatchLoggingOptionDescription]
a} :: DeleteApplicationCloudWatchLoggingOptionResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
deleteApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens.Lens' DeleteApplicationCloudWatchLoggingOptionResponse Prelude.Int
deleteApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens' DeleteApplicationCloudWatchLoggingOptionResponse Int
deleteApplicationCloudWatchLoggingOptionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteApplicationCloudWatchLoggingOptionResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteApplicationCloudWatchLoggingOptionResponse
s@DeleteApplicationCloudWatchLoggingOptionResponse' {} Int
a -> DeleteApplicationCloudWatchLoggingOptionResponse
s {$sel:httpStatus:DeleteApplicationCloudWatchLoggingOptionResponse' :: Int
httpStatus = Int
a} :: DeleteApplicationCloudWatchLoggingOptionResponse)

instance
  Prelude.NFData
    DeleteApplicationCloudWatchLoggingOptionResponse
  where
  rnf :: DeleteApplicationCloudWatchLoggingOptionResponse -> ()
rnf
    DeleteApplicationCloudWatchLoggingOptionResponse' {Int
Maybe Natural
Maybe [CloudWatchLoggingOptionDescription]
Maybe Text
httpStatus :: Int
cloudWatchLoggingOptionDescriptions :: Maybe [CloudWatchLoggingOptionDescription]
applicationVersionId :: Maybe Natural
applicationARN :: Maybe Text
$sel:httpStatus:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Int
$sel:cloudWatchLoggingOptionDescriptions:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse
-> Maybe [CloudWatchLoggingOptionDescription]
$sel:applicationVersionId:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Natural
$sel:applicationARN:DeleteApplicationCloudWatchLoggingOptionResponse' :: DeleteApplicationCloudWatchLoggingOptionResponse -> Maybe Text
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationARN
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
applicationVersionId
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus