{-# 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.ECR.GetLifecyclePolicyPreview
-- 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 the results of the lifecycle policy preview request for the
-- specified repository.
--
-- This operation returns paginated results.
module Amazonka.ECR.GetLifecyclePolicyPreview
  ( -- * Creating a Request
    GetLifecyclePolicyPreview (..),
    newGetLifecyclePolicyPreview,

    -- * Request Lenses
    getLifecyclePolicyPreview_filter,
    getLifecyclePolicyPreview_imageIds,
    getLifecyclePolicyPreview_maxResults,
    getLifecyclePolicyPreview_nextToken,
    getLifecyclePolicyPreview_registryId,
    getLifecyclePolicyPreview_repositoryName,

    -- * Destructuring the Response
    GetLifecyclePolicyPreviewResponse (..),
    newGetLifecyclePolicyPreviewResponse,

    -- * Response Lenses
    getLifecyclePolicyPreviewResponse_lifecyclePolicyText,
    getLifecyclePolicyPreviewResponse_nextToken,
    getLifecyclePolicyPreviewResponse_previewResults,
    getLifecyclePolicyPreviewResponse_registryId,
    getLifecyclePolicyPreviewResponse_repositoryName,
    getLifecyclePolicyPreviewResponse_status,
    getLifecyclePolicyPreviewResponse_summary,
    getLifecyclePolicyPreviewResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetLifecyclePolicyPreview' smart constructor.
data GetLifecyclePolicyPreview = GetLifecyclePolicyPreview'
  { -- | An optional parameter that filters results based on image tag status and
    -- all tags, if tagged.
    GetLifecyclePolicyPreview -> Maybe LifecyclePolicyPreviewFilter
filter' :: Prelude.Maybe LifecyclePolicyPreviewFilter,
    -- | The list of imageIDs to be included.
    GetLifecyclePolicyPreview -> Maybe [ImageIdentifier]
imageIds :: Prelude.Maybe [ImageIdentifier],
    -- | The maximum number of repository results returned by
    -- @GetLifecyclePolicyPreviewRequest@ in
 paginated output. When this
    -- parameter is used, @GetLifecyclePolicyPreviewRequest@ only returns

    -- @maxResults@ results in a single page along with a @nextToken@
 response
    -- element. The remaining results of the initial request can be seen by
    -- sending
 another @GetLifecyclePolicyPreviewRequest@ request with the
    -- returned @nextToken@
 value. This value can be between 1 and 1000. If
    -- this
 parameter is not used, then @GetLifecyclePolicyPreviewRequest@
    -- returns up to
 100 results and a @nextToken@ value, if
 applicable. This
    -- option cannot be used when you specify images with @imageIds@.
    GetLifecyclePolicyPreview -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The @nextToken@ value returned from a previous paginated

    -- @GetLifecyclePolicyPreviewRequest@ request where @maxResults@ was used
    -- and the
 results exceeded the value of that parameter. Pagination
    -- continues from the end of the
 previous results that returned the
    -- @nextToken@ value. This value is
 @null@ when there are no more results
    -- to return. This option cannot be used when you specify images with
    -- @imageIds@.
    GetLifecyclePolicyPreview -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID associated with the registry that
    -- contains the repository. If you do not specify a registry, the default
    -- registry is assumed.
    GetLifecyclePolicyPreview -> Maybe Text
registryId :: Prelude.Maybe Prelude.Text,
    -- | The name of the repository.
    GetLifecyclePolicyPreview -> Text
repositoryName :: Prelude.Text
  }
  deriving (GetLifecyclePolicyPreview -> GetLifecyclePolicyPreview -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLifecyclePolicyPreview -> GetLifecyclePolicyPreview -> Bool
$c/= :: GetLifecyclePolicyPreview -> GetLifecyclePolicyPreview -> Bool
== :: GetLifecyclePolicyPreview -> GetLifecyclePolicyPreview -> Bool
$c== :: GetLifecyclePolicyPreview -> GetLifecyclePolicyPreview -> Bool
Prelude.Eq, ReadPrec [GetLifecyclePolicyPreview]
ReadPrec GetLifecyclePolicyPreview
Int -> ReadS GetLifecyclePolicyPreview
ReadS [GetLifecyclePolicyPreview]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLifecyclePolicyPreview]
$creadListPrec :: ReadPrec [GetLifecyclePolicyPreview]
readPrec :: ReadPrec GetLifecyclePolicyPreview
$creadPrec :: ReadPrec GetLifecyclePolicyPreview
readList :: ReadS [GetLifecyclePolicyPreview]
$creadList :: ReadS [GetLifecyclePolicyPreview]
readsPrec :: Int -> ReadS GetLifecyclePolicyPreview
$creadsPrec :: Int -> ReadS GetLifecyclePolicyPreview
Prelude.Read, Int -> GetLifecyclePolicyPreview -> ShowS
[GetLifecyclePolicyPreview] -> ShowS
GetLifecyclePolicyPreview -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLifecyclePolicyPreview] -> ShowS
$cshowList :: [GetLifecyclePolicyPreview] -> ShowS
show :: GetLifecyclePolicyPreview -> String
$cshow :: GetLifecyclePolicyPreview -> String
showsPrec :: Int -> GetLifecyclePolicyPreview -> ShowS
$cshowsPrec :: Int -> GetLifecyclePolicyPreview -> ShowS
Prelude.Show, forall x.
Rep GetLifecyclePolicyPreview x -> GetLifecyclePolicyPreview
forall x.
GetLifecyclePolicyPreview -> Rep GetLifecyclePolicyPreview x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLifecyclePolicyPreview x -> GetLifecyclePolicyPreview
$cfrom :: forall x.
GetLifecyclePolicyPreview -> Rep GetLifecyclePolicyPreview x
Prelude.Generic)

-- |
-- Create a value of 'GetLifecyclePolicyPreview' 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:
--
-- 'filter'', 'getLifecyclePolicyPreview_filter' - An optional parameter that filters results based on image tag status and
-- all tags, if tagged.
--
-- 'imageIds', 'getLifecyclePolicyPreview_imageIds' - The list of imageIDs to be included.
--
-- 'maxResults', 'getLifecyclePolicyPreview_maxResults' - The maximum number of repository results returned by
-- @GetLifecyclePolicyPreviewRequest@ in
 paginated output. When this
-- parameter is used, @GetLifecyclePolicyPreviewRequest@ only returns

-- @maxResults@ results in a single page along with a @nextToken@
 response
-- element. The remaining results of the initial request can be seen by
-- sending
 another @GetLifecyclePolicyPreviewRequest@ request with the
-- returned @nextToken@
 value. This value can be between 1 and 1000. If
-- this
 parameter is not used, then @GetLifecyclePolicyPreviewRequest@
-- returns up to
 100 results and a @nextToken@ value, if
 applicable. This
-- option cannot be used when you specify images with @imageIds@.
--
-- 'nextToken', 'getLifecyclePolicyPreview_nextToken' - The @nextToken@ value returned from a previous paginated

-- @GetLifecyclePolicyPreviewRequest@ request where @maxResults@ was used
-- and the
 results exceeded the value of that parameter. Pagination
-- continues from the end of the
 previous results that returned the
-- @nextToken@ value. This value is
 @null@ when there are no more results
-- to return. This option cannot be used when you specify images with
-- @imageIds@.
--
-- 'registryId', 'getLifecyclePolicyPreview_registryId' - The Amazon Web Services account ID associated with the registry that
-- contains the repository. If you do not specify a registry, the default
-- registry is assumed.
--
-- 'repositoryName', 'getLifecyclePolicyPreview_repositoryName' - The name of the repository.
newGetLifecyclePolicyPreview ::
  -- | 'repositoryName'
  Prelude.Text ->
  GetLifecyclePolicyPreview
newGetLifecyclePolicyPreview :: Text -> GetLifecyclePolicyPreview
newGetLifecyclePolicyPreview Text
pRepositoryName_ =
  GetLifecyclePolicyPreview'
    { $sel:filter':GetLifecyclePolicyPreview' :: Maybe LifecyclePolicyPreviewFilter
filter' =
        forall a. Maybe a
Prelude.Nothing,
      $sel:imageIds:GetLifecyclePolicyPreview' :: Maybe [ImageIdentifier]
imageIds = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:GetLifecyclePolicyPreview' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetLifecyclePolicyPreview' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:registryId:GetLifecyclePolicyPreview' :: Maybe Text
registryId = forall a. Maybe a
Prelude.Nothing,
      $sel:repositoryName:GetLifecyclePolicyPreview' :: Text
repositoryName = Text
pRepositoryName_
    }

-- | An optional parameter that filters results based on image tag status and
-- all tags, if tagged.
getLifecyclePolicyPreview_filter :: Lens.Lens' GetLifecyclePolicyPreview (Prelude.Maybe LifecyclePolicyPreviewFilter)
getLifecyclePolicyPreview_filter :: Lens'
  GetLifecyclePolicyPreview (Maybe LifecyclePolicyPreviewFilter)
getLifecyclePolicyPreview_filter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Maybe LifecyclePolicyPreviewFilter
filter' :: Maybe LifecyclePolicyPreviewFilter
$sel:filter':GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe LifecyclePolicyPreviewFilter
filter'} -> Maybe LifecyclePolicyPreviewFilter
filter') (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Maybe LifecyclePolicyPreviewFilter
a -> GetLifecyclePolicyPreview
s {$sel:filter':GetLifecyclePolicyPreview' :: Maybe LifecyclePolicyPreviewFilter
filter' = Maybe LifecyclePolicyPreviewFilter
a} :: GetLifecyclePolicyPreview)

-- | The list of imageIDs to be included.
getLifecyclePolicyPreview_imageIds :: Lens.Lens' GetLifecyclePolicyPreview (Prelude.Maybe [ImageIdentifier])
getLifecyclePolicyPreview_imageIds :: Lens' GetLifecyclePolicyPreview (Maybe [ImageIdentifier])
getLifecyclePolicyPreview_imageIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Maybe [ImageIdentifier]
imageIds :: Maybe [ImageIdentifier]
$sel:imageIds:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe [ImageIdentifier]
imageIds} -> Maybe [ImageIdentifier]
imageIds) (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Maybe [ImageIdentifier]
a -> GetLifecyclePolicyPreview
s {$sel:imageIds:GetLifecyclePolicyPreview' :: Maybe [ImageIdentifier]
imageIds = Maybe [ImageIdentifier]
a} :: GetLifecyclePolicyPreview) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The maximum number of repository results returned by
-- @GetLifecyclePolicyPreviewRequest@ in
 paginated output. When this
-- parameter is used, @GetLifecyclePolicyPreviewRequest@ only returns

-- @maxResults@ results in a single page along with a @nextToken@
 response
-- element. The remaining results of the initial request can be seen by
-- sending
 another @GetLifecyclePolicyPreviewRequest@ request with the
-- returned @nextToken@
 value. This value can be between 1 and 1000. If
-- this
 parameter is not used, then @GetLifecyclePolicyPreviewRequest@
-- returns up to
 100 results and a @nextToken@ value, if
 applicable. This
-- option cannot be used when you specify images with @imageIds@.
getLifecyclePolicyPreview_maxResults :: Lens.Lens' GetLifecyclePolicyPreview (Prelude.Maybe Prelude.Natural)
getLifecyclePolicyPreview_maxResults :: Lens' GetLifecyclePolicyPreview (Maybe Natural)
getLifecyclePolicyPreview_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Maybe Natural
a -> GetLifecyclePolicyPreview
s {$sel:maxResults:GetLifecyclePolicyPreview' :: Maybe Natural
maxResults = Maybe Natural
a} :: GetLifecyclePolicyPreview)

-- | The @nextToken@ value returned from a previous paginated

-- @GetLifecyclePolicyPreviewRequest@ request where @maxResults@ was used
-- and the
 results exceeded the value of that parameter. Pagination
-- continues from the end of the
 previous results that returned the
-- @nextToken@ value. This value is
 @null@ when there are no more results
-- to return. This option cannot be used when you specify images with
-- @imageIds@.
getLifecyclePolicyPreview_nextToken :: Lens.Lens' GetLifecyclePolicyPreview (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreview_nextToken :: Lens' GetLifecyclePolicyPreview (Maybe Text)
getLifecyclePolicyPreview_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Maybe Text
a -> GetLifecyclePolicyPreview
s {$sel:nextToken:GetLifecyclePolicyPreview' :: Maybe Text
nextToken = Maybe Text
a} :: GetLifecyclePolicyPreview)

-- | The Amazon Web Services account ID associated with the registry that
-- contains the repository. If you do not specify a registry, the default
-- registry is assumed.
getLifecyclePolicyPreview_registryId :: Lens.Lens' GetLifecyclePolicyPreview (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreview_registryId :: Lens' GetLifecyclePolicyPreview (Maybe Text)
getLifecyclePolicyPreview_registryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Maybe Text
registryId :: Maybe Text
$sel:registryId:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
registryId} -> Maybe Text
registryId) (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Maybe Text
a -> GetLifecyclePolicyPreview
s {$sel:registryId:GetLifecyclePolicyPreview' :: Maybe Text
registryId = Maybe Text
a} :: GetLifecyclePolicyPreview)

-- | The name of the repository.
getLifecyclePolicyPreview_repositoryName :: Lens.Lens' GetLifecyclePolicyPreview Prelude.Text
getLifecyclePolicyPreview_repositoryName :: Lens' GetLifecyclePolicyPreview Text
getLifecyclePolicyPreview_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreview' {Text
repositoryName :: Text
$sel:repositoryName:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Text
repositoryName} -> Text
repositoryName) (\s :: GetLifecyclePolicyPreview
s@GetLifecyclePolicyPreview' {} Text
a -> GetLifecyclePolicyPreview
s {$sel:repositoryName:GetLifecyclePolicyPreview' :: Text
repositoryName = Text
a} :: GetLifecyclePolicyPreview)

instance Core.AWSPager GetLifecyclePolicyPreview where
  page :: GetLifecyclePolicyPreview
-> AWSResponse GetLifecyclePolicyPreview
-> Maybe GetLifecyclePolicyPreview
page GetLifecyclePolicyPreview
rq AWSResponse GetLifecyclePolicyPreview
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetLifecyclePolicyPreview
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetLifecyclePolicyPreview
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  GetLifecyclePolicyPreviewResponse
  (Maybe [LifecyclePolicyPreviewResult])
getLifecyclePolicyPreviewResponse_previewResults
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ GetLifecyclePolicyPreview
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetLifecyclePolicyPreview (Maybe Text)
getLifecyclePolicyPreview_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetLifecyclePolicyPreview
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest GetLifecyclePolicyPreview where
  type
    AWSResponse GetLifecyclePolicyPreview =
      GetLifecyclePolicyPreviewResponse
  request :: (Service -> Service)
-> GetLifecyclePolicyPreview -> Request GetLifecyclePolicyPreview
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetLifecyclePolicyPreview
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetLifecyclePolicyPreview)))
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 [LifecyclePolicyPreviewResult]
-> Maybe Text
-> Maybe Text
-> Maybe LifecyclePolicyPreviewStatus
-> Maybe LifecyclePolicyPreviewSummary
-> Int
-> GetLifecyclePolicyPreviewResponse
GetLifecyclePolicyPreviewResponse'
            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
"lifecyclePolicyText")
            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
"previewResults" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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
"registryId")
            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
"repositoryName")
            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
"status")
            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
"summary")
            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 GetLifecyclePolicyPreview where
  hashWithSalt :: Int -> GetLifecyclePolicyPreview -> Int
hashWithSalt Int
_salt GetLifecyclePolicyPreview' {Maybe Natural
Maybe [ImageIdentifier]
Maybe Text
Maybe LifecyclePolicyPreviewFilter
Text
repositoryName :: Text
registryId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
imageIds :: Maybe [ImageIdentifier]
filter' :: Maybe LifecyclePolicyPreviewFilter
$sel:repositoryName:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Text
$sel:registryId:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:nextToken:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:maxResults:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Natural
$sel:imageIds:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe [ImageIdentifier]
$sel:filter':GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe LifecyclePolicyPreviewFilter
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LifecyclePolicyPreviewFilter
filter'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ImageIdentifier]
imageIds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
registryId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
repositoryName

instance Prelude.NFData GetLifecyclePolicyPreview where
  rnf :: GetLifecyclePolicyPreview -> ()
rnf GetLifecyclePolicyPreview' {Maybe Natural
Maybe [ImageIdentifier]
Maybe Text
Maybe LifecyclePolicyPreviewFilter
Text
repositoryName :: Text
registryId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
imageIds :: Maybe [ImageIdentifier]
filter' :: Maybe LifecyclePolicyPreviewFilter
$sel:repositoryName:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Text
$sel:registryId:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:nextToken:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:maxResults:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Natural
$sel:imageIds:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe [ImageIdentifier]
$sel:filter':GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe LifecyclePolicyPreviewFilter
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe LifecyclePolicyPreviewFilter
filter'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ImageIdentifier]
imageIds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      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
registryId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
repositoryName

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

instance Data.ToJSON GetLifecyclePolicyPreview where
  toJSON :: GetLifecyclePolicyPreview -> Value
toJSON GetLifecyclePolicyPreview' {Maybe Natural
Maybe [ImageIdentifier]
Maybe Text
Maybe LifecyclePolicyPreviewFilter
Text
repositoryName :: Text
registryId :: Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
imageIds :: Maybe [ImageIdentifier]
filter' :: Maybe LifecyclePolicyPreviewFilter
$sel:repositoryName:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Text
$sel:registryId:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:nextToken:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Text
$sel:maxResults:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe Natural
$sel:imageIds:GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe [ImageIdentifier]
$sel:filter':GetLifecyclePolicyPreview' :: GetLifecyclePolicyPreview -> Maybe LifecyclePolicyPreviewFilter
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"filter" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LifecyclePolicyPreviewFilter
filter',
            (Key
"imageIds" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ImageIdentifier]
imageIds,
            (Key
"maxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            (Key
"registryId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
registryId,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"repositoryName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
repositoryName)
          ]
      )

instance Data.ToPath GetLifecyclePolicyPreview where
  toPath :: GetLifecyclePolicyPreview -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newGetLifecyclePolicyPreviewResponse' smart constructor.
data GetLifecyclePolicyPreviewResponse = GetLifecyclePolicyPreviewResponse'
  { -- | The JSON lifecycle policy text.
    GetLifecyclePolicyPreviewResponse -> Maybe Text
lifecyclePolicyText :: Prelude.Maybe Prelude.Text,
    -- | The @nextToken@ value to include in a future @GetLifecyclePolicyPreview@
    -- request. When the results of a @GetLifecyclePolicyPreview@ request
    -- exceed @maxResults@, this value can be used to retrieve the next page of
    -- results. This value is @null@ when there are no more results to return.
    GetLifecyclePolicyPreviewResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The results of the lifecycle policy preview request.
    GetLifecyclePolicyPreviewResponse
-> Maybe [LifecyclePolicyPreviewResult]
previewResults :: Prelude.Maybe [LifecyclePolicyPreviewResult],
    -- | The registry ID associated with the request.
    GetLifecyclePolicyPreviewResponse -> Maybe Text
registryId :: Prelude.Maybe Prelude.Text,
    -- | The repository name associated with the request.
    GetLifecyclePolicyPreviewResponse -> Maybe Text
repositoryName :: Prelude.Maybe Prelude.Text,
    -- | The status of the lifecycle policy preview request.
    GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewStatus
status :: Prelude.Maybe LifecyclePolicyPreviewStatus,
    -- | The list of images that is returned as a result of the action.
    GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewSummary
summary :: Prelude.Maybe LifecyclePolicyPreviewSummary,
    -- | The response's http status code.
    GetLifecyclePolicyPreviewResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetLifecyclePolicyPreviewResponse
-> GetLifecyclePolicyPreviewResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetLifecyclePolicyPreviewResponse
-> GetLifecyclePolicyPreviewResponse -> Bool
$c/= :: GetLifecyclePolicyPreviewResponse
-> GetLifecyclePolicyPreviewResponse -> Bool
== :: GetLifecyclePolicyPreviewResponse
-> GetLifecyclePolicyPreviewResponse -> Bool
$c== :: GetLifecyclePolicyPreviewResponse
-> GetLifecyclePolicyPreviewResponse -> Bool
Prelude.Eq, ReadPrec [GetLifecyclePolicyPreviewResponse]
ReadPrec GetLifecyclePolicyPreviewResponse
Int -> ReadS GetLifecyclePolicyPreviewResponse
ReadS [GetLifecyclePolicyPreviewResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetLifecyclePolicyPreviewResponse]
$creadListPrec :: ReadPrec [GetLifecyclePolicyPreviewResponse]
readPrec :: ReadPrec GetLifecyclePolicyPreviewResponse
$creadPrec :: ReadPrec GetLifecyclePolicyPreviewResponse
readList :: ReadS [GetLifecyclePolicyPreviewResponse]
$creadList :: ReadS [GetLifecyclePolicyPreviewResponse]
readsPrec :: Int -> ReadS GetLifecyclePolicyPreviewResponse
$creadsPrec :: Int -> ReadS GetLifecyclePolicyPreviewResponse
Prelude.Read, Int -> GetLifecyclePolicyPreviewResponse -> ShowS
[GetLifecyclePolicyPreviewResponse] -> ShowS
GetLifecyclePolicyPreviewResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetLifecyclePolicyPreviewResponse] -> ShowS
$cshowList :: [GetLifecyclePolicyPreviewResponse] -> ShowS
show :: GetLifecyclePolicyPreviewResponse -> String
$cshow :: GetLifecyclePolicyPreviewResponse -> String
showsPrec :: Int -> GetLifecyclePolicyPreviewResponse -> ShowS
$cshowsPrec :: Int -> GetLifecyclePolicyPreviewResponse -> ShowS
Prelude.Show, forall x.
Rep GetLifecyclePolicyPreviewResponse x
-> GetLifecyclePolicyPreviewResponse
forall x.
GetLifecyclePolicyPreviewResponse
-> Rep GetLifecyclePolicyPreviewResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetLifecyclePolicyPreviewResponse x
-> GetLifecyclePolicyPreviewResponse
$cfrom :: forall x.
GetLifecyclePolicyPreviewResponse
-> Rep GetLifecyclePolicyPreviewResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetLifecyclePolicyPreviewResponse' 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:
--
-- 'lifecyclePolicyText', 'getLifecyclePolicyPreviewResponse_lifecyclePolicyText' - The JSON lifecycle policy text.
--
-- 'nextToken', 'getLifecyclePolicyPreviewResponse_nextToken' - The @nextToken@ value to include in a future @GetLifecyclePolicyPreview@
-- request. When the results of a @GetLifecyclePolicyPreview@ request
-- exceed @maxResults@, this value can be used to retrieve the next page of
-- results. This value is @null@ when there are no more results to return.
--
-- 'previewResults', 'getLifecyclePolicyPreviewResponse_previewResults' - The results of the lifecycle policy preview request.
--
-- 'registryId', 'getLifecyclePolicyPreviewResponse_registryId' - The registry ID associated with the request.
--
-- 'repositoryName', 'getLifecyclePolicyPreviewResponse_repositoryName' - The repository name associated with the request.
--
-- 'status', 'getLifecyclePolicyPreviewResponse_status' - The status of the lifecycle policy preview request.
--
-- 'summary', 'getLifecyclePolicyPreviewResponse_summary' - The list of images that is returned as a result of the action.
--
-- 'httpStatus', 'getLifecyclePolicyPreviewResponse_httpStatus' - The response's http status code.
newGetLifecyclePolicyPreviewResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetLifecyclePolicyPreviewResponse
newGetLifecyclePolicyPreviewResponse :: Int -> GetLifecyclePolicyPreviewResponse
newGetLifecyclePolicyPreviewResponse Int
pHttpStatus_ =
  GetLifecyclePolicyPreviewResponse'
    { $sel:lifecyclePolicyText:GetLifecyclePolicyPreviewResponse' :: Maybe Text
lifecyclePolicyText =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetLifecyclePolicyPreviewResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:previewResults:GetLifecyclePolicyPreviewResponse' :: Maybe [LifecyclePolicyPreviewResult]
previewResults = forall a. Maybe a
Prelude.Nothing,
      $sel:registryId:GetLifecyclePolicyPreviewResponse' :: Maybe Text
registryId = forall a. Maybe a
Prelude.Nothing,
      $sel:repositoryName:GetLifecyclePolicyPreviewResponse' :: Maybe Text
repositoryName = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetLifecyclePolicyPreviewResponse' :: Maybe LifecyclePolicyPreviewStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:summary:GetLifecyclePolicyPreviewResponse' :: Maybe LifecyclePolicyPreviewSummary
summary = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetLifecyclePolicyPreviewResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The JSON lifecycle policy text.
getLifecyclePolicyPreviewResponse_lifecyclePolicyText :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreviewResponse_lifecyclePolicyText :: Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_lifecyclePolicyText = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe Text
lifecyclePolicyText :: Maybe Text
$sel:lifecyclePolicyText:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
lifecyclePolicyText} -> Maybe Text
lifecyclePolicyText) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe Text
a -> GetLifecyclePolicyPreviewResponse
s {$sel:lifecyclePolicyText:GetLifecyclePolicyPreviewResponse' :: Maybe Text
lifecyclePolicyText = Maybe Text
a} :: GetLifecyclePolicyPreviewResponse)

-- | The @nextToken@ value to include in a future @GetLifecyclePolicyPreview@
-- request. When the results of a @GetLifecyclePolicyPreview@ request
-- exceed @maxResults@, this value can be used to retrieve the next page of
-- results. This value is @null@ when there are no more results to return.
getLifecyclePolicyPreviewResponse_nextToken :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreviewResponse_nextToken :: Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe Text
a -> GetLifecyclePolicyPreviewResponse
s {$sel:nextToken:GetLifecyclePolicyPreviewResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetLifecyclePolicyPreviewResponse)

-- | The results of the lifecycle policy preview request.
getLifecyclePolicyPreviewResponse_previewResults :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe [LifecyclePolicyPreviewResult])
getLifecyclePolicyPreviewResponse_previewResults :: Lens'
  GetLifecyclePolicyPreviewResponse
  (Maybe [LifecyclePolicyPreviewResult])
getLifecyclePolicyPreviewResponse_previewResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe [LifecyclePolicyPreviewResult]
previewResults :: Maybe [LifecyclePolicyPreviewResult]
$sel:previewResults:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe [LifecyclePolicyPreviewResult]
previewResults} -> Maybe [LifecyclePolicyPreviewResult]
previewResults) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe [LifecyclePolicyPreviewResult]
a -> GetLifecyclePolicyPreviewResponse
s {$sel:previewResults:GetLifecyclePolicyPreviewResponse' :: Maybe [LifecyclePolicyPreviewResult]
previewResults = Maybe [LifecyclePolicyPreviewResult]
a} :: GetLifecyclePolicyPreviewResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The registry ID associated with the request.
getLifecyclePolicyPreviewResponse_registryId :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreviewResponse_registryId :: Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_registryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe Text
registryId :: Maybe Text
$sel:registryId:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
registryId} -> Maybe Text
registryId) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe Text
a -> GetLifecyclePolicyPreviewResponse
s {$sel:registryId:GetLifecyclePolicyPreviewResponse' :: Maybe Text
registryId = Maybe Text
a} :: GetLifecyclePolicyPreviewResponse)

-- | The repository name associated with the request.
getLifecyclePolicyPreviewResponse_repositoryName :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe Prelude.Text)
getLifecyclePolicyPreviewResponse_repositoryName :: Lens' GetLifecyclePolicyPreviewResponse (Maybe Text)
getLifecyclePolicyPreviewResponse_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe Text
repositoryName :: Maybe Text
$sel:repositoryName:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
repositoryName} -> Maybe Text
repositoryName) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe Text
a -> GetLifecyclePolicyPreviewResponse
s {$sel:repositoryName:GetLifecyclePolicyPreviewResponse' :: Maybe Text
repositoryName = Maybe Text
a} :: GetLifecyclePolicyPreviewResponse)

-- | The status of the lifecycle policy preview request.
getLifecyclePolicyPreviewResponse_status :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe LifecyclePolicyPreviewStatus)
getLifecyclePolicyPreviewResponse_status :: Lens'
  GetLifecyclePolicyPreviewResponse
  (Maybe LifecyclePolicyPreviewStatus)
getLifecyclePolicyPreviewResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe LifecyclePolicyPreviewStatus
status :: Maybe LifecyclePolicyPreviewStatus
$sel:status:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewStatus
status} -> Maybe LifecyclePolicyPreviewStatus
status) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe LifecyclePolicyPreviewStatus
a -> GetLifecyclePolicyPreviewResponse
s {$sel:status:GetLifecyclePolicyPreviewResponse' :: Maybe LifecyclePolicyPreviewStatus
status = Maybe LifecyclePolicyPreviewStatus
a} :: GetLifecyclePolicyPreviewResponse)

-- | The list of images that is returned as a result of the action.
getLifecyclePolicyPreviewResponse_summary :: Lens.Lens' GetLifecyclePolicyPreviewResponse (Prelude.Maybe LifecyclePolicyPreviewSummary)
getLifecyclePolicyPreviewResponse_summary :: Lens'
  GetLifecyclePolicyPreviewResponse
  (Maybe LifecyclePolicyPreviewSummary)
getLifecyclePolicyPreviewResponse_summary = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetLifecyclePolicyPreviewResponse' {Maybe LifecyclePolicyPreviewSummary
summary :: Maybe LifecyclePolicyPreviewSummary
$sel:summary:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewSummary
summary} -> Maybe LifecyclePolicyPreviewSummary
summary) (\s :: GetLifecyclePolicyPreviewResponse
s@GetLifecyclePolicyPreviewResponse' {} Maybe LifecyclePolicyPreviewSummary
a -> GetLifecyclePolicyPreviewResponse
s {$sel:summary:GetLifecyclePolicyPreviewResponse' :: Maybe LifecyclePolicyPreviewSummary
summary = Maybe LifecyclePolicyPreviewSummary
a} :: GetLifecyclePolicyPreviewResponse)

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

instance
  Prelude.NFData
    GetLifecyclePolicyPreviewResponse
  where
  rnf :: GetLifecyclePolicyPreviewResponse -> ()
rnf GetLifecyclePolicyPreviewResponse' {Int
Maybe [LifecyclePolicyPreviewResult]
Maybe Text
Maybe LifecyclePolicyPreviewStatus
Maybe LifecyclePolicyPreviewSummary
httpStatus :: Int
summary :: Maybe LifecyclePolicyPreviewSummary
status :: Maybe LifecyclePolicyPreviewStatus
repositoryName :: Maybe Text
registryId :: Maybe Text
previewResults :: Maybe [LifecyclePolicyPreviewResult]
nextToken :: Maybe Text
lifecyclePolicyText :: Maybe Text
$sel:httpStatus:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Int
$sel:summary:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewSummary
$sel:status:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe LifecyclePolicyPreviewStatus
$sel:repositoryName:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
$sel:registryId:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
$sel:previewResults:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse
-> Maybe [LifecyclePolicyPreviewResult]
$sel:nextToken:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
$sel:lifecyclePolicyText:GetLifecyclePolicyPreviewResponse' :: GetLifecyclePolicyPreviewResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lifecyclePolicyText
      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 [LifecyclePolicyPreviewResult]
previewResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registryId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
repositoryName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifecyclePolicyPreviewStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LifecyclePolicyPreviewSummary
summary
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus