{-# 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.ApplicationInsights.UpdateComponentConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates the monitoring configurations for the component. The
-- configuration input parameter is an escaped JSON of the configuration
-- and should match the schema of what is returned by
-- @DescribeComponentConfigurationRecommendation@.
module Amazonka.ApplicationInsights.UpdateComponentConfiguration
  ( -- * Creating a Request
    UpdateComponentConfiguration (..),
    newUpdateComponentConfiguration,

    -- * Request Lenses
    updateComponentConfiguration_autoConfigEnabled,
    updateComponentConfiguration_componentConfiguration,
    updateComponentConfiguration_monitor,
    updateComponentConfiguration_tier,
    updateComponentConfiguration_resourceGroupName,
    updateComponentConfiguration_componentName,

    -- * Destructuring the Response
    UpdateComponentConfigurationResponse (..),
    newUpdateComponentConfigurationResponse,

    -- * Response Lenses
    updateComponentConfigurationResponse_httpStatus,
  )
where

import Amazonka.ApplicationInsights.Types
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

-- | /See:/ 'newUpdateComponentConfiguration' smart constructor.
data UpdateComponentConfiguration = UpdateComponentConfiguration'
  { -- | Automatically configures the component by applying the recommended
    -- configurations.
    UpdateComponentConfiguration -> Maybe Bool
autoConfigEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The configuration settings of the component. The value is the escaped
    -- JSON of the configuration. For more information about the JSON format,
    -- see
    -- <https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html Working with JSON>.
    -- You can send a request to @DescribeComponentConfigurationRecommendation@
    -- to see the recommended configuration for a component. For the complete
    -- format of the component configuration file, see
    -- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html Component Configuration>.
    UpdateComponentConfiguration -> Maybe Text
componentConfiguration :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the application component is monitored.
    UpdateComponentConfiguration -> Maybe Bool
monitor :: Prelude.Maybe Prelude.Bool,
    -- | The tier of the application component.
    UpdateComponentConfiguration -> Maybe Tier
tier :: Prelude.Maybe Tier,
    -- | The name of the resource group.
    UpdateComponentConfiguration -> Text
resourceGroupName :: Prelude.Text,
    -- | The name of the component.
    UpdateComponentConfiguration -> Text
componentName :: Prelude.Text
  }
  deriving (UpdateComponentConfiguration
-> UpdateComponentConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateComponentConfiguration
-> UpdateComponentConfiguration -> Bool
$c/= :: UpdateComponentConfiguration
-> UpdateComponentConfiguration -> Bool
== :: UpdateComponentConfiguration
-> UpdateComponentConfiguration -> Bool
$c== :: UpdateComponentConfiguration
-> UpdateComponentConfiguration -> Bool
Prelude.Eq, ReadPrec [UpdateComponentConfiguration]
ReadPrec UpdateComponentConfiguration
Int -> ReadS UpdateComponentConfiguration
ReadS [UpdateComponentConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateComponentConfiguration]
$creadListPrec :: ReadPrec [UpdateComponentConfiguration]
readPrec :: ReadPrec UpdateComponentConfiguration
$creadPrec :: ReadPrec UpdateComponentConfiguration
readList :: ReadS [UpdateComponentConfiguration]
$creadList :: ReadS [UpdateComponentConfiguration]
readsPrec :: Int -> ReadS UpdateComponentConfiguration
$creadsPrec :: Int -> ReadS UpdateComponentConfiguration
Prelude.Read, Int -> UpdateComponentConfiguration -> ShowS
[UpdateComponentConfiguration] -> ShowS
UpdateComponentConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateComponentConfiguration] -> ShowS
$cshowList :: [UpdateComponentConfiguration] -> ShowS
show :: UpdateComponentConfiguration -> String
$cshow :: UpdateComponentConfiguration -> String
showsPrec :: Int -> UpdateComponentConfiguration -> ShowS
$cshowsPrec :: Int -> UpdateComponentConfiguration -> ShowS
Prelude.Show, forall x.
Rep UpdateComponentConfiguration x -> UpdateComponentConfiguration
forall x.
UpdateComponentConfiguration -> Rep UpdateComponentConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateComponentConfiguration x -> UpdateComponentConfiguration
$cfrom :: forall x.
UpdateComponentConfiguration -> Rep UpdateComponentConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'UpdateComponentConfiguration' 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:
--
-- 'autoConfigEnabled', 'updateComponentConfiguration_autoConfigEnabled' - Automatically configures the component by applying the recommended
-- configurations.
--
-- 'componentConfiguration', 'updateComponentConfiguration_componentConfiguration' - The configuration settings of the component. The value is the escaped
-- JSON of the configuration. For more information about the JSON format,
-- see
-- <https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html Working with JSON>.
-- You can send a request to @DescribeComponentConfigurationRecommendation@
-- to see the recommended configuration for a component. For the complete
-- format of the component configuration file, see
-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html Component Configuration>.
--
-- 'monitor', 'updateComponentConfiguration_monitor' - Indicates whether the application component is monitored.
--
-- 'tier', 'updateComponentConfiguration_tier' - The tier of the application component.
--
-- 'resourceGroupName', 'updateComponentConfiguration_resourceGroupName' - The name of the resource group.
--
-- 'componentName', 'updateComponentConfiguration_componentName' - The name of the component.
newUpdateComponentConfiguration ::
  -- | 'resourceGroupName'
  Prelude.Text ->
  -- | 'componentName'
  Prelude.Text ->
  UpdateComponentConfiguration
newUpdateComponentConfiguration :: Text -> Text -> UpdateComponentConfiguration
newUpdateComponentConfiguration
  Text
pResourceGroupName_
  Text
pComponentName_ =
    UpdateComponentConfiguration'
      { $sel:autoConfigEnabled:UpdateComponentConfiguration' :: Maybe Bool
autoConfigEnabled =
          forall a. Maybe a
Prelude.Nothing,
        $sel:componentConfiguration:UpdateComponentConfiguration' :: Maybe Text
componentConfiguration = forall a. Maybe a
Prelude.Nothing,
        $sel:monitor:UpdateComponentConfiguration' :: Maybe Bool
monitor = forall a. Maybe a
Prelude.Nothing,
        $sel:tier:UpdateComponentConfiguration' :: Maybe Tier
tier = forall a. Maybe a
Prelude.Nothing,
        $sel:resourceGroupName:UpdateComponentConfiguration' :: Text
resourceGroupName = Text
pResourceGroupName_,
        $sel:componentName:UpdateComponentConfiguration' :: Text
componentName = Text
pComponentName_
      }

-- | Automatically configures the component by applying the recommended
-- configurations.
updateComponentConfiguration_autoConfigEnabled :: Lens.Lens' UpdateComponentConfiguration (Prelude.Maybe Prelude.Bool)
updateComponentConfiguration_autoConfigEnabled :: Lens' UpdateComponentConfiguration (Maybe Bool)
updateComponentConfiguration_autoConfigEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Maybe Bool
autoConfigEnabled :: Maybe Bool
$sel:autoConfigEnabled:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
autoConfigEnabled} -> Maybe Bool
autoConfigEnabled) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Maybe Bool
a -> UpdateComponentConfiguration
s {$sel:autoConfigEnabled:UpdateComponentConfiguration' :: Maybe Bool
autoConfigEnabled = Maybe Bool
a} :: UpdateComponentConfiguration)

-- | The configuration settings of the component. The value is the escaped
-- JSON of the configuration. For more information about the JSON format,
-- see
-- <https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html Working with JSON>.
-- You can send a request to @DescribeComponentConfigurationRecommendation@
-- to see the recommended configuration for a component. For the complete
-- format of the component configuration file, see
-- <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/component-config.html Component Configuration>.
updateComponentConfiguration_componentConfiguration :: Lens.Lens' UpdateComponentConfiguration (Prelude.Maybe Prelude.Text)
updateComponentConfiguration_componentConfiguration :: Lens' UpdateComponentConfiguration (Maybe Text)
updateComponentConfiguration_componentConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Maybe Text
componentConfiguration :: Maybe Text
$sel:componentConfiguration:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Text
componentConfiguration} -> Maybe Text
componentConfiguration) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Maybe Text
a -> UpdateComponentConfiguration
s {$sel:componentConfiguration:UpdateComponentConfiguration' :: Maybe Text
componentConfiguration = Maybe Text
a} :: UpdateComponentConfiguration)

-- | Indicates whether the application component is monitored.
updateComponentConfiguration_monitor :: Lens.Lens' UpdateComponentConfiguration (Prelude.Maybe Prelude.Bool)
updateComponentConfiguration_monitor :: Lens' UpdateComponentConfiguration (Maybe Bool)
updateComponentConfiguration_monitor = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Maybe Bool
monitor :: Maybe Bool
$sel:monitor:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
monitor} -> Maybe Bool
monitor) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Maybe Bool
a -> UpdateComponentConfiguration
s {$sel:monitor:UpdateComponentConfiguration' :: Maybe Bool
monitor = Maybe Bool
a} :: UpdateComponentConfiguration)

-- | The tier of the application component.
updateComponentConfiguration_tier :: Lens.Lens' UpdateComponentConfiguration (Prelude.Maybe Tier)
updateComponentConfiguration_tier :: Lens' UpdateComponentConfiguration (Maybe Tier)
updateComponentConfiguration_tier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Maybe Tier
tier :: Maybe Tier
$sel:tier:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Tier
tier} -> Maybe Tier
tier) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Maybe Tier
a -> UpdateComponentConfiguration
s {$sel:tier:UpdateComponentConfiguration' :: Maybe Tier
tier = Maybe Tier
a} :: UpdateComponentConfiguration)

-- | The name of the resource group.
updateComponentConfiguration_resourceGroupName :: Lens.Lens' UpdateComponentConfiguration Prelude.Text
updateComponentConfiguration_resourceGroupName :: Lens' UpdateComponentConfiguration Text
updateComponentConfiguration_resourceGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Text
resourceGroupName :: Text
$sel:resourceGroupName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
resourceGroupName} -> Text
resourceGroupName) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Text
a -> UpdateComponentConfiguration
s {$sel:resourceGroupName:UpdateComponentConfiguration' :: Text
resourceGroupName = Text
a} :: UpdateComponentConfiguration)

-- | The name of the component.
updateComponentConfiguration_componentName :: Lens.Lens' UpdateComponentConfiguration Prelude.Text
updateComponentConfiguration_componentName :: Lens' UpdateComponentConfiguration Text
updateComponentConfiguration_componentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateComponentConfiguration' {Text
componentName :: Text
$sel:componentName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
componentName} -> Text
componentName) (\s :: UpdateComponentConfiguration
s@UpdateComponentConfiguration' {} Text
a -> UpdateComponentConfiguration
s {$sel:componentName:UpdateComponentConfiguration' :: Text
componentName = Text
a} :: UpdateComponentConfiguration)

instance Core.AWSRequest UpdateComponentConfiguration where
  type
    AWSResponse UpdateComponentConfiguration =
      UpdateComponentConfigurationResponse
  request :: (Service -> Service)
-> UpdateComponentConfiguration
-> Request UpdateComponentConfiguration
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 UpdateComponentConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateComponentConfiguration)))
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 -> UpdateComponentConfigurationResponse
UpdateComponentConfigurationResponse'
            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
    UpdateComponentConfiguration
  where
  hashWithSalt :: Int -> UpdateComponentConfiguration -> Int
hashWithSalt Int
_salt UpdateComponentConfiguration' {Maybe Bool
Maybe Text
Maybe Tier
Text
componentName :: Text
resourceGroupName :: Text
tier :: Maybe Tier
monitor :: Maybe Bool
componentConfiguration :: Maybe Text
autoConfigEnabled :: Maybe Bool
$sel:componentName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:resourceGroupName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:tier:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Tier
$sel:monitor:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
$sel:componentConfiguration:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Text
$sel:autoConfigEnabled:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
autoConfigEnabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
componentConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
monitor
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Tier
tier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceGroupName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
componentName

instance Prelude.NFData UpdateComponentConfiguration where
  rnf :: UpdateComponentConfiguration -> ()
rnf UpdateComponentConfiguration' {Maybe Bool
Maybe Text
Maybe Tier
Text
componentName :: Text
resourceGroupName :: Text
tier :: Maybe Tier
monitor :: Maybe Bool
componentConfiguration :: Maybe Text
autoConfigEnabled :: Maybe Bool
$sel:componentName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:resourceGroupName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:tier:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Tier
$sel:monitor:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
$sel:componentConfiguration:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Text
$sel:autoConfigEnabled:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
autoConfigEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
componentConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
monitor
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Tier
tier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceGroupName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
componentName

instance Data.ToHeaders UpdateComponentConfiguration where
  toHeaders :: UpdateComponentConfiguration -> 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
"EC2WindowsBarleyService.UpdateComponentConfiguration" ::
                          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 UpdateComponentConfiguration where
  toJSON :: UpdateComponentConfiguration -> Value
toJSON UpdateComponentConfiguration' {Maybe Bool
Maybe Text
Maybe Tier
Text
componentName :: Text
resourceGroupName :: Text
tier :: Maybe Tier
monitor :: Maybe Bool
componentConfiguration :: Maybe Text
autoConfigEnabled :: Maybe Bool
$sel:componentName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:resourceGroupName:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Text
$sel:tier:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Tier
$sel:monitor:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
$sel:componentConfiguration:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Text
$sel:autoConfigEnabled:UpdateComponentConfiguration' :: UpdateComponentConfiguration -> Maybe Bool
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AutoConfigEnabled" 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 Bool
autoConfigEnabled,
            (Key
"ComponentConfiguration" 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
componentConfiguration,
            (Key
"Monitor" 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 Bool
monitor,
            (Key
"Tier" 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 Tier
tier,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ResourceGroupName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceGroupName),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ComponentName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
componentName)
          ]
      )

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

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

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

-- |
-- Create a value of 'UpdateComponentConfigurationResponse' 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', 'updateComponentConfigurationResponse_httpStatus' - The response's http status code.
newUpdateComponentConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateComponentConfigurationResponse
newUpdateComponentConfigurationResponse :: Int -> UpdateComponentConfigurationResponse
newUpdateComponentConfigurationResponse Int
pHttpStatus_ =
  UpdateComponentConfigurationResponse'
    { $sel:httpStatus:UpdateComponentConfigurationResponse' :: Int
httpStatus =
        Int
pHttpStatus_
    }

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

instance
  Prelude.NFData
    UpdateComponentConfigurationResponse
  where
  rnf :: UpdateComponentConfigurationResponse -> ()
rnf UpdateComponentConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateComponentConfigurationResponse' :: UpdateComponentConfigurationResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus