{-# 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.Panorama.DescribeNode
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about a node.
module Amazonka.Panorama.DescribeNode
  ( -- * Creating a Request
    DescribeNode (..),
    newDescribeNode,

    -- * Request Lenses
    describeNode_ownerAccount,
    describeNode_nodeId,

    -- * Destructuring the Response
    DescribeNodeResponse (..),
    newDescribeNodeResponse,

    -- * Response Lenses
    describeNodeResponse_assetName,
    describeNodeResponse_packageArn,
    describeNodeResponse_httpStatus,
    describeNodeResponse_category,
    describeNodeResponse_createdTime,
    describeNodeResponse_description,
    describeNodeResponse_lastUpdatedTime,
    describeNodeResponse_name,
    describeNodeResponse_nodeId,
    describeNodeResponse_nodeInterface,
    describeNodeResponse_ownerAccount,
    describeNodeResponse_packageId,
    describeNodeResponse_packageName,
    describeNodeResponse_packageVersion,
    describeNodeResponse_patchVersion,
  )
where

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

-- | /See:/ 'newDescribeNode' smart constructor.
data DescribeNode = DescribeNode'
  { -- | The account ID of the node\'s owner.
    DescribeNode -> Maybe Text
ownerAccount :: Prelude.Maybe Prelude.Text,
    -- | The node\'s ID.
    DescribeNode -> Text
nodeId :: Prelude.Text
  }
  deriving (DescribeNode -> DescribeNode -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeNode -> DescribeNode -> Bool
$c/= :: DescribeNode -> DescribeNode -> Bool
== :: DescribeNode -> DescribeNode -> Bool
$c== :: DescribeNode -> DescribeNode -> Bool
Prelude.Eq, ReadPrec [DescribeNode]
ReadPrec DescribeNode
Int -> ReadS DescribeNode
ReadS [DescribeNode]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeNode]
$creadListPrec :: ReadPrec [DescribeNode]
readPrec :: ReadPrec DescribeNode
$creadPrec :: ReadPrec DescribeNode
readList :: ReadS [DescribeNode]
$creadList :: ReadS [DescribeNode]
readsPrec :: Int -> ReadS DescribeNode
$creadsPrec :: Int -> ReadS DescribeNode
Prelude.Read, Int -> DescribeNode -> ShowS
[DescribeNode] -> ShowS
DescribeNode -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeNode] -> ShowS
$cshowList :: [DescribeNode] -> ShowS
show :: DescribeNode -> String
$cshow :: DescribeNode -> String
showsPrec :: Int -> DescribeNode -> ShowS
$cshowsPrec :: Int -> DescribeNode -> ShowS
Prelude.Show, forall x. Rep DescribeNode x -> DescribeNode
forall x. DescribeNode -> Rep DescribeNode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeNode x -> DescribeNode
$cfrom :: forall x. DescribeNode -> Rep DescribeNode x
Prelude.Generic)

-- |
-- Create a value of 'DescribeNode' 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:
--
-- 'ownerAccount', 'describeNode_ownerAccount' - The account ID of the node\'s owner.
--
-- 'nodeId', 'describeNode_nodeId' - The node\'s ID.
newDescribeNode ::
  -- | 'nodeId'
  Prelude.Text ->
  DescribeNode
newDescribeNode :: Text -> DescribeNode
newDescribeNode Text
pNodeId_ =
  DescribeNode'
    { $sel:ownerAccount:DescribeNode' :: Maybe Text
ownerAccount = forall a. Maybe a
Prelude.Nothing,
      $sel:nodeId:DescribeNode' :: Text
nodeId = Text
pNodeId_
    }

-- | The account ID of the node\'s owner.
describeNode_ownerAccount :: Lens.Lens' DescribeNode (Prelude.Maybe Prelude.Text)
describeNode_ownerAccount :: Lens' DescribeNode (Maybe Text)
describeNode_ownerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNode' {Maybe Text
ownerAccount :: Maybe Text
$sel:ownerAccount:DescribeNode' :: DescribeNode -> Maybe Text
ownerAccount} -> Maybe Text
ownerAccount) (\s :: DescribeNode
s@DescribeNode' {} Maybe Text
a -> DescribeNode
s {$sel:ownerAccount:DescribeNode' :: Maybe Text
ownerAccount = Maybe Text
a} :: DescribeNode)

-- | The node\'s ID.
describeNode_nodeId :: Lens.Lens' DescribeNode Prelude.Text
describeNode_nodeId :: Lens' DescribeNode Text
describeNode_nodeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNode' {Text
nodeId :: Text
$sel:nodeId:DescribeNode' :: DescribeNode -> Text
nodeId} -> Text
nodeId) (\s :: DescribeNode
s@DescribeNode' {} Text
a -> DescribeNode
s {$sel:nodeId:DescribeNode' :: Text
nodeId = Text
a} :: DescribeNode)

instance Core.AWSRequest DescribeNode where
  type AWSResponse DescribeNode = DescribeNodeResponse
  request :: (Service -> Service) -> DescribeNode -> Request DescribeNode
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 DescribeNode
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeNode)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Int
-> NodeCategory
-> POSIX
-> Text
-> POSIX
-> Text
-> Text
-> NodeInterface
-> Text
-> Text
-> Text
-> Text
-> Text
-> DescribeNodeResponse
DescribeNodeResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"AssetName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PackageArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            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
"Category")
            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
"CreatedTime")
            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
"Description")
            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
"LastUpdatedTime")
            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
"NodeId")
            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
"NodeInterface")
            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
"OwnerAccount")
            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
"PackageId")
            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
"PackageName")
            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
"PackageVersion")
            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
"PatchVersion")
      )

instance Prelude.Hashable DescribeNode where
  hashWithSalt :: Int -> DescribeNode -> Int
hashWithSalt Int
_salt DescribeNode' {Maybe Text
Text
nodeId :: Text
ownerAccount :: Maybe Text
$sel:nodeId:DescribeNode' :: DescribeNode -> Text
$sel:ownerAccount:DescribeNode' :: DescribeNode -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
nodeId

instance Prelude.NFData DescribeNode where
  rnf :: DescribeNode -> ()
rnf DescribeNode' {Maybe Text
Text
nodeId :: Text
ownerAccount :: Maybe Text
$sel:nodeId:DescribeNode' :: DescribeNode -> Text
$sel:ownerAccount:DescribeNode' :: DescribeNode -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
nodeId

instance Data.ToHeaders DescribeNode where
  toHeaders :: DescribeNode -> 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 DescribeNode where
  toPath :: DescribeNode -> ByteString
toPath DescribeNode' {Maybe Text
Text
nodeId :: Text
ownerAccount :: Maybe Text
$sel:nodeId:DescribeNode' :: DescribeNode -> Text
$sel:ownerAccount:DescribeNode' :: DescribeNode -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/nodes/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
nodeId]

instance Data.ToQuery DescribeNode where
  toQuery :: DescribeNode -> QueryString
toQuery DescribeNode' {Maybe Text
Text
nodeId :: Text
ownerAccount :: Maybe Text
$sel:nodeId:DescribeNode' :: DescribeNode -> Text
$sel:ownerAccount:DescribeNode' :: DescribeNode -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"OwnerAccount" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
ownerAccount]

-- | /See:/ 'newDescribeNodeResponse' smart constructor.
data DescribeNodeResponse = DescribeNodeResponse'
  { -- | The node\'s asset name.
    DescribeNodeResponse -> Maybe Text
assetName :: Prelude.Maybe Prelude.Text,
    -- | The node\'s ARN.
    DescribeNodeResponse -> Maybe Text
packageArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeNodeResponse -> Int
httpStatus :: Prelude.Int,
    -- | The node\'s category.
    DescribeNodeResponse -> NodeCategory
category :: NodeCategory,
    -- | When the node was created.
    DescribeNodeResponse -> POSIX
createdTime :: Data.POSIX,
    -- | The node\'s description.
    DescribeNodeResponse -> Text
description :: Prelude.Text,
    -- | When the node was updated.
    DescribeNodeResponse -> POSIX
lastUpdatedTime :: Data.POSIX,
    -- | The node\'s name.
    DescribeNodeResponse -> Text
name :: Prelude.Text,
    -- | The node\'s ID.
    DescribeNodeResponse -> Text
nodeId :: Prelude.Text,
    -- | The node\'s interface.
    DescribeNodeResponse -> NodeInterface
nodeInterface :: NodeInterface,
    -- | The account ID of the node\'s owner.
    DescribeNodeResponse -> Text
ownerAccount :: Prelude.Text,
    -- | The node\'s package ID.
    DescribeNodeResponse -> Text
packageId :: Prelude.Text,
    -- | The node\'s package name.
    DescribeNodeResponse -> Text
packageName :: Prelude.Text,
    -- | The node\'s package version.
    DescribeNodeResponse -> Text
packageVersion :: Prelude.Text,
    -- | The node\'s patch version.
    DescribeNodeResponse -> Text
patchVersion :: Prelude.Text
  }
  deriving (DescribeNodeResponse -> DescribeNodeResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeNodeResponse -> DescribeNodeResponse -> Bool
$c/= :: DescribeNodeResponse -> DescribeNodeResponse -> Bool
== :: DescribeNodeResponse -> DescribeNodeResponse -> Bool
$c== :: DescribeNodeResponse -> DescribeNodeResponse -> Bool
Prelude.Eq, ReadPrec [DescribeNodeResponse]
ReadPrec DescribeNodeResponse
Int -> ReadS DescribeNodeResponse
ReadS [DescribeNodeResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeNodeResponse]
$creadListPrec :: ReadPrec [DescribeNodeResponse]
readPrec :: ReadPrec DescribeNodeResponse
$creadPrec :: ReadPrec DescribeNodeResponse
readList :: ReadS [DescribeNodeResponse]
$creadList :: ReadS [DescribeNodeResponse]
readsPrec :: Int -> ReadS DescribeNodeResponse
$creadsPrec :: Int -> ReadS DescribeNodeResponse
Prelude.Read, Int -> DescribeNodeResponse -> ShowS
[DescribeNodeResponse] -> ShowS
DescribeNodeResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeNodeResponse] -> ShowS
$cshowList :: [DescribeNodeResponse] -> ShowS
show :: DescribeNodeResponse -> String
$cshow :: DescribeNodeResponse -> String
showsPrec :: Int -> DescribeNodeResponse -> ShowS
$cshowsPrec :: Int -> DescribeNodeResponse -> ShowS
Prelude.Show, forall x. Rep DescribeNodeResponse x -> DescribeNodeResponse
forall x. DescribeNodeResponse -> Rep DescribeNodeResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeNodeResponse x -> DescribeNodeResponse
$cfrom :: forall x. DescribeNodeResponse -> Rep DescribeNodeResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeNodeResponse' 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:
--
-- 'assetName', 'describeNodeResponse_assetName' - The node\'s asset name.
--
-- 'packageArn', 'describeNodeResponse_packageArn' - The node\'s ARN.
--
-- 'httpStatus', 'describeNodeResponse_httpStatus' - The response's http status code.
--
-- 'category', 'describeNodeResponse_category' - The node\'s category.
--
-- 'createdTime', 'describeNodeResponse_createdTime' - When the node was created.
--
-- 'description', 'describeNodeResponse_description' - The node\'s description.
--
-- 'lastUpdatedTime', 'describeNodeResponse_lastUpdatedTime' - When the node was updated.
--
-- 'name', 'describeNodeResponse_name' - The node\'s name.
--
-- 'nodeId', 'describeNodeResponse_nodeId' - The node\'s ID.
--
-- 'nodeInterface', 'describeNodeResponse_nodeInterface' - The node\'s interface.
--
-- 'ownerAccount', 'describeNodeResponse_ownerAccount' - The account ID of the node\'s owner.
--
-- 'packageId', 'describeNodeResponse_packageId' - The node\'s package ID.
--
-- 'packageName', 'describeNodeResponse_packageName' - The node\'s package name.
--
-- 'packageVersion', 'describeNodeResponse_packageVersion' - The node\'s package version.
--
-- 'patchVersion', 'describeNodeResponse_patchVersion' - The node\'s patch version.
newDescribeNodeResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'category'
  NodeCategory ->
  -- | 'createdTime'
  Prelude.UTCTime ->
  -- | 'description'
  Prelude.Text ->
  -- | 'lastUpdatedTime'
  Prelude.UTCTime ->
  -- | 'name'
  Prelude.Text ->
  -- | 'nodeId'
  Prelude.Text ->
  -- | 'nodeInterface'
  NodeInterface ->
  -- | 'ownerAccount'
  Prelude.Text ->
  -- | 'packageId'
  Prelude.Text ->
  -- | 'packageName'
  Prelude.Text ->
  -- | 'packageVersion'
  Prelude.Text ->
  -- | 'patchVersion'
  Prelude.Text ->
  DescribeNodeResponse
newDescribeNodeResponse :: Int
-> NodeCategory
-> UTCTime
-> Text
-> UTCTime
-> Text
-> Text
-> NodeInterface
-> Text
-> Text
-> Text
-> Text
-> Text
-> DescribeNodeResponse
newDescribeNodeResponse
  Int
pHttpStatus_
  NodeCategory
pCategory_
  UTCTime
pCreatedTime_
  Text
pDescription_
  UTCTime
pLastUpdatedTime_
  Text
pName_
  Text
pNodeId_
  NodeInterface
pNodeInterface_
  Text
pOwnerAccount_
  Text
pPackageId_
  Text
pPackageName_
  Text
pPackageVersion_
  Text
pPatchVersion_ =
    DescribeNodeResponse'
      { $sel:assetName:DescribeNodeResponse' :: Maybe Text
assetName = forall a. Maybe a
Prelude.Nothing,
        $sel:packageArn:DescribeNodeResponse' :: Maybe Text
packageArn = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeNodeResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:category:DescribeNodeResponse' :: NodeCategory
category = NodeCategory
pCategory_,
        $sel:createdTime:DescribeNodeResponse' :: POSIX
createdTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreatedTime_,
        $sel:description:DescribeNodeResponse' :: Text
description = Text
pDescription_,
        $sel:lastUpdatedTime:DescribeNodeResponse' :: POSIX
lastUpdatedTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastUpdatedTime_,
        $sel:name:DescribeNodeResponse' :: Text
name = Text
pName_,
        $sel:nodeId:DescribeNodeResponse' :: Text
nodeId = Text
pNodeId_,
        $sel:nodeInterface:DescribeNodeResponse' :: NodeInterface
nodeInterface = NodeInterface
pNodeInterface_,
        $sel:ownerAccount:DescribeNodeResponse' :: Text
ownerAccount = Text
pOwnerAccount_,
        $sel:packageId:DescribeNodeResponse' :: Text
packageId = Text
pPackageId_,
        $sel:packageName:DescribeNodeResponse' :: Text
packageName = Text
pPackageName_,
        $sel:packageVersion:DescribeNodeResponse' :: Text
packageVersion = Text
pPackageVersion_,
        $sel:patchVersion:DescribeNodeResponse' :: Text
patchVersion = Text
pPatchVersion_
      }

-- | The node\'s asset name.
describeNodeResponse_assetName :: Lens.Lens' DescribeNodeResponse (Prelude.Maybe Prelude.Text)
describeNodeResponse_assetName :: Lens' DescribeNodeResponse (Maybe Text)
describeNodeResponse_assetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Maybe Text
assetName :: Maybe Text
$sel:assetName:DescribeNodeResponse' :: DescribeNodeResponse -> Maybe Text
assetName} -> Maybe Text
assetName) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Maybe Text
a -> DescribeNodeResponse
s {$sel:assetName:DescribeNodeResponse' :: Maybe Text
assetName = Maybe Text
a} :: DescribeNodeResponse)

-- | The node\'s ARN.
describeNodeResponse_packageArn :: Lens.Lens' DescribeNodeResponse (Prelude.Maybe Prelude.Text)
describeNodeResponse_packageArn :: Lens' DescribeNodeResponse (Maybe Text)
describeNodeResponse_packageArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Maybe Text
packageArn :: Maybe Text
$sel:packageArn:DescribeNodeResponse' :: DescribeNodeResponse -> Maybe Text
packageArn} -> Maybe Text
packageArn) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Maybe Text
a -> DescribeNodeResponse
s {$sel:packageArn:DescribeNodeResponse' :: Maybe Text
packageArn = Maybe Text
a} :: DescribeNodeResponse)

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

-- | The node\'s category.
describeNodeResponse_category :: Lens.Lens' DescribeNodeResponse NodeCategory
describeNodeResponse_category :: Lens' DescribeNodeResponse NodeCategory
describeNodeResponse_category = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {NodeCategory
category :: NodeCategory
$sel:category:DescribeNodeResponse' :: DescribeNodeResponse -> NodeCategory
category} -> NodeCategory
category) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} NodeCategory
a -> DescribeNodeResponse
s {$sel:category:DescribeNodeResponse' :: NodeCategory
category = NodeCategory
a} :: DescribeNodeResponse)

-- | When the node was created.
describeNodeResponse_createdTime :: Lens.Lens' DescribeNodeResponse Prelude.UTCTime
describeNodeResponse_createdTime :: Lens' DescribeNodeResponse UTCTime
describeNodeResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {POSIX
createdTime :: POSIX
$sel:createdTime:DescribeNodeResponse' :: DescribeNodeResponse -> POSIX
createdTime} -> POSIX
createdTime) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} POSIX
a -> DescribeNodeResponse
s {$sel:createdTime:DescribeNodeResponse' :: POSIX
createdTime = POSIX
a} :: DescribeNodeResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The node\'s description.
describeNodeResponse_description :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_description :: Lens' DescribeNodeResponse Text
describeNodeResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
description :: Text
$sel:description:DescribeNodeResponse' :: DescribeNodeResponse -> Text
description} -> Text
description) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:description:DescribeNodeResponse' :: Text
description = Text
a} :: DescribeNodeResponse)

-- | When the node was updated.
describeNodeResponse_lastUpdatedTime :: Lens.Lens' DescribeNodeResponse Prelude.UTCTime
describeNodeResponse_lastUpdatedTime :: Lens' DescribeNodeResponse UTCTime
describeNodeResponse_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {POSIX
lastUpdatedTime :: POSIX
$sel:lastUpdatedTime:DescribeNodeResponse' :: DescribeNodeResponse -> POSIX
lastUpdatedTime} -> POSIX
lastUpdatedTime) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} POSIX
a -> DescribeNodeResponse
s {$sel:lastUpdatedTime:DescribeNodeResponse' :: POSIX
lastUpdatedTime = POSIX
a} :: DescribeNodeResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The node\'s name.
describeNodeResponse_name :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_name :: Lens' DescribeNodeResponse Text
describeNodeResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
name :: Text
$sel:name:DescribeNodeResponse' :: DescribeNodeResponse -> Text
name} -> Text
name) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:name:DescribeNodeResponse' :: Text
name = Text
a} :: DescribeNodeResponse)

-- | The node\'s ID.
describeNodeResponse_nodeId :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_nodeId :: Lens' DescribeNodeResponse Text
describeNodeResponse_nodeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
nodeId :: Text
$sel:nodeId:DescribeNodeResponse' :: DescribeNodeResponse -> Text
nodeId} -> Text
nodeId) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:nodeId:DescribeNodeResponse' :: Text
nodeId = Text
a} :: DescribeNodeResponse)

-- | The node\'s interface.
describeNodeResponse_nodeInterface :: Lens.Lens' DescribeNodeResponse NodeInterface
describeNodeResponse_nodeInterface :: Lens' DescribeNodeResponse NodeInterface
describeNodeResponse_nodeInterface = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {NodeInterface
nodeInterface :: NodeInterface
$sel:nodeInterface:DescribeNodeResponse' :: DescribeNodeResponse -> NodeInterface
nodeInterface} -> NodeInterface
nodeInterface) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} NodeInterface
a -> DescribeNodeResponse
s {$sel:nodeInterface:DescribeNodeResponse' :: NodeInterface
nodeInterface = NodeInterface
a} :: DescribeNodeResponse)

-- | The account ID of the node\'s owner.
describeNodeResponse_ownerAccount :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_ownerAccount :: Lens' DescribeNodeResponse Text
describeNodeResponse_ownerAccount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
ownerAccount :: Text
$sel:ownerAccount:DescribeNodeResponse' :: DescribeNodeResponse -> Text
ownerAccount} -> Text
ownerAccount) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:ownerAccount:DescribeNodeResponse' :: Text
ownerAccount = Text
a} :: DescribeNodeResponse)

-- | The node\'s package ID.
describeNodeResponse_packageId :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_packageId :: Lens' DescribeNodeResponse Text
describeNodeResponse_packageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
packageId :: Text
$sel:packageId:DescribeNodeResponse' :: DescribeNodeResponse -> Text
packageId} -> Text
packageId) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:packageId:DescribeNodeResponse' :: Text
packageId = Text
a} :: DescribeNodeResponse)

-- | The node\'s package name.
describeNodeResponse_packageName :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_packageName :: Lens' DescribeNodeResponse Text
describeNodeResponse_packageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
packageName :: Text
$sel:packageName:DescribeNodeResponse' :: DescribeNodeResponse -> Text
packageName} -> Text
packageName) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:packageName:DescribeNodeResponse' :: Text
packageName = Text
a} :: DescribeNodeResponse)

-- | The node\'s package version.
describeNodeResponse_packageVersion :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_packageVersion :: Lens' DescribeNodeResponse Text
describeNodeResponse_packageVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
packageVersion :: Text
$sel:packageVersion:DescribeNodeResponse' :: DescribeNodeResponse -> Text
packageVersion} -> Text
packageVersion) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:packageVersion:DescribeNodeResponse' :: Text
packageVersion = Text
a} :: DescribeNodeResponse)

-- | The node\'s patch version.
describeNodeResponse_patchVersion :: Lens.Lens' DescribeNodeResponse Prelude.Text
describeNodeResponse_patchVersion :: Lens' DescribeNodeResponse Text
describeNodeResponse_patchVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeNodeResponse' {Text
patchVersion :: Text
$sel:patchVersion:DescribeNodeResponse' :: DescribeNodeResponse -> Text
patchVersion} -> Text
patchVersion) (\s :: DescribeNodeResponse
s@DescribeNodeResponse' {} Text
a -> DescribeNodeResponse
s {$sel:patchVersion:DescribeNodeResponse' :: Text
patchVersion = Text
a} :: DescribeNodeResponse)

instance Prelude.NFData DescribeNodeResponse where
  rnf :: DescribeNodeResponse -> ()
rnf DescribeNodeResponse' {Int
Maybe Text
Text
POSIX
NodeCategory
NodeInterface
patchVersion :: Text
packageVersion :: Text
packageName :: Text
packageId :: Text
ownerAccount :: Text
nodeInterface :: NodeInterface
nodeId :: Text
name :: Text
lastUpdatedTime :: POSIX
description :: Text
createdTime :: POSIX
category :: NodeCategory
httpStatus :: Int
packageArn :: Maybe Text
assetName :: Maybe Text
$sel:patchVersion:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:packageVersion:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:packageName:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:packageId:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:ownerAccount:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:nodeInterface:DescribeNodeResponse' :: DescribeNodeResponse -> NodeInterface
$sel:nodeId:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:name:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:lastUpdatedTime:DescribeNodeResponse' :: DescribeNodeResponse -> POSIX
$sel:description:DescribeNodeResponse' :: DescribeNodeResponse -> Text
$sel:createdTime:DescribeNodeResponse' :: DescribeNodeResponse -> POSIX
$sel:category:DescribeNodeResponse' :: DescribeNodeResponse -> NodeCategory
$sel:httpStatus:DescribeNodeResponse' :: DescribeNodeResponse -> Int
$sel:packageArn:DescribeNodeResponse' :: DescribeNodeResponse -> Maybe Text
$sel:assetName:DescribeNodeResponse' :: DescribeNodeResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
assetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
packageArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 NodeCategory
category
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
lastUpdatedTime
      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
nodeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NodeInterface
nodeInterface
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
ownerAccount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
packageVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
patchVersion