{-# 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.KinesisAnalytics.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)
--
-- This documentation is for version 1 of the Amazon Kinesis Data Analytics
-- API, which only supports SQL applications. Version 2 of the API supports
-- SQL and Java applications. For more information about version 2, see
-- </kinesisanalytics/latest/apiv2/Welcome.html Amazon Kinesis Data Analytics API V2 Documentation>.
--
-- Adds a CloudWatch log stream to monitor application configuration
-- errors. For more information about using CloudWatch log streams with
-- Amazon Kinesis Analytics applications, see
-- <https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html Working with Amazon CloudWatch Logs>.
module Amazonka.KinesisAnalytics.AddApplicationCloudWatchLoggingOption
  ( -- * Creating a Request
    AddApplicationCloudWatchLoggingOption (..),
    newAddApplicationCloudWatchLoggingOption,

    -- * Request Lenses
    addApplicationCloudWatchLoggingOption_applicationName,
    addApplicationCloudWatchLoggingOption_currentApplicationVersionId,
    addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption,

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

    -- * Response Lenses
    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.KinesisAnalytics.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'
  { -- | The Kinesis Analytics application name.
    AddApplicationCloudWatchLoggingOption -> Text
applicationName :: Prelude.Text,
    -- | The version ID of the Kinesis Analytics application.
    AddApplicationCloudWatchLoggingOption -> Natural
currentApplicationVersionId :: Prelude.Natural,
    -- | Provides the CloudWatch log stream Amazon Resource Name (ARN) and the
    -- IAM role ARN. Note: To write application messages to CloudWatch, the IAM
    -- role that is used must have the @PutLogEvents@ policy action enabled.
    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:
--
-- 'applicationName', 'addApplicationCloudWatchLoggingOption_applicationName' - The Kinesis Analytics application name.
--
-- 'currentApplicationVersionId', 'addApplicationCloudWatchLoggingOption_currentApplicationVersionId' - The version ID of the Kinesis Analytics application.
--
-- 'cloudWatchLoggingOption', 'addApplicationCloudWatchLoggingOption_cloudWatchLoggingOption' - Provides the CloudWatch log stream Amazon Resource Name (ARN) and the
-- IAM role ARN. Note: To write application messages to CloudWatch, the IAM
-- role that is used must have the @PutLogEvents@ policy action enabled.
newAddApplicationCloudWatchLoggingOption ::
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'currentApplicationVersionId'
  Prelude.Natural ->
  -- | 'cloudWatchLoggingOption'
  CloudWatchLoggingOption ->
  AddApplicationCloudWatchLoggingOption
newAddApplicationCloudWatchLoggingOption :: Text
-> Natural
-> CloudWatchLoggingOption
-> AddApplicationCloudWatchLoggingOption
newAddApplicationCloudWatchLoggingOption
  Text
pApplicationName_
  Natural
pCurrentApplicationVersionId_
  CloudWatchLoggingOption
pCloudWatchLoggingOption_ =
    AddApplicationCloudWatchLoggingOption'
      { $sel:applicationName:AddApplicationCloudWatchLoggingOption' :: Text
applicationName =
          Text
pApplicationName_,
        $sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: Natural
currentApplicationVersionId =
          Natural
pCurrentApplicationVersionId_,
        $sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: CloudWatchLoggingOption
cloudWatchLoggingOption =
          CloudWatchLoggingOption
pCloudWatchLoggingOption_
      }

-- | The Kinesis 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)

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

-- | Provides the CloudWatch log stream Amazon Resource Name (ARN) and the
-- IAM role ARN. Note: To write application messages to CloudWatch, the IAM
-- role that is used must have the @PutLogEvents@ policy action enabled.
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 -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
      ( \Int
s ResponseHeaders
h ()
x ->
          Int -> AddApplicationCloudWatchLoggingOptionResponse
AddApplicationCloudWatchLoggingOptionResponse'
            forall (f :: * -> *) a b. Functor 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' {Natural
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
currentApplicationVersionId :: Natural
applicationName :: Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Natural
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
currentApplicationVersionId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` CloudWatchLoggingOption
cloudWatchLoggingOption

instance
  Prelude.NFData
    AddApplicationCloudWatchLoggingOption
  where
  rnf :: AddApplicationCloudWatchLoggingOption -> ()
rnf AddApplicationCloudWatchLoggingOption' {Natural
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
currentApplicationVersionId :: Natural
applicationName :: Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Natural
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
..} =
    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 Natural
currentApplicationVersionId
      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_20150814.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' {Natural
Text
CloudWatchLoggingOption
cloudWatchLoggingOption :: CloudWatchLoggingOption
currentApplicationVersionId :: Natural
applicationName :: Text
$sel:cloudWatchLoggingOption:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> CloudWatchLoggingOption
$sel:currentApplicationVersionId:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Natural
$sel:applicationName:AddApplicationCloudWatchLoggingOption' :: AddApplicationCloudWatchLoggingOption -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ 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
"CurrentApplicationVersionId"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
currentApplicationVersionId
              ),
            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 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:
--
-- 'httpStatus', 'addApplicationCloudWatchLoggingOptionResponse_httpStatus' - The response's http status code.
newAddApplicationCloudWatchLoggingOptionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  AddApplicationCloudWatchLoggingOptionResponse
newAddApplicationCloudWatchLoggingOptionResponse :: Int -> AddApplicationCloudWatchLoggingOptionResponse
newAddApplicationCloudWatchLoggingOptionResponse
  Int
pHttpStatus_ =
    AddApplicationCloudWatchLoggingOptionResponse'
      { $sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | 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
httpStatus :: Int
$sel:httpStatus:AddApplicationCloudWatchLoggingOptionResponse' :: AddApplicationCloudWatchLoggingOptionResponse -> Int
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus