{-# 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.IoTSiteWise.DescribeGatewayCapabilityConfiguration
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves information about a gateway capability configuration. Each
-- gateway capability defines data sources for a gateway. A capability
-- configuration can contain multiple data source configurations. If you
-- define OPC-UA sources for a gateway in the IoT SiteWise console, all of
-- your OPC-UA sources are stored in one capability configuration. To list
-- all capability configurations for a gateway, use
-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGateway.html DescribeGateway>.
module Amazonka.IoTSiteWise.DescribeGatewayCapabilityConfiguration
  ( -- * Creating a Request
    DescribeGatewayCapabilityConfiguration (..),
    newDescribeGatewayCapabilityConfiguration,

    -- * Request Lenses
    describeGatewayCapabilityConfiguration_gatewayId,
    describeGatewayCapabilityConfiguration_capabilityNamespace,

    -- * Destructuring the Response
    DescribeGatewayCapabilityConfigurationResponse (..),
    newDescribeGatewayCapabilityConfigurationResponse,

    -- * Response Lenses
    describeGatewayCapabilityConfigurationResponse_httpStatus,
    describeGatewayCapabilityConfigurationResponse_gatewayId,
    describeGatewayCapabilityConfigurationResponse_capabilityNamespace,
    describeGatewayCapabilityConfigurationResponse_capabilityConfiguration,
    describeGatewayCapabilityConfigurationResponse_capabilitySyncStatus,
  )
where

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

-- | /See:/ 'newDescribeGatewayCapabilityConfiguration' smart constructor.
data DescribeGatewayCapabilityConfiguration = DescribeGatewayCapabilityConfiguration'
  { -- | The ID of the gateway that defines the capability configuration.
    DescribeGatewayCapabilityConfiguration -> Text
gatewayId :: Prelude.Text,
    -- | The namespace of the capability configuration. For example, if you
    -- configure OPC-UA sources from the IoT SiteWise console, your OPC-UA
    -- capability configuration has the namespace
    -- @iotsitewise:opcuacollector:version@, where @version@ is a number such
    -- as @1@.
    DescribeGatewayCapabilityConfiguration -> Text
capabilityNamespace :: Prelude.Text
  }
  deriving (DescribeGatewayCapabilityConfiguration
-> DescribeGatewayCapabilityConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGatewayCapabilityConfiguration
-> DescribeGatewayCapabilityConfiguration -> Bool
$c/= :: DescribeGatewayCapabilityConfiguration
-> DescribeGatewayCapabilityConfiguration -> Bool
== :: DescribeGatewayCapabilityConfiguration
-> DescribeGatewayCapabilityConfiguration -> Bool
$c== :: DescribeGatewayCapabilityConfiguration
-> DescribeGatewayCapabilityConfiguration -> Bool
Prelude.Eq, ReadPrec [DescribeGatewayCapabilityConfiguration]
ReadPrec DescribeGatewayCapabilityConfiguration
Int -> ReadS DescribeGatewayCapabilityConfiguration
ReadS [DescribeGatewayCapabilityConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGatewayCapabilityConfiguration]
$creadListPrec :: ReadPrec [DescribeGatewayCapabilityConfiguration]
readPrec :: ReadPrec DescribeGatewayCapabilityConfiguration
$creadPrec :: ReadPrec DescribeGatewayCapabilityConfiguration
readList :: ReadS [DescribeGatewayCapabilityConfiguration]
$creadList :: ReadS [DescribeGatewayCapabilityConfiguration]
readsPrec :: Int -> ReadS DescribeGatewayCapabilityConfiguration
$creadsPrec :: Int -> ReadS DescribeGatewayCapabilityConfiguration
Prelude.Read, Int -> DescribeGatewayCapabilityConfiguration -> ShowS
[DescribeGatewayCapabilityConfiguration] -> ShowS
DescribeGatewayCapabilityConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGatewayCapabilityConfiguration] -> ShowS
$cshowList :: [DescribeGatewayCapabilityConfiguration] -> ShowS
show :: DescribeGatewayCapabilityConfiguration -> String
$cshow :: DescribeGatewayCapabilityConfiguration -> String
showsPrec :: Int -> DescribeGatewayCapabilityConfiguration -> ShowS
$cshowsPrec :: Int -> DescribeGatewayCapabilityConfiguration -> ShowS
Prelude.Show, forall x.
Rep DescribeGatewayCapabilityConfiguration x
-> DescribeGatewayCapabilityConfiguration
forall x.
DescribeGatewayCapabilityConfiguration
-> Rep DescribeGatewayCapabilityConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeGatewayCapabilityConfiguration x
-> DescribeGatewayCapabilityConfiguration
$cfrom :: forall x.
DescribeGatewayCapabilityConfiguration
-> Rep DescribeGatewayCapabilityConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGatewayCapabilityConfiguration' 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:
--
-- 'gatewayId', 'describeGatewayCapabilityConfiguration_gatewayId' - The ID of the gateway that defines the capability configuration.
--
-- 'capabilityNamespace', 'describeGatewayCapabilityConfiguration_capabilityNamespace' - The namespace of the capability configuration. For example, if you
-- configure OPC-UA sources from the IoT SiteWise console, your OPC-UA
-- capability configuration has the namespace
-- @iotsitewise:opcuacollector:version@, where @version@ is a number such
-- as @1@.
newDescribeGatewayCapabilityConfiguration ::
  -- | 'gatewayId'
  Prelude.Text ->
  -- | 'capabilityNamespace'
  Prelude.Text ->
  DescribeGatewayCapabilityConfiguration
newDescribeGatewayCapabilityConfiguration :: Text -> Text -> DescribeGatewayCapabilityConfiguration
newDescribeGatewayCapabilityConfiguration
  Text
pGatewayId_
  Text
pCapabilityNamespace_ =
    DescribeGatewayCapabilityConfiguration'
      { $sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: Text
gatewayId =
          Text
pGatewayId_,
        $sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: Text
capabilityNamespace =
          Text
pCapabilityNamespace_
      }

-- | The ID of the gateway that defines the capability configuration.
describeGatewayCapabilityConfiguration_gatewayId :: Lens.Lens' DescribeGatewayCapabilityConfiguration Prelude.Text
describeGatewayCapabilityConfiguration_gatewayId :: Lens' DescribeGatewayCapabilityConfiguration Text
describeGatewayCapabilityConfiguration_gatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfiguration' {Text
gatewayId :: Text
$sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
gatewayId} -> Text
gatewayId) (\s :: DescribeGatewayCapabilityConfiguration
s@DescribeGatewayCapabilityConfiguration' {} Text
a -> DescribeGatewayCapabilityConfiguration
s {$sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: Text
gatewayId = Text
a} :: DescribeGatewayCapabilityConfiguration)

-- | The namespace of the capability configuration. For example, if you
-- configure OPC-UA sources from the IoT SiteWise console, your OPC-UA
-- capability configuration has the namespace
-- @iotsitewise:opcuacollector:version@, where @version@ is a number such
-- as @1@.
describeGatewayCapabilityConfiguration_capabilityNamespace :: Lens.Lens' DescribeGatewayCapabilityConfiguration Prelude.Text
describeGatewayCapabilityConfiguration_capabilityNamespace :: Lens' DescribeGatewayCapabilityConfiguration Text
describeGatewayCapabilityConfiguration_capabilityNamespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfiguration' {Text
capabilityNamespace :: Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
capabilityNamespace} -> Text
capabilityNamespace) (\s :: DescribeGatewayCapabilityConfiguration
s@DescribeGatewayCapabilityConfiguration' {} Text
a -> DescribeGatewayCapabilityConfiguration
s {$sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: Text
capabilityNamespace = Text
a} :: DescribeGatewayCapabilityConfiguration)

instance
  Core.AWSRequest
    DescribeGatewayCapabilityConfiguration
  where
  type
    AWSResponse
      DescribeGatewayCapabilityConfiguration =
      DescribeGatewayCapabilityConfigurationResponse
  request :: (Service -> Service)
-> DescribeGatewayCapabilityConfiguration
-> Request DescribeGatewayCapabilityConfiguration
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeGatewayCapabilityConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse DescribeGatewayCapabilityConfiguration)))
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
-> Text
-> CapabilitySyncStatus
-> DescribeGatewayCapabilityConfigurationResponse
DescribeGatewayCapabilityConfigurationResponse'
            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
"gatewayId")
            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
"capabilityNamespace")
            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
"capabilityConfiguration")
            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
"capabilitySyncStatus")
      )

instance
  Prelude.Hashable
    DescribeGatewayCapabilityConfiguration
  where
  hashWithSalt :: Int -> DescribeGatewayCapabilityConfiguration -> Int
hashWithSalt
    Int
_salt
    DescribeGatewayCapabilityConfiguration' {Text
capabilityNamespace :: Text
gatewayId :: Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
$sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gatewayId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
capabilityNamespace

instance
  Prelude.NFData
    DescribeGatewayCapabilityConfiguration
  where
  rnf :: DescribeGatewayCapabilityConfiguration -> ()
rnf DescribeGatewayCapabilityConfiguration' {Text
capabilityNamespace :: Text
gatewayId :: Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
$sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
gatewayId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
capabilityNamespace

instance
  Data.ToHeaders
    DescribeGatewayCapabilityConfiguration
  where
  toHeaders :: DescribeGatewayCapabilityConfiguration -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance
  Data.ToPath
    DescribeGatewayCapabilityConfiguration
  where
  toPath :: DescribeGatewayCapabilityConfiguration -> ByteString
toPath DescribeGatewayCapabilityConfiguration' {Text
capabilityNamespace :: Text
gatewayId :: Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
$sel:gatewayId:DescribeGatewayCapabilityConfiguration' :: DescribeGatewayCapabilityConfiguration -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/20200301/gateways/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
gatewayId,
        ByteString
"/capability/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
capabilityNamespace
      ]

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

-- | /See:/ 'newDescribeGatewayCapabilityConfigurationResponse' smart constructor.
data DescribeGatewayCapabilityConfigurationResponse = DescribeGatewayCapabilityConfigurationResponse'
  { -- | The response's http status code.
    DescribeGatewayCapabilityConfigurationResponse -> Int
httpStatus :: Prelude.Int,
    -- | The ID of the gateway that defines the capability configuration.
    DescribeGatewayCapabilityConfigurationResponse -> Text
gatewayId :: Prelude.Text,
    -- | The namespace of the gateway capability.
    DescribeGatewayCapabilityConfigurationResponse -> Text
capabilityNamespace :: Prelude.Text,
    -- | The JSON document that defines the gateway capability\'s configuration.
    -- For more information, see
    -- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli Configuring data sources (CLI)>
    -- in the /IoT SiteWise User Guide/.
    DescribeGatewayCapabilityConfigurationResponse -> Text
capabilityConfiguration :: Prelude.Text,
    -- | The synchronization status of the capability configuration. The sync
    -- status can be one of the following:
    --
    -- -   @IN_SYNC@ – The gateway is running the capability configuration.
    --
    -- -   @OUT_OF_SYNC@ – The gateway hasn\'t received the capability
    --     configuration.
    --
    -- -   @SYNC_FAILED@ – The gateway rejected the capability configuration.
    DescribeGatewayCapabilityConfigurationResponse
-> CapabilitySyncStatus
capabilitySyncStatus :: CapabilitySyncStatus
  }
  deriving (DescribeGatewayCapabilityConfigurationResponse
-> DescribeGatewayCapabilityConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeGatewayCapabilityConfigurationResponse
-> DescribeGatewayCapabilityConfigurationResponse -> Bool
$c/= :: DescribeGatewayCapabilityConfigurationResponse
-> DescribeGatewayCapabilityConfigurationResponse -> Bool
== :: DescribeGatewayCapabilityConfigurationResponse
-> DescribeGatewayCapabilityConfigurationResponse -> Bool
$c== :: DescribeGatewayCapabilityConfigurationResponse
-> DescribeGatewayCapabilityConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [DescribeGatewayCapabilityConfigurationResponse]
ReadPrec DescribeGatewayCapabilityConfigurationResponse
Int -> ReadS DescribeGatewayCapabilityConfigurationResponse
ReadS [DescribeGatewayCapabilityConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeGatewayCapabilityConfigurationResponse]
$creadListPrec :: ReadPrec [DescribeGatewayCapabilityConfigurationResponse]
readPrec :: ReadPrec DescribeGatewayCapabilityConfigurationResponse
$creadPrec :: ReadPrec DescribeGatewayCapabilityConfigurationResponse
readList :: ReadS [DescribeGatewayCapabilityConfigurationResponse]
$creadList :: ReadS [DescribeGatewayCapabilityConfigurationResponse]
readsPrec :: Int -> ReadS DescribeGatewayCapabilityConfigurationResponse
$creadsPrec :: Int -> ReadS DescribeGatewayCapabilityConfigurationResponse
Prelude.Read, Int -> DescribeGatewayCapabilityConfigurationResponse -> ShowS
[DescribeGatewayCapabilityConfigurationResponse] -> ShowS
DescribeGatewayCapabilityConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeGatewayCapabilityConfigurationResponse] -> ShowS
$cshowList :: [DescribeGatewayCapabilityConfigurationResponse] -> ShowS
show :: DescribeGatewayCapabilityConfigurationResponse -> String
$cshow :: DescribeGatewayCapabilityConfigurationResponse -> String
showsPrec :: Int -> DescribeGatewayCapabilityConfigurationResponse -> ShowS
$cshowsPrec :: Int -> DescribeGatewayCapabilityConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeGatewayCapabilityConfigurationResponse x
-> DescribeGatewayCapabilityConfigurationResponse
forall x.
DescribeGatewayCapabilityConfigurationResponse
-> Rep DescribeGatewayCapabilityConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeGatewayCapabilityConfigurationResponse x
-> DescribeGatewayCapabilityConfigurationResponse
$cfrom :: forall x.
DescribeGatewayCapabilityConfigurationResponse
-> Rep DescribeGatewayCapabilityConfigurationResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeGatewayCapabilityConfigurationResponse' 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', 'describeGatewayCapabilityConfigurationResponse_httpStatus' - The response's http status code.
--
-- 'gatewayId', 'describeGatewayCapabilityConfigurationResponse_gatewayId' - The ID of the gateway that defines the capability configuration.
--
-- 'capabilityNamespace', 'describeGatewayCapabilityConfigurationResponse_capabilityNamespace' - The namespace of the gateway capability.
--
-- 'capabilityConfiguration', 'describeGatewayCapabilityConfigurationResponse_capabilityConfiguration' - The JSON document that defines the gateway capability\'s configuration.
-- For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli Configuring data sources (CLI)>
-- in the /IoT SiteWise User Guide/.
--
-- 'capabilitySyncStatus', 'describeGatewayCapabilityConfigurationResponse_capabilitySyncStatus' - The synchronization status of the capability configuration. The sync
-- status can be one of the following:
--
-- -   @IN_SYNC@ – The gateway is running the capability configuration.
--
-- -   @OUT_OF_SYNC@ – The gateway hasn\'t received the capability
--     configuration.
--
-- -   @SYNC_FAILED@ – The gateway rejected the capability configuration.
newDescribeGatewayCapabilityConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'gatewayId'
  Prelude.Text ->
  -- | 'capabilityNamespace'
  Prelude.Text ->
  -- | 'capabilityConfiguration'
  Prelude.Text ->
  -- | 'capabilitySyncStatus'
  CapabilitySyncStatus ->
  DescribeGatewayCapabilityConfigurationResponse
newDescribeGatewayCapabilityConfigurationResponse :: Int
-> Text
-> Text
-> Text
-> CapabilitySyncStatus
-> DescribeGatewayCapabilityConfigurationResponse
newDescribeGatewayCapabilityConfigurationResponse
  Int
pHttpStatus_
  Text
pGatewayId_
  Text
pCapabilityNamespace_
  Text
pCapabilityConfiguration_
  CapabilitySyncStatus
pCapabilitySyncStatus_ =
    DescribeGatewayCapabilityConfigurationResponse'
      { $sel:httpStatus:DescribeGatewayCapabilityConfigurationResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:gatewayId:DescribeGatewayCapabilityConfigurationResponse' :: Text
gatewayId = Text
pGatewayId_,
        $sel:capabilityNamespace:DescribeGatewayCapabilityConfigurationResponse' :: Text
capabilityNamespace =
          Text
pCapabilityNamespace_,
        $sel:capabilityConfiguration:DescribeGatewayCapabilityConfigurationResponse' :: Text
capabilityConfiguration =
          Text
pCapabilityConfiguration_,
        $sel:capabilitySyncStatus:DescribeGatewayCapabilityConfigurationResponse' :: CapabilitySyncStatus
capabilitySyncStatus =
          CapabilitySyncStatus
pCapabilitySyncStatus_
      }

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

-- | The ID of the gateway that defines the capability configuration.
describeGatewayCapabilityConfigurationResponse_gatewayId :: Lens.Lens' DescribeGatewayCapabilityConfigurationResponse Prelude.Text
describeGatewayCapabilityConfigurationResponse_gatewayId :: Lens' DescribeGatewayCapabilityConfigurationResponse Text
describeGatewayCapabilityConfigurationResponse_gatewayId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfigurationResponse' {Text
gatewayId :: Text
$sel:gatewayId:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
gatewayId} -> Text
gatewayId) (\s :: DescribeGatewayCapabilityConfigurationResponse
s@DescribeGatewayCapabilityConfigurationResponse' {} Text
a -> DescribeGatewayCapabilityConfigurationResponse
s {$sel:gatewayId:DescribeGatewayCapabilityConfigurationResponse' :: Text
gatewayId = Text
a} :: DescribeGatewayCapabilityConfigurationResponse)

-- | The namespace of the gateway capability.
describeGatewayCapabilityConfigurationResponse_capabilityNamespace :: Lens.Lens' DescribeGatewayCapabilityConfigurationResponse Prelude.Text
describeGatewayCapabilityConfigurationResponse_capabilityNamespace :: Lens' DescribeGatewayCapabilityConfigurationResponse Text
describeGatewayCapabilityConfigurationResponse_capabilityNamespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfigurationResponse' {Text
capabilityNamespace :: Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
capabilityNamespace} -> Text
capabilityNamespace) (\s :: DescribeGatewayCapabilityConfigurationResponse
s@DescribeGatewayCapabilityConfigurationResponse' {} Text
a -> DescribeGatewayCapabilityConfigurationResponse
s {$sel:capabilityNamespace:DescribeGatewayCapabilityConfigurationResponse' :: Text
capabilityNamespace = Text
a} :: DescribeGatewayCapabilityConfigurationResponse)

-- | The JSON document that defines the gateway capability\'s configuration.
-- For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli Configuring data sources (CLI)>
-- in the /IoT SiteWise User Guide/.
describeGatewayCapabilityConfigurationResponse_capabilityConfiguration :: Lens.Lens' DescribeGatewayCapabilityConfigurationResponse Prelude.Text
describeGatewayCapabilityConfigurationResponse_capabilityConfiguration :: Lens' DescribeGatewayCapabilityConfigurationResponse Text
describeGatewayCapabilityConfigurationResponse_capabilityConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfigurationResponse' {Text
capabilityConfiguration :: Text
$sel:capabilityConfiguration:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
capabilityConfiguration} -> Text
capabilityConfiguration) (\s :: DescribeGatewayCapabilityConfigurationResponse
s@DescribeGatewayCapabilityConfigurationResponse' {} Text
a -> DescribeGatewayCapabilityConfigurationResponse
s {$sel:capabilityConfiguration:DescribeGatewayCapabilityConfigurationResponse' :: Text
capabilityConfiguration = Text
a} :: DescribeGatewayCapabilityConfigurationResponse)

-- | The synchronization status of the capability configuration. The sync
-- status can be one of the following:
--
-- -   @IN_SYNC@ – The gateway is running the capability configuration.
--
-- -   @OUT_OF_SYNC@ – The gateway hasn\'t received the capability
--     configuration.
--
-- -   @SYNC_FAILED@ – The gateway rejected the capability configuration.
describeGatewayCapabilityConfigurationResponse_capabilitySyncStatus :: Lens.Lens' DescribeGatewayCapabilityConfigurationResponse CapabilitySyncStatus
describeGatewayCapabilityConfigurationResponse_capabilitySyncStatus :: Lens'
  DescribeGatewayCapabilityConfigurationResponse CapabilitySyncStatus
describeGatewayCapabilityConfigurationResponse_capabilitySyncStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeGatewayCapabilityConfigurationResponse' {CapabilitySyncStatus
capabilitySyncStatus :: CapabilitySyncStatus
$sel:capabilitySyncStatus:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse
-> CapabilitySyncStatus
capabilitySyncStatus} -> CapabilitySyncStatus
capabilitySyncStatus) (\s :: DescribeGatewayCapabilityConfigurationResponse
s@DescribeGatewayCapabilityConfigurationResponse' {} CapabilitySyncStatus
a -> DescribeGatewayCapabilityConfigurationResponse
s {$sel:capabilitySyncStatus:DescribeGatewayCapabilityConfigurationResponse' :: CapabilitySyncStatus
capabilitySyncStatus = CapabilitySyncStatus
a} :: DescribeGatewayCapabilityConfigurationResponse)

instance
  Prelude.NFData
    DescribeGatewayCapabilityConfigurationResponse
  where
  rnf :: DescribeGatewayCapabilityConfigurationResponse -> ()
rnf
    DescribeGatewayCapabilityConfigurationResponse' {Int
Text
CapabilitySyncStatus
capabilitySyncStatus :: CapabilitySyncStatus
capabilityConfiguration :: Text
capabilityNamespace :: Text
gatewayId :: Text
httpStatus :: Int
$sel:capabilitySyncStatus:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse
-> CapabilitySyncStatus
$sel:capabilityConfiguration:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
$sel:capabilityNamespace:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
$sel:gatewayId:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> Text
$sel:httpStatus:DescribeGatewayCapabilityConfigurationResponse' :: DescribeGatewayCapabilityConfigurationResponse -> 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
gatewayId
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
capabilityNamespace
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
capabilityConfiguration
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf CapabilitySyncStatus
capabilitySyncStatus