{-# 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.Greengrass.GetDeviceDefinitionVersion
-- 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 device definition version.
module Amazonka.Greengrass.GetDeviceDefinitionVersion
  ( -- * Creating a Request
    GetDeviceDefinitionVersion (..),
    newGetDeviceDefinitionVersion,

    -- * Request Lenses
    getDeviceDefinitionVersion_nextToken,
    getDeviceDefinitionVersion_deviceDefinitionVersionId,
    getDeviceDefinitionVersion_deviceDefinitionId,

    -- * Destructuring the Response
    GetDeviceDefinitionVersionResponse (..),
    newGetDeviceDefinitionVersionResponse,

    -- * Response Lenses
    getDeviceDefinitionVersionResponse_arn,
    getDeviceDefinitionVersionResponse_creationTimestamp,
    getDeviceDefinitionVersionResponse_definition,
    getDeviceDefinitionVersionResponse_id,
    getDeviceDefinitionVersionResponse_nextToken,
    getDeviceDefinitionVersionResponse_version,
    getDeviceDefinitionVersionResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetDeviceDefinitionVersion' smart constructor.
data GetDeviceDefinitionVersion = GetDeviceDefinitionVersion'
  { -- | The token for the next set of results, or \'\'null\'\' if there are no
    -- additional results.
    GetDeviceDefinitionVersion -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ID of the device definition version. This value maps to the
    -- \'\'Version\'\' property of the corresponding \'\'VersionInformation\'\'
    -- object, which is returned by \'\'ListDeviceDefinitionVersions\'\'
    -- requests. If the version is the last one that was associated with a
    -- device definition, the value also maps to the \'\'LatestVersion\'\'
    -- property of the corresponding \'\'DefinitionInformation\'\' object.
    GetDeviceDefinitionVersion -> Text
deviceDefinitionVersionId :: Prelude.Text,
    -- | The ID of the device definition.
    GetDeviceDefinitionVersion -> Text
deviceDefinitionId :: Prelude.Text
  }
  deriving (GetDeviceDefinitionVersion -> GetDeviceDefinitionVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDeviceDefinitionVersion -> GetDeviceDefinitionVersion -> Bool
$c/= :: GetDeviceDefinitionVersion -> GetDeviceDefinitionVersion -> Bool
== :: GetDeviceDefinitionVersion -> GetDeviceDefinitionVersion -> Bool
$c== :: GetDeviceDefinitionVersion -> GetDeviceDefinitionVersion -> Bool
Prelude.Eq, ReadPrec [GetDeviceDefinitionVersion]
ReadPrec GetDeviceDefinitionVersion
Int -> ReadS GetDeviceDefinitionVersion
ReadS [GetDeviceDefinitionVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDeviceDefinitionVersion]
$creadListPrec :: ReadPrec [GetDeviceDefinitionVersion]
readPrec :: ReadPrec GetDeviceDefinitionVersion
$creadPrec :: ReadPrec GetDeviceDefinitionVersion
readList :: ReadS [GetDeviceDefinitionVersion]
$creadList :: ReadS [GetDeviceDefinitionVersion]
readsPrec :: Int -> ReadS GetDeviceDefinitionVersion
$creadsPrec :: Int -> ReadS GetDeviceDefinitionVersion
Prelude.Read, Int -> GetDeviceDefinitionVersion -> ShowS
[GetDeviceDefinitionVersion] -> ShowS
GetDeviceDefinitionVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDeviceDefinitionVersion] -> ShowS
$cshowList :: [GetDeviceDefinitionVersion] -> ShowS
show :: GetDeviceDefinitionVersion -> String
$cshow :: GetDeviceDefinitionVersion -> String
showsPrec :: Int -> GetDeviceDefinitionVersion -> ShowS
$cshowsPrec :: Int -> GetDeviceDefinitionVersion -> ShowS
Prelude.Show, forall x.
Rep GetDeviceDefinitionVersion x -> GetDeviceDefinitionVersion
forall x.
GetDeviceDefinitionVersion -> Rep GetDeviceDefinitionVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDeviceDefinitionVersion x -> GetDeviceDefinitionVersion
$cfrom :: forall x.
GetDeviceDefinitionVersion -> Rep GetDeviceDefinitionVersion x
Prelude.Generic)

-- |
-- Create a value of 'GetDeviceDefinitionVersion' 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:
--
-- 'nextToken', 'getDeviceDefinitionVersion_nextToken' - The token for the next set of results, or \'\'null\'\' if there are no
-- additional results.
--
-- 'deviceDefinitionVersionId', 'getDeviceDefinitionVersion_deviceDefinitionVersionId' - The ID of the device definition version. This value maps to the
-- \'\'Version\'\' property of the corresponding \'\'VersionInformation\'\'
-- object, which is returned by \'\'ListDeviceDefinitionVersions\'\'
-- requests. If the version is the last one that was associated with a
-- device definition, the value also maps to the \'\'LatestVersion\'\'
-- property of the corresponding \'\'DefinitionInformation\'\' object.
--
-- 'deviceDefinitionId', 'getDeviceDefinitionVersion_deviceDefinitionId' - The ID of the device definition.
newGetDeviceDefinitionVersion ::
  -- | 'deviceDefinitionVersionId'
  Prelude.Text ->
  -- | 'deviceDefinitionId'
  Prelude.Text ->
  GetDeviceDefinitionVersion
newGetDeviceDefinitionVersion :: Text -> Text -> GetDeviceDefinitionVersion
newGetDeviceDefinitionVersion
  Text
pDeviceDefinitionVersionId_
  Text
pDeviceDefinitionId_ =
    GetDeviceDefinitionVersion'
      { $sel:nextToken:GetDeviceDefinitionVersion' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: Text
deviceDefinitionVersionId =
          Text
pDeviceDefinitionVersionId_,
        $sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: Text
deviceDefinitionId = Text
pDeviceDefinitionId_
      }

-- | The token for the next set of results, or \'\'null\'\' if there are no
-- additional results.
getDeviceDefinitionVersion_nextToken :: Lens.Lens' GetDeviceDefinitionVersion (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersion_nextToken :: Lens' GetDeviceDefinitionVersion (Maybe Text)
getDeviceDefinitionVersion_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersion' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetDeviceDefinitionVersion
s@GetDeviceDefinitionVersion' {} Maybe Text
a -> GetDeviceDefinitionVersion
s {$sel:nextToken:GetDeviceDefinitionVersion' :: Maybe Text
nextToken = Maybe Text
a} :: GetDeviceDefinitionVersion)

-- | The ID of the device definition version. This value maps to the
-- \'\'Version\'\' property of the corresponding \'\'VersionInformation\'\'
-- object, which is returned by \'\'ListDeviceDefinitionVersions\'\'
-- requests. If the version is the last one that was associated with a
-- device definition, the value also maps to the \'\'LatestVersion\'\'
-- property of the corresponding \'\'DefinitionInformation\'\' object.
getDeviceDefinitionVersion_deviceDefinitionVersionId :: Lens.Lens' GetDeviceDefinitionVersion Prelude.Text
getDeviceDefinitionVersion_deviceDefinitionVersionId :: Lens' GetDeviceDefinitionVersion Text
getDeviceDefinitionVersion_deviceDefinitionVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersion' {Text
deviceDefinitionVersionId :: Text
$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
deviceDefinitionVersionId} -> Text
deviceDefinitionVersionId) (\s :: GetDeviceDefinitionVersion
s@GetDeviceDefinitionVersion' {} Text
a -> GetDeviceDefinitionVersion
s {$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: Text
deviceDefinitionVersionId = Text
a} :: GetDeviceDefinitionVersion)

-- | The ID of the device definition.
getDeviceDefinitionVersion_deviceDefinitionId :: Lens.Lens' GetDeviceDefinitionVersion Prelude.Text
getDeviceDefinitionVersion_deviceDefinitionId :: Lens' GetDeviceDefinitionVersion Text
getDeviceDefinitionVersion_deviceDefinitionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersion' {Text
deviceDefinitionId :: Text
$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
deviceDefinitionId} -> Text
deviceDefinitionId) (\s :: GetDeviceDefinitionVersion
s@GetDeviceDefinitionVersion' {} Text
a -> GetDeviceDefinitionVersion
s {$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: Text
deviceDefinitionId = Text
a} :: GetDeviceDefinitionVersion)

instance Core.AWSRequest GetDeviceDefinitionVersion where
  type
    AWSResponse GetDeviceDefinitionVersion =
      GetDeviceDefinitionVersionResponse
  request :: (Service -> Service)
-> GetDeviceDefinitionVersion -> Request GetDeviceDefinitionVersion
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 GetDeviceDefinitionVersion
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetDeviceDefinitionVersion)))
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
-> Maybe DeviceDefinitionVersion
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> GetDeviceDefinitionVersionResponse
GetDeviceDefinitionVersionResponse'
            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
"Arn")
            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
"CreationTimestamp")
            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
"Definition")
            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
"Id")
            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
"NextToken")
            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
"Version")
            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))
      )

instance Prelude.Hashable GetDeviceDefinitionVersion where
  hashWithSalt :: Int -> GetDeviceDefinitionVersion -> Int
hashWithSalt Int
_salt GetDeviceDefinitionVersion' {Maybe Text
Text
deviceDefinitionId :: Text
deviceDefinitionVersionId :: Text
nextToken :: Maybe Text
$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:nextToken:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
deviceDefinitionVersionId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
deviceDefinitionId

instance Prelude.NFData GetDeviceDefinitionVersion where
  rnf :: GetDeviceDefinitionVersion -> ()
rnf GetDeviceDefinitionVersion' {Maybe Text
Text
deviceDefinitionId :: Text
deviceDefinitionVersionId :: Text
nextToken :: Maybe Text
$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:nextToken:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceDefinitionVersionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
deviceDefinitionId

instance Data.ToHeaders GetDeviceDefinitionVersion where
  toHeaders :: GetDeviceDefinitionVersion -> 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 GetDeviceDefinitionVersion where
  toPath :: GetDeviceDefinitionVersion -> ByteString
toPath GetDeviceDefinitionVersion' {Maybe Text
Text
deviceDefinitionId :: Text
deviceDefinitionVersionId :: Text
nextToken :: Maybe Text
$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:nextToken:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/greengrass/definition/devices/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
deviceDefinitionId,
        ByteString
"/versions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
deviceDefinitionVersionId
      ]

instance Data.ToQuery GetDeviceDefinitionVersion where
  toQuery :: GetDeviceDefinitionVersion -> QueryString
toQuery GetDeviceDefinitionVersion' {Maybe Text
Text
deviceDefinitionId :: Text
deviceDefinitionVersionId :: Text
nextToken :: Maybe Text
$sel:deviceDefinitionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:deviceDefinitionVersionId:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Text
$sel:nextToken:GetDeviceDefinitionVersion' :: GetDeviceDefinitionVersion -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"NextToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
nextToken]

-- | /See:/ 'newGetDeviceDefinitionVersionResponse' smart constructor.
data GetDeviceDefinitionVersionResponse = GetDeviceDefinitionVersionResponse'
  { -- | The ARN of the device definition version.
    GetDeviceDefinitionVersionResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The time, in milliseconds since the epoch, when the device definition
    -- version was created.
    GetDeviceDefinitionVersionResponse -> Maybe Text
creationTimestamp :: Prelude.Maybe Prelude.Text,
    -- | Information about the device definition version.
    GetDeviceDefinitionVersionResponse -> Maybe DeviceDefinitionVersion
definition :: Prelude.Maybe DeviceDefinitionVersion,
    -- | The ID of the device definition version.
    GetDeviceDefinitionVersionResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The token for the next set of results, or \'\'null\'\' if there are no
    -- additional results.
    GetDeviceDefinitionVersionResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The version of the device definition version.
    GetDeviceDefinitionVersionResponse -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetDeviceDefinitionVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetDeviceDefinitionVersionResponse
-> GetDeviceDefinitionVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDeviceDefinitionVersionResponse
-> GetDeviceDefinitionVersionResponse -> Bool
$c/= :: GetDeviceDefinitionVersionResponse
-> GetDeviceDefinitionVersionResponse -> Bool
== :: GetDeviceDefinitionVersionResponse
-> GetDeviceDefinitionVersionResponse -> Bool
$c== :: GetDeviceDefinitionVersionResponse
-> GetDeviceDefinitionVersionResponse -> Bool
Prelude.Eq, ReadPrec [GetDeviceDefinitionVersionResponse]
ReadPrec GetDeviceDefinitionVersionResponse
Int -> ReadS GetDeviceDefinitionVersionResponse
ReadS [GetDeviceDefinitionVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDeviceDefinitionVersionResponse]
$creadListPrec :: ReadPrec [GetDeviceDefinitionVersionResponse]
readPrec :: ReadPrec GetDeviceDefinitionVersionResponse
$creadPrec :: ReadPrec GetDeviceDefinitionVersionResponse
readList :: ReadS [GetDeviceDefinitionVersionResponse]
$creadList :: ReadS [GetDeviceDefinitionVersionResponse]
readsPrec :: Int -> ReadS GetDeviceDefinitionVersionResponse
$creadsPrec :: Int -> ReadS GetDeviceDefinitionVersionResponse
Prelude.Read, Int -> GetDeviceDefinitionVersionResponse -> ShowS
[GetDeviceDefinitionVersionResponse] -> ShowS
GetDeviceDefinitionVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDeviceDefinitionVersionResponse] -> ShowS
$cshowList :: [GetDeviceDefinitionVersionResponse] -> ShowS
show :: GetDeviceDefinitionVersionResponse -> String
$cshow :: GetDeviceDefinitionVersionResponse -> String
showsPrec :: Int -> GetDeviceDefinitionVersionResponse -> ShowS
$cshowsPrec :: Int -> GetDeviceDefinitionVersionResponse -> ShowS
Prelude.Show, forall x.
Rep GetDeviceDefinitionVersionResponse x
-> GetDeviceDefinitionVersionResponse
forall x.
GetDeviceDefinitionVersionResponse
-> Rep GetDeviceDefinitionVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDeviceDefinitionVersionResponse x
-> GetDeviceDefinitionVersionResponse
$cfrom :: forall x.
GetDeviceDefinitionVersionResponse
-> Rep GetDeviceDefinitionVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetDeviceDefinitionVersionResponse' 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:
--
-- 'arn', 'getDeviceDefinitionVersionResponse_arn' - The ARN of the device definition version.
--
-- 'creationTimestamp', 'getDeviceDefinitionVersionResponse_creationTimestamp' - The time, in milliseconds since the epoch, when the device definition
-- version was created.
--
-- 'definition', 'getDeviceDefinitionVersionResponse_definition' - Information about the device definition version.
--
-- 'id', 'getDeviceDefinitionVersionResponse_id' - The ID of the device definition version.
--
-- 'nextToken', 'getDeviceDefinitionVersionResponse_nextToken' - The token for the next set of results, or \'\'null\'\' if there are no
-- additional results.
--
-- 'version', 'getDeviceDefinitionVersionResponse_version' - The version of the device definition version.
--
-- 'httpStatus', 'getDeviceDefinitionVersionResponse_httpStatus' - The response's http status code.
newGetDeviceDefinitionVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetDeviceDefinitionVersionResponse
newGetDeviceDefinitionVersionResponse :: Int -> GetDeviceDefinitionVersionResponse
newGetDeviceDefinitionVersionResponse Int
pHttpStatus_ =
  GetDeviceDefinitionVersionResponse'
    { $sel:arn:GetDeviceDefinitionVersionResponse' :: Maybe Text
arn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTimestamp:GetDeviceDefinitionVersionResponse' :: Maybe Text
creationTimestamp = forall a. Maybe a
Prelude.Nothing,
      $sel:definition:GetDeviceDefinitionVersionResponse' :: Maybe DeviceDefinitionVersion
definition = forall a. Maybe a
Prelude.Nothing,
      $sel:id:GetDeviceDefinitionVersionResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetDeviceDefinitionVersionResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:version:GetDeviceDefinitionVersionResponse' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetDeviceDefinitionVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the device definition version.
getDeviceDefinitionVersionResponse_arn :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersionResponse_arn :: Lens' GetDeviceDefinitionVersionResponse (Maybe Text)
getDeviceDefinitionVersionResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe Text
a -> GetDeviceDefinitionVersionResponse
s {$sel:arn:GetDeviceDefinitionVersionResponse' :: Maybe Text
arn = Maybe Text
a} :: GetDeviceDefinitionVersionResponse)

-- | The time, in milliseconds since the epoch, when the device definition
-- version was created.
getDeviceDefinitionVersionResponse_creationTimestamp :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersionResponse_creationTimestamp :: Lens' GetDeviceDefinitionVersionResponse (Maybe Text)
getDeviceDefinitionVersionResponse_creationTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe Text
creationTimestamp :: Maybe Text
$sel:creationTimestamp:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
creationTimestamp} -> Maybe Text
creationTimestamp) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe Text
a -> GetDeviceDefinitionVersionResponse
s {$sel:creationTimestamp:GetDeviceDefinitionVersionResponse' :: Maybe Text
creationTimestamp = Maybe Text
a} :: GetDeviceDefinitionVersionResponse)

-- | Information about the device definition version.
getDeviceDefinitionVersionResponse_definition :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe DeviceDefinitionVersion)
getDeviceDefinitionVersionResponse_definition :: Lens'
  GetDeviceDefinitionVersionResponse (Maybe DeviceDefinitionVersion)
getDeviceDefinitionVersionResponse_definition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe DeviceDefinitionVersion
definition :: Maybe DeviceDefinitionVersion
$sel:definition:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe DeviceDefinitionVersion
definition} -> Maybe DeviceDefinitionVersion
definition) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe DeviceDefinitionVersion
a -> GetDeviceDefinitionVersionResponse
s {$sel:definition:GetDeviceDefinitionVersionResponse' :: Maybe DeviceDefinitionVersion
definition = Maybe DeviceDefinitionVersion
a} :: GetDeviceDefinitionVersionResponse)

-- | The ID of the device definition version.
getDeviceDefinitionVersionResponse_id :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersionResponse_id :: Lens' GetDeviceDefinitionVersionResponse (Maybe Text)
getDeviceDefinitionVersionResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe Text
id :: Maybe Text
$sel:id:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe Text
a -> GetDeviceDefinitionVersionResponse
s {$sel:id:GetDeviceDefinitionVersionResponse' :: Maybe Text
id = Maybe Text
a} :: GetDeviceDefinitionVersionResponse)

-- | The token for the next set of results, or \'\'null\'\' if there are no
-- additional results.
getDeviceDefinitionVersionResponse_nextToken :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersionResponse_nextToken :: Lens' GetDeviceDefinitionVersionResponse (Maybe Text)
getDeviceDefinitionVersionResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe Text
a -> GetDeviceDefinitionVersionResponse
s {$sel:nextToken:GetDeviceDefinitionVersionResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetDeviceDefinitionVersionResponse)

-- | The version of the device definition version.
getDeviceDefinitionVersionResponse_version :: Lens.Lens' GetDeviceDefinitionVersionResponse (Prelude.Maybe Prelude.Text)
getDeviceDefinitionVersionResponse_version :: Lens' GetDeviceDefinitionVersionResponse (Maybe Text)
getDeviceDefinitionVersionResponse_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDeviceDefinitionVersionResponse' {Maybe Text
version :: Maybe Text
$sel:version:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
version} -> Maybe Text
version) (\s :: GetDeviceDefinitionVersionResponse
s@GetDeviceDefinitionVersionResponse' {} Maybe Text
a -> GetDeviceDefinitionVersionResponse
s {$sel:version:GetDeviceDefinitionVersionResponse' :: Maybe Text
version = Maybe Text
a} :: GetDeviceDefinitionVersionResponse)

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

instance
  Prelude.NFData
    GetDeviceDefinitionVersionResponse
  where
  rnf :: GetDeviceDefinitionVersionResponse -> ()
rnf GetDeviceDefinitionVersionResponse' {Int
Maybe Text
Maybe DeviceDefinitionVersion
httpStatus :: Int
version :: Maybe Text
nextToken :: Maybe Text
id :: Maybe Text
definition :: Maybe DeviceDefinitionVersion
creationTimestamp :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Int
$sel:version:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
$sel:nextToken:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
$sel:id:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
$sel:definition:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe DeviceDefinitionVersion
$sel:creationTimestamp:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
$sel:arn:GetDeviceDefinitionVersionResponse' :: GetDeviceDefinitionVersionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
creationTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeviceDefinitionVersion
definition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus