{-# 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.WellArchitected.GetLensVersionDifference
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get lens version differences.
module Amazonka.WellArchitected.GetLensVersionDifference
  ( -- * Creating a Request
    GetLensVersionDifference (..),
    newGetLensVersionDifference,

    -- * Request Lenses
    getLensVersionDifference_baseLensVersion,
    getLensVersionDifference_targetLensVersion,
    getLensVersionDifference_lensAlias,

    -- * Destructuring the Response
    GetLensVersionDifferenceResponse (..),
    newGetLensVersionDifferenceResponse,

    -- * Response Lenses
    getLensVersionDifferenceResponse_baseLensVersion,
    getLensVersionDifferenceResponse_latestLensVersion,
    getLensVersionDifferenceResponse_lensAlias,
    getLensVersionDifferenceResponse_lensArn,
    getLensVersionDifferenceResponse_targetLensVersion,
    getLensVersionDifferenceResponse_versionDifferences,
    getLensVersionDifferenceResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetLensVersionDifference' smart constructor.
data GetLensVersionDifference = GetLensVersionDifference'
  { -- | The base version of the lens.
    GetLensVersionDifference -> Maybe Text
baseLensVersion :: Prelude.Maybe Prelude.Text,
    -- | The lens version to target a difference for.
    GetLensVersionDifference -> Maybe Text
targetLensVersion :: Prelude.Maybe Prelude.Text,
    GetLensVersionDifference -> Text
lensAlias :: Prelude.Text
  }
  deriving (GetLensVersionDifference -> GetLensVersionDifference -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLensVersionDifference -> GetLensVersionDifference -> Bool
$c/= :: GetLensVersionDifference -> GetLensVersionDifference -> Bool
== :: GetLensVersionDifference -> GetLensVersionDifference -> Bool
$c== :: GetLensVersionDifference -> GetLensVersionDifference -> Bool
Prelude.Eq, ReadPrec [GetLensVersionDifference]
ReadPrec GetLensVersionDifference
Int -> ReadS GetLensVersionDifference
ReadS [GetLensVersionDifference]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLensVersionDifference]
$creadListPrec :: ReadPrec [GetLensVersionDifference]
readPrec :: ReadPrec GetLensVersionDifference
$creadPrec :: ReadPrec GetLensVersionDifference
readList :: ReadS [GetLensVersionDifference]
$creadList :: ReadS [GetLensVersionDifference]
readsPrec :: Int -> ReadS GetLensVersionDifference
$creadsPrec :: Int -> ReadS GetLensVersionDifference
Prelude.Read, Int -> GetLensVersionDifference -> ShowS
[GetLensVersionDifference] -> ShowS
GetLensVersionDifference -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLensVersionDifference] -> ShowS
$cshowList :: [GetLensVersionDifference] -> ShowS
show :: GetLensVersionDifference -> String
$cshow :: GetLensVersionDifference -> String
showsPrec :: Int -> GetLensVersionDifference -> ShowS
$cshowsPrec :: Int -> GetLensVersionDifference -> ShowS
Prelude.Show, forall x.
Rep GetLensVersionDifference x -> GetLensVersionDifference
forall x.
GetLensVersionDifference -> Rep GetLensVersionDifference x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLensVersionDifference x -> GetLensVersionDifference
$cfrom :: forall x.
GetLensVersionDifference -> Rep GetLensVersionDifference x
Prelude.Generic)

-- |
-- Create a value of 'GetLensVersionDifference' 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:
--
-- 'baseLensVersion', 'getLensVersionDifference_baseLensVersion' - The base version of the lens.
--
-- 'targetLensVersion', 'getLensVersionDifference_targetLensVersion' - The lens version to target a difference for.
--
-- 'lensAlias', 'getLensVersionDifference_lensAlias' - Undocumented member.
newGetLensVersionDifference ::
  -- | 'lensAlias'
  Prelude.Text ->
  GetLensVersionDifference
newGetLensVersionDifference :: Text -> GetLensVersionDifference
newGetLensVersionDifference Text
pLensAlias_ =
  GetLensVersionDifference'
    { $sel:baseLensVersion:GetLensVersionDifference' :: Maybe Text
baseLensVersion =
        forall a. Maybe a
Prelude.Nothing,
      $sel:targetLensVersion:GetLensVersionDifference' :: Maybe Text
targetLensVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:lensAlias:GetLensVersionDifference' :: Text
lensAlias = Text
pLensAlias_
    }

-- | The base version of the lens.
getLensVersionDifference_baseLensVersion :: Lens.Lens' GetLensVersionDifference (Prelude.Maybe Prelude.Text)
getLensVersionDifference_baseLensVersion :: Lens' GetLensVersionDifference (Maybe Text)
getLensVersionDifference_baseLensVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifference' {Maybe Text
baseLensVersion :: Maybe Text
$sel:baseLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
baseLensVersion} -> Maybe Text
baseLensVersion) (\s :: GetLensVersionDifference
s@GetLensVersionDifference' {} Maybe Text
a -> GetLensVersionDifference
s {$sel:baseLensVersion:GetLensVersionDifference' :: Maybe Text
baseLensVersion = Maybe Text
a} :: GetLensVersionDifference)

-- | The lens version to target a difference for.
getLensVersionDifference_targetLensVersion :: Lens.Lens' GetLensVersionDifference (Prelude.Maybe Prelude.Text)
getLensVersionDifference_targetLensVersion :: Lens' GetLensVersionDifference (Maybe Text)
getLensVersionDifference_targetLensVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifference' {Maybe Text
targetLensVersion :: Maybe Text
$sel:targetLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
targetLensVersion} -> Maybe Text
targetLensVersion) (\s :: GetLensVersionDifference
s@GetLensVersionDifference' {} Maybe Text
a -> GetLensVersionDifference
s {$sel:targetLensVersion:GetLensVersionDifference' :: Maybe Text
targetLensVersion = Maybe Text
a} :: GetLensVersionDifference)

-- | Undocumented member.
getLensVersionDifference_lensAlias :: Lens.Lens' GetLensVersionDifference Prelude.Text
getLensVersionDifference_lensAlias :: Lens' GetLensVersionDifference Text
getLensVersionDifference_lensAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifference' {Text
lensAlias :: Text
$sel:lensAlias:GetLensVersionDifference' :: GetLensVersionDifference -> Text
lensAlias} -> Text
lensAlias) (\s :: GetLensVersionDifference
s@GetLensVersionDifference' {} Text
a -> GetLensVersionDifference
s {$sel:lensAlias:GetLensVersionDifference' :: Text
lensAlias = Text
a} :: GetLensVersionDifference)

instance Core.AWSRequest GetLensVersionDifference where
  type
    AWSResponse GetLensVersionDifference =
      GetLensVersionDifferenceResponse
  request :: (Service -> Service)
-> GetLensVersionDifference -> Request GetLensVersionDifference
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 GetLensVersionDifference
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetLensVersionDifference)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe VersionDifferences
-> Int
-> GetLensVersionDifferenceResponse
GetLensVersionDifferenceResponse'
            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
"BaseLensVersion")
            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
"LatestLensVersion")
            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
"LensAlias")
            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
"LensArn")
            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
"TargetLensVersion")
            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
"VersionDifferences")
            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 GetLensVersionDifference where
  hashWithSalt :: Int -> GetLensVersionDifference -> Int
hashWithSalt Int
_salt GetLensVersionDifference' {Maybe Text
Text
lensAlias :: Text
targetLensVersion :: Maybe Text
baseLensVersion :: Maybe Text
$sel:lensAlias:GetLensVersionDifference' :: GetLensVersionDifference -> Text
$sel:targetLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
$sel:baseLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
baseLensVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
targetLensVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
lensAlias

instance Prelude.NFData GetLensVersionDifference where
  rnf :: GetLensVersionDifference -> ()
rnf GetLensVersionDifference' {Maybe Text
Text
lensAlias :: Text
targetLensVersion :: Maybe Text
baseLensVersion :: Maybe Text
$sel:lensAlias:GetLensVersionDifference' :: GetLensVersionDifference -> Text
$sel:targetLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
$sel:baseLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
baseLensVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
targetLensVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
lensAlias

instance Data.ToHeaders GetLensVersionDifference where
  toHeaders :: GetLensVersionDifference -> 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 GetLensVersionDifference where
  toPath :: GetLensVersionDifference -> ByteString
toPath GetLensVersionDifference' {Maybe Text
Text
lensAlias :: Text
targetLensVersion :: Maybe Text
baseLensVersion :: Maybe Text
$sel:lensAlias:GetLensVersionDifference' :: GetLensVersionDifference -> Text
$sel:targetLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
$sel:baseLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/lenses/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
lensAlias,
        ByteString
"/versionDifference"
      ]

instance Data.ToQuery GetLensVersionDifference where
  toQuery :: GetLensVersionDifference -> QueryString
toQuery GetLensVersionDifference' {Maybe Text
Text
lensAlias :: Text
targetLensVersion :: Maybe Text
baseLensVersion :: Maybe Text
$sel:lensAlias:GetLensVersionDifference' :: GetLensVersionDifference -> Text
$sel:targetLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
$sel:baseLensVersion:GetLensVersionDifference' :: GetLensVersionDifference -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"BaseLensVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
baseLensVersion,
        ByteString
"TargetLensVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
targetLensVersion
      ]

-- | /See:/ 'newGetLensVersionDifferenceResponse' smart constructor.
data GetLensVersionDifferenceResponse = GetLensVersionDifferenceResponse'
  { -- | The base version of the lens.
    GetLensVersionDifferenceResponse -> Maybe Text
baseLensVersion :: Prelude.Maybe Prelude.Text,
    -- | The latest version of the lens.
    GetLensVersionDifferenceResponse -> Maybe Text
latestLensVersion :: Prelude.Maybe Prelude.Text,
    GetLensVersionDifferenceResponse -> Maybe Text
lensAlias :: Prelude.Maybe Prelude.Text,
    -- | The ARN for the lens.
    GetLensVersionDifferenceResponse -> Maybe Text
lensArn :: Prelude.Maybe Prelude.Text,
    -- | The target lens version for the lens.
    GetLensVersionDifferenceResponse -> Maybe Text
targetLensVersion :: Prelude.Maybe Prelude.Text,
    GetLensVersionDifferenceResponse -> Maybe VersionDifferences
versionDifferences :: Prelude.Maybe VersionDifferences,
    -- | The response's http status code.
    GetLensVersionDifferenceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetLensVersionDifferenceResponse
-> GetLensVersionDifferenceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLensVersionDifferenceResponse
-> GetLensVersionDifferenceResponse -> Bool
$c/= :: GetLensVersionDifferenceResponse
-> GetLensVersionDifferenceResponse -> Bool
== :: GetLensVersionDifferenceResponse
-> GetLensVersionDifferenceResponse -> Bool
$c== :: GetLensVersionDifferenceResponse
-> GetLensVersionDifferenceResponse -> Bool
Prelude.Eq, ReadPrec [GetLensVersionDifferenceResponse]
ReadPrec GetLensVersionDifferenceResponse
Int -> ReadS GetLensVersionDifferenceResponse
ReadS [GetLensVersionDifferenceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLensVersionDifferenceResponse]
$creadListPrec :: ReadPrec [GetLensVersionDifferenceResponse]
readPrec :: ReadPrec GetLensVersionDifferenceResponse
$creadPrec :: ReadPrec GetLensVersionDifferenceResponse
readList :: ReadS [GetLensVersionDifferenceResponse]
$creadList :: ReadS [GetLensVersionDifferenceResponse]
readsPrec :: Int -> ReadS GetLensVersionDifferenceResponse
$creadsPrec :: Int -> ReadS GetLensVersionDifferenceResponse
Prelude.Read, Int -> GetLensVersionDifferenceResponse -> ShowS
[GetLensVersionDifferenceResponse] -> ShowS
GetLensVersionDifferenceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLensVersionDifferenceResponse] -> ShowS
$cshowList :: [GetLensVersionDifferenceResponse] -> ShowS
show :: GetLensVersionDifferenceResponse -> String
$cshow :: GetLensVersionDifferenceResponse -> String
showsPrec :: Int -> GetLensVersionDifferenceResponse -> ShowS
$cshowsPrec :: Int -> GetLensVersionDifferenceResponse -> ShowS
Prelude.Show, forall x.
Rep GetLensVersionDifferenceResponse x
-> GetLensVersionDifferenceResponse
forall x.
GetLensVersionDifferenceResponse
-> Rep GetLensVersionDifferenceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLensVersionDifferenceResponse x
-> GetLensVersionDifferenceResponse
$cfrom :: forall x.
GetLensVersionDifferenceResponse
-> Rep GetLensVersionDifferenceResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetLensVersionDifferenceResponse' 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:
--
-- 'baseLensVersion', 'getLensVersionDifferenceResponse_baseLensVersion' - The base version of the lens.
--
-- 'latestLensVersion', 'getLensVersionDifferenceResponse_latestLensVersion' - The latest version of the lens.
--
-- 'lensAlias', 'getLensVersionDifferenceResponse_lensAlias' - Undocumented member.
--
-- 'lensArn', 'getLensVersionDifferenceResponse_lensArn' - The ARN for the lens.
--
-- 'targetLensVersion', 'getLensVersionDifferenceResponse_targetLensVersion' - The target lens version for the lens.
--
-- 'versionDifferences', 'getLensVersionDifferenceResponse_versionDifferences' - Undocumented member.
--
-- 'httpStatus', 'getLensVersionDifferenceResponse_httpStatus' - The response's http status code.
newGetLensVersionDifferenceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetLensVersionDifferenceResponse
newGetLensVersionDifferenceResponse :: Int -> GetLensVersionDifferenceResponse
newGetLensVersionDifferenceResponse Int
pHttpStatus_ =
  GetLensVersionDifferenceResponse'
    { $sel:baseLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
baseLensVersion =
        forall a. Maybe a
Prelude.Nothing,
      $sel:latestLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
latestLensVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:lensAlias:GetLensVersionDifferenceResponse' :: Maybe Text
lensAlias = forall a. Maybe a
Prelude.Nothing,
      $sel:lensArn:GetLensVersionDifferenceResponse' :: Maybe Text
lensArn = forall a. Maybe a
Prelude.Nothing,
      $sel:targetLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
targetLensVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:versionDifferences:GetLensVersionDifferenceResponse' :: Maybe VersionDifferences
versionDifferences = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetLensVersionDifferenceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The base version of the lens.
getLensVersionDifferenceResponse_baseLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_baseLensVersion :: Lens' GetLensVersionDifferenceResponse (Maybe Text)
getLensVersionDifferenceResponse_baseLensVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe Text
baseLensVersion :: Maybe Text
$sel:baseLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
baseLensVersion} -> Maybe Text
baseLensVersion) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe Text
a -> GetLensVersionDifferenceResponse
s {$sel:baseLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
baseLensVersion = Maybe Text
a} :: GetLensVersionDifferenceResponse)

-- | The latest version of the lens.
getLensVersionDifferenceResponse_latestLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_latestLensVersion :: Lens' GetLensVersionDifferenceResponse (Maybe Text)
getLensVersionDifferenceResponse_latestLensVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe Text
latestLensVersion :: Maybe Text
$sel:latestLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
latestLensVersion} -> Maybe Text
latestLensVersion) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe Text
a -> GetLensVersionDifferenceResponse
s {$sel:latestLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
latestLensVersion = Maybe Text
a} :: GetLensVersionDifferenceResponse)

-- | Undocumented member.
getLensVersionDifferenceResponse_lensAlias :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_lensAlias :: Lens' GetLensVersionDifferenceResponse (Maybe Text)
getLensVersionDifferenceResponse_lensAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe Text
lensAlias :: Maybe Text
$sel:lensAlias:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
lensAlias} -> Maybe Text
lensAlias) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe Text
a -> GetLensVersionDifferenceResponse
s {$sel:lensAlias:GetLensVersionDifferenceResponse' :: Maybe Text
lensAlias = Maybe Text
a} :: GetLensVersionDifferenceResponse)

-- | The ARN for the lens.
getLensVersionDifferenceResponse_lensArn :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_lensArn :: Lens' GetLensVersionDifferenceResponse (Maybe Text)
getLensVersionDifferenceResponse_lensArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe Text
lensArn :: Maybe Text
$sel:lensArn:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
lensArn} -> Maybe Text
lensArn) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe Text
a -> GetLensVersionDifferenceResponse
s {$sel:lensArn:GetLensVersionDifferenceResponse' :: Maybe Text
lensArn = Maybe Text
a} :: GetLensVersionDifferenceResponse)

-- | The target lens version for the lens.
getLensVersionDifferenceResponse_targetLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_targetLensVersion :: Lens' GetLensVersionDifferenceResponse (Maybe Text)
getLensVersionDifferenceResponse_targetLensVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe Text
targetLensVersion :: Maybe Text
$sel:targetLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
targetLensVersion} -> Maybe Text
targetLensVersion) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe Text
a -> GetLensVersionDifferenceResponse
s {$sel:targetLensVersion:GetLensVersionDifferenceResponse' :: Maybe Text
targetLensVersion = Maybe Text
a} :: GetLensVersionDifferenceResponse)

-- | Undocumented member.
getLensVersionDifferenceResponse_versionDifferences :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe VersionDifferences)
getLensVersionDifferenceResponse_versionDifferences :: Lens' GetLensVersionDifferenceResponse (Maybe VersionDifferences)
getLensVersionDifferenceResponse_versionDifferences = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLensVersionDifferenceResponse' {Maybe VersionDifferences
versionDifferences :: Maybe VersionDifferences
$sel:versionDifferences:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe VersionDifferences
versionDifferences} -> Maybe VersionDifferences
versionDifferences) (\s :: GetLensVersionDifferenceResponse
s@GetLensVersionDifferenceResponse' {} Maybe VersionDifferences
a -> GetLensVersionDifferenceResponse
s {$sel:versionDifferences:GetLensVersionDifferenceResponse' :: Maybe VersionDifferences
versionDifferences = Maybe VersionDifferences
a} :: GetLensVersionDifferenceResponse)

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

instance
  Prelude.NFData
    GetLensVersionDifferenceResponse
  where
  rnf :: GetLensVersionDifferenceResponse -> ()
rnf GetLensVersionDifferenceResponse' {Int
Maybe Text
Maybe VersionDifferences
httpStatus :: Int
versionDifferences :: Maybe VersionDifferences
targetLensVersion :: Maybe Text
lensArn :: Maybe Text
lensAlias :: Maybe Text
latestLensVersion :: Maybe Text
baseLensVersion :: Maybe Text
$sel:httpStatus:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Int
$sel:versionDifferences:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe VersionDifferences
$sel:targetLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
$sel:lensArn:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
$sel:lensAlias:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
$sel:latestLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
$sel:baseLensVersion:GetLensVersionDifferenceResponse' :: GetLensVersionDifferenceResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
baseLensVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
latestLensVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensAlias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lensArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
targetLensVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VersionDifferences
versionDifferences
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus