amazonka-wellarchitected-2.0: gen/Amazonka/WellArchitected/GetLensVersionDifference.hs
{-# 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.
baseLensVersion :: Prelude.Maybe Prelude.Text,
-- | The lens version to target a difference for.
targetLensVersion :: Prelude.Maybe Prelude.Text,
lensAlias :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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 pLensAlias_ =
GetLensVersionDifference'
{ baseLensVersion =
Prelude.Nothing,
targetLensVersion = Prelude.Nothing,
lensAlias = pLensAlias_
}
-- | The base version of the lens.
getLensVersionDifference_baseLensVersion :: Lens.Lens' GetLensVersionDifference (Prelude.Maybe Prelude.Text)
getLensVersionDifference_baseLensVersion = Lens.lens (\GetLensVersionDifference' {baseLensVersion} -> baseLensVersion) (\s@GetLensVersionDifference' {} a -> s {baseLensVersion = a} :: GetLensVersionDifference)
-- | The lens version to target a difference for.
getLensVersionDifference_targetLensVersion :: Lens.Lens' GetLensVersionDifference (Prelude.Maybe Prelude.Text)
getLensVersionDifference_targetLensVersion = Lens.lens (\GetLensVersionDifference' {targetLensVersion} -> targetLensVersion) (\s@GetLensVersionDifference' {} a -> s {targetLensVersion = a} :: GetLensVersionDifference)
-- | Undocumented member.
getLensVersionDifference_lensAlias :: Lens.Lens' GetLensVersionDifference Prelude.Text
getLensVersionDifference_lensAlias = Lens.lens (\GetLensVersionDifference' {lensAlias} -> lensAlias) (\s@GetLensVersionDifference' {} a -> s {lensAlias = a} :: GetLensVersionDifference)
instance Core.AWSRequest GetLensVersionDifference where
type
AWSResponse GetLensVersionDifference =
GetLensVersionDifferenceResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetLensVersionDifferenceResponse'
Prelude.<$> (x Data..?> "BaseLensVersion")
Prelude.<*> (x Data..?> "LatestLensVersion")
Prelude.<*> (x Data..?> "LensAlias")
Prelude.<*> (x Data..?> "LensArn")
Prelude.<*> (x Data..?> "TargetLensVersion")
Prelude.<*> (x Data..?> "VersionDifferences")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetLensVersionDifference where
hashWithSalt _salt GetLensVersionDifference' {..} =
_salt
`Prelude.hashWithSalt` baseLensVersion
`Prelude.hashWithSalt` targetLensVersion
`Prelude.hashWithSalt` lensAlias
instance Prelude.NFData GetLensVersionDifference where
rnf GetLensVersionDifference' {..} =
Prelude.rnf baseLensVersion
`Prelude.seq` Prelude.rnf targetLensVersion
`Prelude.seq` Prelude.rnf lensAlias
instance Data.ToHeaders GetLensVersionDifference where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath GetLensVersionDifference where
toPath GetLensVersionDifference' {..} =
Prelude.mconcat
[ "/lenses/",
Data.toBS lensAlias,
"/versionDifference"
]
instance Data.ToQuery GetLensVersionDifference where
toQuery GetLensVersionDifference' {..} =
Prelude.mconcat
[ "BaseLensVersion" Data.=: baseLensVersion,
"TargetLensVersion" Data.=: targetLensVersion
]
-- | /See:/ 'newGetLensVersionDifferenceResponse' smart constructor.
data GetLensVersionDifferenceResponse = GetLensVersionDifferenceResponse'
{ -- | The base version of the lens.
baseLensVersion :: Prelude.Maybe Prelude.Text,
-- | The latest version of the lens.
latestLensVersion :: Prelude.Maybe Prelude.Text,
lensAlias :: Prelude.Maybe Prelude.Text,
-- | The ARN for the lens.
lensArn :: Prelude.Maybe Prelude.Text,
-- | The target lens version for the lens.
targetLensVersion :: Prelude.Maybe Prelude.Text,
versionDifferences :: Prelude.Maybe VersionDifferences,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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 pHttpStatus_ =
GetLensVersionDifferenceResponse'
{ baseLensVersion =
Prelude.Nothing,
latestLensVersion = Prelude.Nothing,
lensAlias = Prelude.Nothing,
lensArn = Prelude.Nothing,
targetLensVersion = Prelude.Nothing,
versionDifferences = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | The base version of the lens.
getLensVersionDifferenceResponse_baseLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_baseLensVersion = Lens.lens (\GetLensVersionDifferenceResponse' {baseLensVersion} -> baseLensVersion) (\s@GetLensVersionDifferenceResponse' {} a -> s {baseLensVersion = a} :: GetLensVersionDifferenceResponse)
-- | The latest version of the lens.
getLensVersionDifferenceResponse_latestLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_latestLensVersion = Lens.lens (\GetLensVersionDifferenceResponse' {latestLensVersion} -> latestLensVersion) (\s@GetLensVersionDifferenceResponse' {} a -> s {latestLensVersion = a} :: GetLensVersionDifferenceResponse)
-- | Undocumented member.
getLensVersionDifferenceResponse_lensAlias :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_lensAlias = Lens.lens (\GetLensVersionDifferenceResponse' {lensAlias} -> lensAlias) (\s@GetLensVersionDifferenceResponse' {} a -> s {lensAlias = a} :: GetLensVersionDifferenceResponse)
-- | The ARN for the lens.
getLensVersionDifferenceResponse_lensArn :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_lensArn = Lens.lens (\GetLensVersionDifferenceResponse' {lensArn} -> lensArn) (\s@GetLensVersionDifferenceResponse' {} a -> s {lensArn = a} :: GetLensVersionDifferenceResponse)
-- | The target lens version for the lens.
getLensVersionDifferenceResponse_targetLensVersion :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe Prelude.Text)
getLensVersionDifferenceResponse_targetLensVersion = Lens.lens (\GetLensVersionDifferenceResponse' {targetLensVersion} -> targetLensVersion) (\s@GetLensVersionDifferenceResponse' {} a -> s {targetLensVersion = a} :: GetLensVersionDifferenceResponse)
-- | Undocumented member.
getLensVersionDifferenceResponse_versionDifferences :: Lens.Lens' GetLensVersionDifferenceResponse (Prelude.Maybe VersionDifferences)
getLensVersionDifferenceResponse_versionDifferences = Lens.lens (\GetLensVersionDifferenceResponse' {versionDifferences} -> versionDifferences) (\s@GetLensVersionDifferenceResponse' {} a -> s {versionDifferences = a} :: GetLensVersionDifferenceResponse)
-- | The response's http status code.
getLensVersionDifferenceResponse_httpStatus :: Lens.Lens' GetLensVersionDifferenceResponse Prelude.Int
getLensVersionDifferenceResponse_httpStatus = Lens.lens (\GetLensVersionDifferenceResponse' {httpStatus} -> httpStatus) (\s@GetLensVersionDifferenceResponse' {} a -> s {httpStatus = a} :: GetLensVersionDifferenceResponse)
instance
Prelude.NFData
GetLensVersionDifferenceResponse
where
rnf GetLensVersionDifferenceResponse' {..} =
Prelude.rnf baseLensVersion
`Prelude.seq` Prelude.rnf latestLensVersion
`Prelude.seq` Prelude.rnf lensAlias
`Prelude.seq` Prelude.rnf lensArn
`Prelude.seq` Prelude.rnf targetLensVersion
`Prelude.seq` Prelude.rnf versionDifferences
`Prelude.seq` Prelude.rnf httpStatus