{-# 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.AddApplicationCloudWatchLoggingOption
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Adds an Amazon CloudWatch log stream to monitor application
-- configuration errors.
module Amazonka.KinesisAnalyticsV2.AddApplicationCloudWatchLoggingOption
  ( -- * Creating a Request
    AddApplicationCloudWatchLoggingOption (..),
    newAddApplicationCloudWatchLoggingOption,

    -- * Request Lenses
    addApplicationCloudWatchLoggingOption_conditionalToken,
    addApplicationCloudWatchLoggingOption_currentApplicationVersionId,
    addApplicationCloudWatchLoggingOption_applicationName,
    addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption,

    -- * Destructuring the Response
    AddApplicationCloudWatchLoggingOptionResponse (..),
    newAddApplicationCloudWatchLoggingOptionResponse,

    -- * Response Lenses
    addApplicationCloudWatchLoggingOptionResponse_applicationARN,
    addApplicationCloudWatchLoggingOptionResponse_applicationVersionId,
    addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions,
    addApplicationCloudWatchLoggingOptionResponse_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:/ 'newAddApplicationCloudWatchLoggingOption' smart constructor.
data AddApplicationCloudWatchLoggingOption = AddApplicationCloudWatchLoggingOption'
  { -- | 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@.
    AddApplicationCloudWatchLoggingOption -> Maybe Text
conditionalToken :: Prelude.Maybe Prelude.Text,
    -- | The version ID of the Kinesis Data Analytics 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@.
    AddApplicationCloudWatchLoggingOption -> Maybe Natural
currentApplicationVersionId :: Prelude.Maybe Prelude.Natural,
    -- | The Kinesis Data Analytics application name.
    AddApplicationCloudWatchLoggingOption -> Text
applicationName :: Prelude.Text,
    -- | Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
    AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
  }
  deriving (AddApplicationCloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AddApplicationCloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption -> Bool
$c/= :: AddApplicationCloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption -> Bool
== :: AddApplicationCloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption -> Bool
$c== :: AddApplicationCloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption -> Bool
Prelude.Eq, ReadPrec [AddApplicationCloudWatchLoggingOption]
ReadPrec AddApplicationCloudWatchLoggingOption
Int -> ReadS AddApplicationCloudWatchLoggingOption
ReadS [AddApplicationCloudWatchLoggingOption]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AddApplicationCloudWatchLoggingOption]
$creadListPrec :: ReadPrec [AddApplicationCloudWatchLoggingOption]
readPrec :: ReadPrec AddApplicationCloudWatchLoggingOption
$creadPrec :: ReadPrec AddApplicationCloudWatchLoggingOption
readList :: ReadS [AddApplicationCloudWatchLoggingOption]
$creadList :: ReadS [AddApplicationCloudWatchLoggingOption]
readsPrec :: Int -> ReadS AddApplicationCloudWatchLoggingOption
$creadsPrec :: Int -> ReadS AddApplicationCloudWatchLoggingOption
Prelude.Read, Int -> AddApplicationCloudWatchLoggingOption -> ShowS
[AddApplicationCloudWatchLoggingOption] -> ShowS
AddApplicationCloudWatchLoggingOption -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AddApplicationCloudWatchLoggingOption] -> ShowS
$cshowList :: [AddApplicationCloudWatchLoggingOption] -> ShowS
show :: AddApplicationCloudWatchLoggingOption -> String
$cshow :: AddApplicationCloudWatchLoggingOption -> String
showsPrec :: Int -> AddApplicationCloudWatchLoggingOption -> ShowS
$cshowsPrec :: Int -> AddApplicationCloudWatchLoggingOption -> ShowS
Prelude.Show, forall x.
Rep AddApplicationCloudWatchLoggingOption x
-> AddApplicationCloudWatchLoggingOption
forall x.
AddApplicationCloudWatchLoggingOption
-> Rep AddApplicationCloudWatchLoggingOption x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AddApplicationCloudWatchLoggingOption x
-> AddApplicationCloudWatchLoggingOption
$cfrom :: forall x.
AddApplicationCloudWatchLoggingOption
-> Rep AddApplicationCloudWatchLoggingOption x
Prelude.Generic)

-- |
-- Create a value of 'AddApplicationCloudWatchLoggingOption' 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', 'addApplicationCloudWatchLoggingOption_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', 'addApplicationCloudWatchLoggingOption_currentApplicationVersionId' - The version ID of the Kinesis Data Analytics 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', 'addApplicationCloudWatchLoggingOption_applicationName' - The Kinesis Data Analytics application name.
--
-- 'cloudWatchLoggingOption', 'addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption' - Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
newAddApplicationCloudWatchLoggingOption ::
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'cloudWatchLoggingOption'
  CloudWatchLoggingOption ->
  AddApplicationCloudWatchLoggingOption
newAddApplicationCloudWatchLoggingOption :: Text
-> CloudWatchLoggingOption -> AddApplicationCloudWatchLoggingOption
newAddApplicationCloudWatchLoggingOption
  Text
pApplicationName_
  CloudWatchLoggingOption
pCloudWatchLoggingOption_ =
    AddApplicationCloudWatchLoggingOption'
      { $sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: Maybe Text
conditionalToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: Maybe Natural
currentApplicationVersionId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:applicationName:AddApplicationCloudWatchLoggingOption' :: Text
applicationName = Text
pApplicationName_,
        $sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: CloudWatchLoggingOption
cloudWatchLoggingOption =
          CloudWatchLoggingOption
pCloudWatchLoggingOption_
      }

-- | 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@.
addApplicationCloudWatchLoggingOption_conditionalToken :: Lens.Lens' AddApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Text)
addApplicationCloudWatchLoggingOption_conditionalToken :: Lens' AddApplicationCloudWatchLoggingOption (Maybe Text)
addApplicationCloudWatchLoggingOption_conditionalToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddApplicationCloudWatchLoggingOption' {Maybe Text
conditionalToken :: Maybe Text
$sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Maybe Text
conditionalToken} -> Maybe Text
conditionalToken) (\s :: AddApplicationCloudWatchLoggingOption
s@AddApplicationCloudWatchLoggingOption' {} Maybe Text
a -> AddApplicationCloudWatchLoggingOption
s {$sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: Maybe Text
conditionalToken = Maybe Text
a} :: AddApplicationCloudWatchLoggingOption)

-- | The version ID of the Kinesis Data Analytics 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@.
addApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens.Lens' AddApplicationCloudWatchLoggingOption (Prelude.Maybe Prelude.Natural)
addApplicationCloudWatchLoggingOption_currentApplicationVersionId :: Lens' AddApplicationCloudWatchLoggingOption (Maybe Natural)
addApplicationCloudWatchLoggingOption_currentApplicationVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddApplicationCloudWatchLoggingOption' {Maybe Natural
currentApplicationVersionId :: Maybe Natural
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Maybe Natural
currentApplicationVersionId} -> Maybe Natural
currentApplicationVersionId) (\s :: AddApplicationCloudWatchLoggingOption
s@AddApplicationCloudWatchLoggingOption' {} Maybe Natural
a -> AddApplicationCloudWatchLoggingOption
s {$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: Maybe Natural
currentApplicationVersionId = Maybe Natural
a} :: AddApplicationCloudWatchLoggingOption)

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

-- | Provides the Amazon CloudWatch log stream Amazon Resource Name (ARN).
addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption :: Lens.Lens' AddApplicationCloudWatchLoggingOption CloudWatchLoggingOption
addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption :: Lens' AddApplicationCloudWatchLoggingOption CloudWatchLoggingOption
addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddApplicationCloudWatchLoggingOption' {CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
cloudWatchLoggingOption} -> CloudWatchLoggingOption
cloudWatchLoggingOption) (\s :: AddApplicationCloudWatchLoggingOption
s@AddApplicationCloudWatchLoggingOption' {} CloudWatchLoggingOption
a -> AddApplicationCloudWatchLoggingOption
s {$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: CloudWatchLoggingOption
cloudWatchLoggingOption = CloudWatchLoggingOption
a} :: AddApplicationCloudWatchLoggingOption)

instance
  Core.AWSRequest
    AddApplicationCloudWatchLoggingOption
  where
  type
    AWSResponse
      AddApplicationCloudWatchLoggingOption =
      AddApplicationCloudWatchLoggingOptionResponse
  request :: (Service -> Service)
-> AddApplicationCloudWatchLoggingOption
-> Request AddApplicationCloudWatchLoggingOption
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 AddApplicationCloudWatchLoggingOption
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse AddApplicationCloudWatchLoggingOption)))
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
-> AddApplicationCloudWatchLoggingOptionResponse
AddApplicationCloudWatchLoggingOptionResponse'
            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
    AddApplicationCloudWatchLoggingOption
  where
  hashWithSalt :: Int -> AddApplicationCloudWatchLoggingOption -> Int
hashWithSalt
    Int
_salt
    AddApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> 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` CloudWatchLoggingOption
cloudWatchLoggingOption

instance
  Prelude.NFData
    AddApplicationCloudWatchLoggingOption
  where
  rnf :: AddApplicationCloudWatchLoggingOption -> ()
rnf AddApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> 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 CloudWatchLoggingOption
cloudWatchLoggingOption

instance
  Data.ToHeaders
    AddApplicationCloudWatchLoggingOption
  where
  toHeaders :: AddApplicationCloudWatchLoggingOption -> 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.AddApplicationCloudWatchLoggingOption" ::
                          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
    AddApplicationCloudWatchLoggingOption
  where
  toJSON :: AddApplicationCloudWatchLoggingOption -> Value
toJSON AddApplicationCloudWatchLoggingOption' {Maybe Natural
Maybe Text
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
applicationName :: Text
currentApplicationVersionId :: Maybe Natural
conditionalToken :: Maybe Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Maybe Natural
$sel:conditionalToken:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> 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
"CloudWatchLoggingOption"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= CloudWatchLoggingOption
cloudWatchLoggingOption
              )
          ]
      )

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

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

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

-- |
-- Create a value of 'AddApplicationCloudWatchLoggingOptionResponse' 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', 'addApplicationCloudWatchLoggingOptionResponse_applicationARN' - The application\'s ARN.
--
-- 'applicationVersionId', 'addApplicationCloudWatchLoggingOptionResponse_applicationVersionId' - The new version ID of the Kinesis Data Analytics application. Kinesis
-- Data Analytics updates the @ApplicationVersionId@ each time you change
-- the CloudWatch logging options.
--
-- 'cloudWatchLoggingOptionDescriptions', 'addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions' - The descriptions of the current CloudWatch logging options for the
-- Kinesis Data Analytics application.
--
-- 'httpStatus', 'addApplicationCloudWatchLoggingOptionResponse_httpStatus' - The response's http status code.
newAddApplicationCloudWatchLoggingOptionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  AddApplicationCloudWatchLoggingOptionResponse
newAddApplicationCloudWatchLoggingOptionResponse :: Int -> AddApplicationCloudWatchLoggingOptionResponse
newAddApplicationCloudWatchLoggingOptionResponse
  Int
pHttpStatus_ =
    AddApplicationCloudWatchLoggingOptionResponse'
      { $sel:applicationARN:AddApplicationCloudWatchLoggingOptionResponse' :: Maybe Text
applicationARN =
          forall a. Maybe a
Prelude.Nothing,
        $sel:applicationVersionId:AddApplicationCloudWatchLoggingOptionResponse' :: Maybe Natural
applicationVersionId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:cloudWatchLoggingOptionDescriptions:AddApplicationCloudWatchLoggingOptionResponse' :: Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

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

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

-- | The descriptions of the current CloudWatch logging options for the
-- Kinesis Data Analytics application.
addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse (Prelude.Maybe [CloudWatchLoggingOptionDescription])
addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions :: Lens'
  AddApplicationCloudWatchLoggingOptionResponse
  (Maybe [CloudWatchLoggingOptionDescription])
addApplicationCloudWatchLoggingOptionResponse_cloudWatchLoggingOptionDescriptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions :: Maybe [CloudWatchLoggingOptionDescription]
$sel:cloudWatchLoggingOptionDescriptions:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse
-> Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions} -> Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions) (\s :: AddApplicationCloudWatchLoggingOptionResponse
s@AddApplicationCloudWatchLoggingOptionResponse' {} Maybe [CloudWatchLoggingOptionDescription]
a -> AddApplicationCloudWatchLoggingOptionResponse
s {$sel:cloudWatchLoggingOptionDescriptions:AddApplicationCloudWatchLoggingOptionResponse' :: Maybe [CloudWatchLoggingOptionDescription]
cloudWatchLoggingOptionDescriptions = Maybe [CloudWatchLoggingOptionDescription]
a} :: AddApplicationCloudWatchLoggingOptionResponse) 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.
addApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens.Lens' AddApplicationCloudWatchLoggingOptionResponse Prelude.Int
addApplicationCloudWatchLoggingOptionResponse_httpStatus :: Lens' AddApplicationCloudWatchLoggingOptionResponse Int
addApplicationCloudWatchLoggingOptionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AddApplicationCloudWatchLoggingOptionResponse' {Int
httpStatus :: Int
$sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: AddApplicationCloudWatchLoggingOptionResponse
s@AddApplicationCloudWatchLoggingOptionResponse' {} Int
a -> AddApplicationCloudWatchLoggingOptionResponse
s {$sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: Int
httpStatus = Int
a} :: AddApplicationCloudWatchLoggingOptionResponse)

instance
  Prelude.NFData
    AddApplicationCloudWatchLoggingOptionResponse
  where
  rnf :: AddApplicationCloudWatchLoggingOptionResponse -> ()
rnf
    AddApplicationCloudWatchLoggingOptionResponse' {Int
Maybe Natural
Maybe [CloudWatchLoggingOptionDescription]
Maybe Text
httpStatus :: Int
cloudWatchLoggingOptionDescriptions :: Maybe [CloudWatchLoggingOptionDescription]
applicationVersionId :: Maybe Natural
applicationARN :: Maybe Text
$sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse -> Int
$sel:cloudWatchLoggingOptionDescriptions:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse
-> Maybe [CloudWatchLoggingOptionDescription]
$sel:applicationVersionId:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse -> Maybe Natural
$sel:applicationARN:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse -> 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