{-# 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.IoTFleetWise.UpdateSignalCatalog
-- 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 a signal catalog.
module Amazonka.IoTFleetWise.UpdateSignalCatalog
  ( -- * Creating a Request
    UpdateSignalCatalog (..),
    newUpdateSignalCatalog,

    -- * Request Lenses
    updateSignalCatalog_description,
    updateSignalCatalog_nodesToAdd,
    updateSignalCatalog_nodesToRemove,
    updateSignalCatalog_nodesToUpdate,
    updateSignalCatalog_name,

    -- * Destructuring the Response
    UpdateSignalCatalogResponse (..),
    newUpdateSignalCatalogResponse,

    -- * Response Lenses
    updateSignalCatalogResponse_httpStatus,
    updateSignalCatalogResponse_name,
    updateSignalCatalogResponse_arn,
  )
where

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

-- | /See:/ 'newUpdateSignalCatalog' smart constructor.
data UpdateSignalCatalog = UpdateSignalCatalog'
  { -- | A brief description of the signal catalog to update.
    UpdateSignalCatalog -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A list of information about nodes to add to the signal catalog.
    UpdateSignalCatalog -> Maybe [Node]
nodesToAdd :: Prelude.Maybe [Node],
    -- | A list of @fullyQualifiedName@ of nodes to remove from the signal
    -- catalog.
    UpdateSignalCatalog -> Maybe (NonEmpty Text)
nodesToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
    -- | A list of information about nodes to update in the signal catalog.
    UpdateSignalCatalog -> Maybe [Node]
nodesToUpdate :: Prelude.Maybe [Node],
    -- | The name of the signal catalog to update.
    UpdateSignalCatalog -> Text
name :: Prelude.Text
  }
  deriving (UpdateSignalCatalog -> UpdateSignalCatalog -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSignalCatalog -> UpdateSignalCatalog -> Bool
$c/= :: UpdateSignalCatalog -> UpdateSignalCatalog -> Bool
== :: UpdateSignalCatalog -> UpdateSignalCatalog -> Bool
$c== :: UpdateSignalCatalog -> UpdateSignalCatalog -> Bool
Prelude.Eq, ReadPrec [UpdateSignalCatalog]
ReadPrec UpdateSignalCatalog
Int -> ReadS UpdateSignalCatalog
ReadS [UpdateSignalCatalog]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSignalCatalog]
$creadListPrec :: ReadPrec [UpdateSignalCatalog]
readPrec :: ReadPrec UpdateSignalCatalog
$creadPrec :: ReadPrec UpdateSignalCatalog
readList :: ReadS [UpdateSignalCatalog]
$creadList :: ReadS [UpdateSignalCatalog]
readsPrec :: Int -> ReadS UpdateSignalCatalog
$creadsPrec :: Int -> ReadS UpdateSignalCatalog
Prelude.Read, Int -> UpdateSignalCatalog -> ShowS
[UpdateSignalCatalog] -> ShowS
UpdateSignalCatalog -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSignalCatalog] -> ShowS
$cshowList :: [UpdateSignalCatalog] -> ShowS
show :: UpdateSignalCatalog -> String
$cshow :: UpdateSignalCatalog -> String
showsPrec :: Int -> UpdateSignalCatalog -> ShowS
$cshowsPrec :: Int -> UpdateSignalCatalog -> ShowS
Prelude.Show, forall x. Rep UpdateSignalCatalog x -> UpdateSignalCatalog
forall x. UpdateSignalCatalog -> Rep UpdateSignalCatalog x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateSignalCatalog x -> UpdateSignalCatalog
$cfrom :: forall x. UpdateSignalCatalog -> Rep UpdateSignalCatalog x
Prelude.Generic)

-- |
-- Create a value of 'UpdateSignalCatalog' 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:
--
-- 'description', 'updateSignalCatalog_description' - A brief description of the signal catalog to update.
--
-- 'nodesToAdd', 'updateSignalCatalog_nodesToAdd' - A list of information about nodes to add to the signal catalog.
--
-- 'nodesToRemove', 'updateSignalCatalog_nodesToRemove' - A list of @fullyQualifiedName@ of nodes to remove from the signal
-- catalog.
--
-- 'nodesToUpdate', 'updateSignalCatalog_nodesToUpdate' - A list of information about nodes to update in the signal catalog.
--
-- 'name', 'updateSignalCatalog_name' - The name of the signal catalog to update.
newUpdateSignalCatalog ::
  -- | 'name'
  Prelude.Text ->
  UpdateSignalCatalog
newUpdateSignalCatalog :: Text -> UpdateSignalCatalog
newUpdateSignalCatalog Text
pName_ =
  UpdateSignalCatalog'
    { $sel:description:UpdateSignalCatalog' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:nodesToAdd:UpdateSignalCatalog' :: Maybe [Node]
nodesToAdd = forall a. Maybe a
Prelude.Nothing,
      $sel:nodesToRemove:UpdateSignalCatalog' :: Maybe (NonEmpty Text)
nodesToRemove = forall a. Maybe a
Prelude.Nothing,
      $sel:nodesToUpdate:UpdateSignalCatalog' :: Maybe [Node]
nodesToUpdate = forall a. Maybe a
Prelude.Nothing,
      $sel:name:UpdateSignalCatalog' :: Text
name = Text
pName_
    }

-- | A brief description of the signal catalog to update.
updateSignalCatalog_description :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe Prelude.Text)
updateSignalCatalog_description :: Lens' UpdateSignalCatalog (Maybe Text)
updateSignalCatalog_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalog' {Maybe Text
description :: Maybe Text
$sel:description:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateSignalCatalog
s@UpdateSignalCatalog' {} Maybe Text
a -> UpdateSignalCatalog
s {$sel:description:UpdateSignalCatalog' :: Maybe Text
description = Maybe Text
a} :: UpdateSignalCatalog)

-- | A list of information about nodes to add to the signal catalog.
updateSignalCatalog_nodesToAdd :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe [Node])
updateSignalCatalog_nodesToAdd :: Lens' UpdateSignalCatalog (Maybe [Node])
updateSignalCatalog_nodesToAdd = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalog' {Maybe [Node]
nodesToAdd :: Maybe [Node]
$sel:nodesToAdd:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
nodesToAdd} -> Maybe [Node]
nodesToAdd) (\s :: UpdateSignalCatalog
s@UpdateSignalCatalog' {} Maybe [Node]
a -> UpdateSignalCatalog
s {$sel:nodesToAdd:UpdateSignalCatalog' :: Maybe [Node]
nodesToAdd = Maybe [Node]
a} :: UpdateSignalCatalog) 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

-- | A list of @fullyQualifiedName@ of nodes to remove from the signal
-- catalog.
updateSignalCatalog_nodesToRemove :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
updateSignalCatalog_nodesToRemove :: Lens' UpdateSignalCatalog (Maybe (NonEmpty Text))
updateSignalCatalog_nodesToRemove = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalog' {Maybe (NonEmpty Text)
nodesToRemove :: Maybe (NonEmpty Text)
$sel:nodesToRemove:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe (NonEmpty Text)
nodesToRemove} -> Maybe (NonEmpty Text)
nodesToRemove) (\s :: UpdateSignalCatalog
s@UpdateSignalCatalog' {} Maybe (NonEmpty Text)
a -> UpdateSignalCatalog
s {$sel:nodesToRemove:UpdateSignalCatalog' :: Maybe (NonEmpty Text)
nodesToRemove = Maybe (NonEmpty Text)
a} :: UpdateSignalCatalog) 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

-- | A list of information about nodes to update in the signal catalog.
updateSignalCatalog_nodesToUpdate :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe [Node])
updateSignalCatalog_nodesToUpdate :: Lens' UpdateSignalCatalog (Maybe [Node])
updateSignalCatalog_nodesToUpdate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalog' {Maybe [Node]
nodesToUpdate :: Maybe [Node]
$sel:nodesToUpdate:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
nodesToUpdate} -> Maybe [Node]
nodesToUpdate) (\s :: UpdateSignalCatalog
s@UpdateSignalCatalog' {} Maybe [Node]
a -> UpdateSignalCatalog
s {$sel:nodesToUpdate:UpdateSignalCatalog' :: Maybe [Node]
nodesToUpdate = Maybe [Node]
a} :: UpdateSignalCatalog) 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 name of the signal catalog to update.
updateSignalCatalog_name :: Lens.Lens' UpdateSignalCatalog Prelude.Text
updateSignalCatalog_name :: Lens' UpdateSignalCatalog Text
updateSignalCatalog_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalog' {Text
name :: Text
$sel:name:UpdateSignalCatalog' :: UpdateSignalCatalog -> Text
name} -> Text
name) (\s :: UpdateSignalCatalog
s@UpdateSignalCatalog' {} Text
a -> UpdateSignalCatalog
s {$sel:name:UpdateSignalCatalog' :: Text
name = Text
a} :: UpdateSignalCatalog)

instance Core.AWSRequest UpdateSignalCatalog where
  type
    AWSResponse UpdateSignalCatalog =
      UpdateSignalCatalogResponse
  request :: (Service -> Service)
-> UpdateSignalCatalog -> Request UpdateSignalCatalog
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 UpdateSignalCatalog
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateSignalCatalog)))
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 ->
          Int -> Text -> Text -> UpdateSignalCatalogResponse
UpdateSignalCatalogResponse'
            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"arn")
      )

instance Prelude.Hashable UpdateSignalCatalog where
  hashWithSalt :: Int -> UpdateSignalCatalog -> Int
hashWithSalt Int
_salt UpdateSignalCatalog' {Maybe [Node]
Maybe (NonEmpty Text)
Maybe Text
Text
name :: Text
nodesToUpdate :: Maybe [Node]
nodesToRemove :: Maybe (NonEmpty Text)
nodesToAdd :: Maybe [Node]
description :: Maybe Text
$sel:name:UpdateSignalCatalog' :: UpdateSignalCatalog -> Text
$sel:nodesToUpdate:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:nodesToRemove:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe (NonEmpty Text)
$sel:nodesToAdd:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:description:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Node]
nodesToAdd
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
nodesToRemove
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Node]
nodesToUpdate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name

instance Prelude.NFData UpdateSignalCatalog where
  rnf :: UpdateSignalCatalog -> ()
rnf UpdateSignalCatalog' {Maybe [Node]
Maybe (NonEmpty Text)
Maybe Text
Text
name :: Text
nodesToUpdate :: Maybe [Node]
nodesToRemove :: Maybe (NonEmpty Text)
nodesToAdd :: Maybe [Node]
description :: Maybe Text
$sel:name:UpdateSignalCatalog' :: UpdateSignalCatalog -> Text
$sel:nodesToUpdate:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:nodesToRemove:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe (NonEmpty Text)
$sel:nodesToAdd:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:description:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Node]
nodesToAdd
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
nodesToRemove
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Node]
nodesToUpdate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name

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

instance Data.ToJSON UpdateSignalCatalog where
  toJSON :: UpdateSignalCatalog -> Value
toJSON UpdateSignalCatalog' {Maybe [Node]
Maybe (NonEmpty Text)
Maybe Text
Text
name :: Text
nodesToUpdate :: Maybe [Node]
nodesToRemove :: Maybe (NonEmpty Text)
nodesToAdd :: Maybe [Node]
description :: Maybe Text
$sel:name:UpdateSignalCatalog' :: UpdateSignalCatalog -> Text
$sel:nodesToUpdate:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:nodesToRemove:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe (NonEmpty Text)
$sel:nodesToAdd:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe [Node]
$sel:description:UpdateSignalCatalog' :: UpdateSignalCatalog -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"description" 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
description,
            (Key
"nodesToAdd" 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 [Node]
nodesToAdd,
            (Key
"nodesToRemove" 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 (NonEmpty Text)
nodesToRemove,
            (Key
"nodesToUpdate" 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 [Node]
nodesToUpdate,
            forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name)
          ]
      )

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

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

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

-- |
-- Create a value of 'UpdateSignalCatalogResponse' 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', 'updateSignalCatalogResponse_httpStatus' - The response's http status code.
--
-- 'name', 'updateSignalCatalogResponse_name' - The name of the updated signal catalog.
--
-- 'arn', 'updateSignalCatalogResponse_arn' - The ARN of the updated signal catalog.
newUpdateSignalCatalogResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'name'
  Prelude.Text ->
  -- | 'arn'
  Prelude.Text ->
  UpdateSignalCatalogResponse
newUpdateSignalCatalogResponse :: Int -> Text -> Text -> UpdateSignalCatalogResponse
newUpdateSignalCatalogResponse
  Int
pHttpStatus_
  Text
pName_
  Text
pArn_ =
    UpdateSignalCatalogResponse'
      { $sel:httpStatus:UpdateSignalCatalogResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:name:UpdateSignalCatalogResponse' :: Text
name = Text
pName_,
        $sel:arn:UpdateSignalCatalogResponse' :: Text
arn = Text
pArn_
      }

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

-- | The name of the updated signal catalog.
updateSignalCatalogResponse_name :: Lens.Lens' UpdateSignalCatalogResponse Prelude.Text
updateSignalCatalogResponse_name :: Lens' UpdateSignalCatalogResponse Text
updateSignalCatalogResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalogResponse' {Text
name :: Text
$sel:name:UpdateSignalCatalogResponse' :: UpdateSignalCatalogResponse -> Text
name} -> Text
name) (\s :: UpdateSignalCatalogResponse
s@UpdateSignalCatalogResponse' {} Text
a -> UpdateSignalCatalogResponse
s {$sel:name:UpdateSignalCatalogResponse' :: Text
name = Text
a} :: UpdateSignalCatalogResponse)

-- | The ARN of the updated signal catalog.
updateSignalCatalogResponse_arn :: Lens.Lens' UpdateSignalCatalogResponse Prelude.Text
updateSignalCatalogResponse_arn :: Lens' UpdateSignalCatalogResponse Text
updateSignalCatalogResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSignalCatalogResponse' {Text
arn :: Text
$sel:arn:UpdateSignalCatalogResponse' :: UpdateSignalCatalogResponse -> Text
arn} -> Text
arn) (\s :: UpdateSignalCatalogResponse
s@UpdateSignalCatalogResponse' {} Text
a -> UpdateSignalCatalogResponse
s {$sel:arn:UpdateSignalCatalogResponse' :: Text
arn = Text
a} :: UpdateSignalCatalogResponse)

instance Prelude.NFData UpdateSignalCatalogResponse where
  rnf :: UpdateSignalCatalogResponse -> ()
rnf UpdateSignalCatalogResponse' {Int
Text
arn :: Text
name :: Text
httpStatus :: Int
$sel:arn:UpdateSignalCatalogResponse' :: UpdateSignalCatalogResponse -> Text
$sel:name:UpdateSignalCatalogResponse' :: UpdateSignalCatalogResponse -> Text
$sel:httpStatus:UpdateSignalCatalogResponse' :: UpdateSignalCatalogResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn