{-# 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.SecretsManager.ListSecretVersionIds
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the versions of a secret. Secrets Manager uses staging labels to
-- indicate the different versions of a secret. For more information, see
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version Secrets Manager concepts: Versions>.
--
-- To list the secrets in the account, use ListSecrets.
--
-- Secrets Manager generates a CloudTrail log entry when you call this
-- action. Do not include sensitive information in request parameters
-- because it might be logged. For more information, see
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html Logging Secrets Manager events with CloudTrail>.
--
-- __Required permissions:__ @secretsmanager:ListSecretVersionIds@. For
-- more information, see
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions IAM policy actions for Secrets Manager>
-- and
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html Authentication and access control in Secrets Manager>.
--
-- This operation returns paginated results.
module Amazonka.SecretsManager.ListSecretVersionIds
  ( -- * Creating a Request
    ListSecretVersionIds (..),
    newListSecretVersionIds,

    -- * Request Lenses
    listSecretVersionIds_includeDeprecated,
    listSecretVersionIds_maxResults,
    listSecretVersionIds_nextToken,
    listSecretVersionIds_secretId,

    -- * Destructuring the Response
    ListSecretVersionIdsResponse (..),
    newListSecretVersionIdsResponse,

    -- * Response Lenses
    listSecretVersionIdsResponse_arn,
    listSecretVersionIdsResponse_name,
    listSecretVersionIdsResponse_nextToken,
    listSecretVersionIdsResponse_versions,
    listSecretVersionIdsResponse_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.SecretsManager.Types

-- | /See:/ 'newListSecretVersionIds' smart constructor.
data ListSecretVersionIds = ListSecretVersionIds'
  { -- | Specifies whether to include versions of secrets that don\'t have any
    -- staging labels attached to them. Versions without staging labels are
    -- considered deprecated and are subject to deletion by Secrets Manager.
    ListSecretVersionIds -> Maybe Bool
includeDeprecated :: Prelude.Maybe Prelude.Bool,
    -- | The number of results to include in the response.
    --
    -- If there are more results available, in the response, Secrets Manager
    -- includes @NextToken@. To get the next results, call
    -- @ListSecretVersionIds@ again with the value from @NextToken@.
    ListSecretVersionIds -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A token that indicates where the output should continue from, if a
    -- previous call did not show all results. To get the next results, call
    -- @ListSecretVersionIds@ again with this value.
    ListSecretVersionIds -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The ARN or name of the secret whose versions you want to list.
    --
    -- For an ARN, we recommend that you specify a complete ARN rather than a
    -- partial ARN. See
    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen Finding a secret from a partial ARN>.
    ListSecretVersionIds -> Text
secretId :: Prelude.Text
  }
  deriving (ListSecretVersionIds -> ListSecretVersionIds -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSecretVersionIds -> ListSecretVersionIds -> Bool
$c/= :: ListSecretVersionIds -> ListSecretVersionIds -> Bool
== :: ListSecretVersionIds -> ListSecretVersionIds -> Bool
$c== :: ListSecretVersionIds -> ListSecretVersionIds -> Bool
Prelude.Eq, ReadPrec [ListSecretVersionIds]
ReadPrec ListSecretVersionIds
Int -> ReadS ListSecretVersionIds
ReadS [ListSecretVersionIds]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSecretVersionIds]
$creadListPrec :: ReadPrec [ListSecretVersionIds]
readPrec :: ReadPrec ListSecretVersionIds
$creadPrec :: ReadPrec ListSecretVersionIds
readList :: ReadS [ListSecretVersionIds]
$creadList :: ReadS [ListSecretVersionIds]
readsPrec :: Int -> ReadS ListSecretVersionIds
$creadsPrec :: Int -> ReadS ListSecretVersionIds
Prelude.Read, Int -> ListSecretVersionIds -> ShowS
[ListSecretVersionIds] -> ShowS
ListSecretVersionIds -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSecretVersionIds] -> ShowS
$cshowList :: [ListSecretVersionIds] -> ShowS
show :: ListSecretVersionIds -> String
$cshow :: ListSecretVersionIds -> String
showsPrec :: Int -> ListSecretVersionIds -> ShowS
$cshowsPrec :: Int -> ListSecretVersionIds -> ShowS
Prelude.Show, forall x. Rep ListSecretVersionIds x -> ListSecretVersionIds
forall x. ListSecretVersionIds -> Rep ListSecretVersionIds x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListSecretVersionIds x -> ListSecretVersionIds
$cfrom :: forall x. ListSecretVersionIds -> Rep ListSecretVersionIds x
Prelude.Generic)

-- |
-- Create a value of 'ListSecretVersionIds' 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:
--
-- 'includeDeprecated', 'listSecretVersionIds_includeDeprecated' - Specifies whether to include versions of secrets that don\'t have any
-- staging labels attached to them. Versions without staging labels are
-- considered deprecated and are subject to deletion by Secrets Manager.
--
-- 'maxResults', 'listSecretVersionIds_maxResults' - The number of results to include in the response.
--
-- If there are more results available, in the response, Secrets Manager
-- includes @NextToken@. To get the next results, call
-- @ListSecretVersionIds@ again with the value from @NextToken@.
--
-- 'nextToken', 'listSecretVersionIds_nextToken' - A token that indicates where the output should continue from, if a
-- previous call did not show all results. To get the next results, call
-- @ListSecretVersionIds@ again with this value.
--
-- 'secretId', 'listSecretVersionIds_secretId' - The ARN or name of the secret whose versions you want to list.
--
-- For an ARN, we recommend that you specify a complete ARN rather than a
-- partial ARN. See
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen Finding a secret from a partial ARN>.
newListSecretVersionIds ::
  -- | 'secretId'
  Prelude.Text ->
  ListSecretVersionIds
newListSecretVersionIds :: Text -> ListSecretVersionIds
newListSecretVersionIds Text
pSecretId_ =
  ListSecretVersionIds'
    { $sel:includeDeprecated:ListSecretVersionIds' :: Maybe Bool
includeDeprecated =
        forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListSecretVersionIds' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListSecretVersionIds' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:secretId:ListSecretVersionIds' :: Text
secretId = Text
pSecretId_
    }

-- | Specifies whether to include versions of secrets that don\'t have any
-- staging labels attached to them. Versions without staging labels are
-- considered deprecated and are subject to deletion by Secrets Manager.
listSecretVersionIds_includeDeprecated :: Lens.Lens' ListSecretVersionIds (Prelude.Maybe Prelude.Bool)
listSecretVersionIds_includeDeprecated :: Lens' ListSecretVersionIds (Maybe Bool)
listSecretVersionIds_includeDeprecated = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIds' {Maybe Bool
includeDeprecated :: Maybe Bool
$sel:includeDeprecated:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Bool
includeDeprecated} -> Maybe Bool
includeDeprecated) (\s :: ListSecretVersionIds
s@ListSecretVersionIds' {} Maybe Bool
a -> ListSecretVersionIds
s {$sel:includeDeprecated:ListSecretVersionIds' :: Maybe Bool
includeDeprecated = Maybe Bool
a} :: ListSecretVersionIds)

-- | The number of results to include in the response.
--
-- If there are more results available, in the response, Secrets Manager
-- includes @NextToken@. To get the next results, call
-- @ListSecretVersionIds@ again with the value from @NextToken@.
listSecretVersionIds_maxResults :: Lens.Lens' ListSecretVersionIds (Prelude.Maybe Prelude.Natural)
listSecretVersionIds_maxResults :: Lens' ListSecretVersionIds (Maybe Natural)
listSecretVersionIds_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIds' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListSecretVersionIds
s@ListSecretVersionIds' {} Maybe Natural
a -> ListSecretVersionIds
s {$sel:maxResults:ListSecretVersionIds' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListSecretVersionIds)

-- | A token that indicates where the output should continue from, if a
-- previous call did not show all results. To get the next results, call
-- @ListSecretVersionIds@ again with this value.
listSecretVersionIds_nextToken :: Lens.Lens' ListSecretVersionIds (Prelude.Maybe Prelude.Text)
listSecretVersionIds_nextToken :: Lens' ListSecretVersionIds (Maybe Text)
listSecretVersionIds_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIds' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListSecretVersionIds
s@ListSecretVersionIds' {} Maybe Text
a -> ListSecretVersionIds
s {$sel:nextToken:ListSecretVersionIds' :: Maybe Text
nextToken = Maybe Text
a} :: ListSecretVersionIds)

-- | The ARN or name of the secret whose versions you want to list.
--
-- For an ARN, we recommend that you specify a complete ARN rather than a
-- partial ARN. See
-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen Finding a secret from a partial ARN>.
listSecretVersionIds_secretId :: Lens.Lens' ListSecretVersionIds Prelude.Text
listSecretVersionIds_secretId :: Lens' ListSecretVersionIds Text
listSecretVersionIds_secretId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIds' {Text
secretId :: Text
$sel:secretId:ListSecretVersionIds' :: ListSecretVersionIds -> Text
secretId} -> Text
secretId) (\s :: ListSecretVersionIds
s@ListSecretVersionIds' {} Text
a -> ListSecretVersionIds
s {$sel:secretId:ListSecretVersionIds' :: Text
secretId = Text
a} :: ListSecretVersionIds)

instance Core.AWSPager ListSecretVersionIds where
  page :: ListSecretVersionIds
-> AWSResponse ListSecretVersionIds -> Maybe ListSecretVersionIds
page ListSecretVersionIds
rq AWSResponse ListSecretVersionIds
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListSecretVersionIds
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListSecretVersionIdsResponse (Maybe Text)
listSecretVersionIdsResponse_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 ListSecretVersionIds
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  ListSecretVersionIdsResponse (Maybe [SecretVersionsListEntry])
listSecretVersionIdsResponse_versions
            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.$ ListSecretVersionIds
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListSecretVersionIds (Maybe Text)
listSecretVersionIds_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListSecretVersionIds
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListSecretVersionIdsResponse (Maybe Text)
listSecretVersionIdsResponse_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 ListSecretVersionIds where
  type
    AWSResponse ListSecretVersionIds =
      ListSecretVersionIdsResponse
  request :: (Service -> Service)
-> ListSecretVersionIds -> Request ListSecretVersionIds
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 ListSecretVersionIds
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListSecretVersionIds)))
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 [SecretVersionsListEntry]
-> Int
-> ListSecretVersionIdsResponse
ListSecretVersionIdsResponse'
            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
"Name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (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
"Versions" 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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable ListSecretVersionIds where
  hashWithSalt :: Int -> ListSecretVersionIds -> Int
hashWithSalt Int
_salt ListSecretVersionIds' {Maybe Bool
Maybe Natural
Maybe Text
Text
secretId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
includeDeprecated :: Maybe Bool
$sel:secretId:ListSecretVersionIds' :: ListSecretVersionIds -> Text
$sel:nextToken:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Text
$sel:maxResults:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Natural
$sel:includeDeprecated:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
includeDeprecated
      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` Text
secretId

instance Prelude.NFData ListSecretVersionIds where
  rnf :: ListSecretVersionIds -> ()
rnf ListSecretVersionIds' {Maybe Bool
Maybe Natural
Maybe Text
Text
secretId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
includeDeprecated :: Maybe Bool
$sel:secretId:ListSecretVersionIds' :: ListSecretVersionIds -> Text
$sel:nextToken:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Text
$sel:maxResults:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Natural
$sel:includeDeprecated:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
includeDeprecated
      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 Text
secretId

instance Data.ToHeaders ListSecretVersionIds where
  toHeaders :: ListSecretVersionIds -> 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
"secretsmanager.ListSecretVersionIds" ::
                          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 ListSecretVersionIds where
  toJSON :: ListSecretVersionIds -> Value
toJSON ListSecretVersionIds' {Maybe Bool
Maybe Natural
Maybe Text
Text
secretId :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
includeDeprecated :: Maybe Bool
$sel:secretId:ListSecretVersionIds' :: ListSecretVersionIds -> Text
$sel:nextToken:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Text
$sel:maxResults:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Natural
$sel:includeDeprecated:ListSecretVersionIds' :: ListSecretVersionIds -> Maybe Bool
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"IncludeDeprecated" 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 Bool
includeDeprecated,
            (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,
            forall a. a -> Maybe a
Prelude.Just (Key
"SecretId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
secretId)
          ]
      )

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

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

-- | /See:/ 'newListSecretVersionIdsResponse' smart constructor.
data ListSecretVersionIdsResponse = ListSecretVersionIdsResponse'
  { -- | The ARN of the secret.
    ListSecretVersionIdsResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The name of the secret.
    ListSecretVersionIdsResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Secrets Manager includes this value if there\'s more output available
    -- than what is included in the current response. This can occur even when
    -- the response includes no values at all, such as when you ask for a
    -- filtered view of a long list. To get the next results, call
    -- @ListSecretVersionIds@ again with this value.
    ListSecretVersionIdsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of the versions of the secret.
    ListSecretVersionIdsResponse -> Maybe [SecretVersionsListEntry]
versions :: Prelude.Maybe [SecretVersionsListEntry],
    -- | The response's http status code.
    ListSecretVersionIdsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListSecretVersionIdsResponse
-> ListSecretVersionIdsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListSecretVersionIdsResponse
-> ListSecretVersionIdsResponse -> Bool
$c/= :: ListSecretVersionIdsResponse
-> ListSecretVersionIdsResponse -> Bool
== :: ListSecretVersionIdsResponse
-> ListSecretVersionIdsResponse -> Bool
$c== :: ListSecretVersionIdsResponse
-> ListSecretVersionIdsResponse -> Bool
Prelude.Eq, ReadPrec [ListSecretVersionIdsResponse]
ReadPrec ListSecretVersionIdsResponse
Int -> ReadS ListSecretVersionIdsResponse
ReadS [ListSecretVersionIdsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListSecretVersionIdsResponse]
$creadListPrec :: ReadPrec [ListSecretVersionIdsResponse]
readPrec :: ReadPrec ListSecretVersionIdsResponse
$creadPrec :: ReadPrec ListSecretVersionIdsResponse
readList :: ReadS [ListSecretVersionIdsResponse]
$creadList :: ReadS [ListSecretVersionIdsResponse]
readsPrec :: Int -> ReadS ListSecretVersionIdsResponse
$creadsPrec :: Int -> ReadS ListSecretVersionIdsResponse
Prelude.Read, Int -> ListSecretVersionIdsResponse -> ShowS
[ListSecretVersionIdsResponse] -> ShowS
ListSecretVersionIdsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListSecretVersionIdsResponse] -> ShowS
$cshowList :: [ListSecretVersionIdsResponse] -> ShowS
show :: ListSecretVersionIdsResponse -> String
$cshow :: ListSecretVersionIdsResponse -> String
showsPrec :: Int -> ListSecretVersionIdsResponse -> ShowS
$cshowsPrec :: Int -> ListSecretVersionIdsResponse -> ShowS
Prelude.Show, forall x.
Rep ListSecretVersionIdsResponse x -> ListSecretVersionIdsResponse
forall x.
ListSecretVersionIdsResponse -> Rep ListSecretVersionIdsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListSecretVersionIdsResponse x -> ListSecretVersionIdsResponse
$cfrom :: forall x.
ListSecretVersionIdsResponse -> Rep ListSecretVersionIdsResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListSecretVersionIdsResponse' 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', 'listSecretVersionIdsResponse_arn' - The ARN of the secret.
--
-- 'name', 'listSecretVersionIdsResponse_name' - The name of the secret.
--
-- 'nextToken', 'listSecretVersionIdsResponse_nextToken' - Secrets Manager includes this value if there\'s more output available
-- than what is included in the current response. This can occur even when
-- the response includes no values at all, such as when you ask for a
-- filtered view of a long list. To get the next results, call
-- @ListSecretVersionIds@ again with this value.
--
-- 'versions', 'listSecretVersionIdsResponse_versions' - A list of the versions of the secret.
--
-- 'httpStatus', 'listSecretVersionIdsResponse_httpStatus' - The response's http status code.
newListSecretVersionIdsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListSecretVersionIdsResponse
newListSecretVersionIdsResponse :: Int -> ListSecretVersionIdsResponse
newListSecretVersionIdsResponse Int
pHttpStatus_ =
  ListSecretVersionIdsResponse'
    { $sel:arn:ListSecretVersionIdsResponse' :: Maybe Text
arn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:name:ListSecretVersionIdsResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListSecretVersionIdsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:versions:ListSecretVersionIdsResponse' :: Maybe [SecretVersionsListEntry]
versions = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListSecretVersionIdsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ARN of the secret.
listSecretVersionIdsResponse_arn :: Lens.Lens' ListSecretVersionIdsResponse (Prelude.Maybe Prelude.Text)
listSecretVersionIdsResponse_arn :: Lens' ListSecretVersionIdsResponse (Maybe Text)
listSecretVersionIdsResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIdsResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ListSecretVersionIdsResponse
s@ListSecretVersionIdsResponse' {} Maybe Text
a -> ListSecretVersionIdsResponse
s {$sel:arn:ListSecretVersionIdsResponse' :: Maybe Text
arn = Maybe Text
a} :: ListSecretVersionIdsResponse)

-- | The name of the secret.
listSecretVersionIdsResponse_name :: Lens.Lens' ListSecretVersionIdsResponse (Prelude.Maybe Prelude.Text)
listSecretVersionIdsResponse_name :: Lens' ListSecretVersionIdsResponse (Maybe Text)
listSecretVersionIdsResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIdsResponse' {Maybe Text
name :: Maybe Text
$sel:name:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: ListSecretVersionIdsResponse
s@ListSecretVersionIdsResponse' {} Maybe Text
a -> ListSecretVersionIdsResponse
s {$sel:name:ListSecretVersionIdsResponse' :: Maybe Text
name = Maybe Text
a} :: ListSecretVersionIdsResponse)

-- | Secrets Manager includes this value if there\'s more output available
-- than what is included in the current response. This can occur even when
-- the response includes no values at all, such as when you ask for a
-- filtered view of a long list. To get the next results, call
-- @ListSecretVersionIds@ again with this value.
listSecretVersionIdsResponse_nextToken :: Lens.Lens' ListSecretVersionIdsResponse (Prelude.Maybe Prelude.Text)
listSecretVersionIdsResponse_nextToken :: Lens' ListSecretVersionIdsResponse (Maybe Text)
listSecretVersionIdsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIdsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListSecretVersionIdsResponse
s@ListSecretVersionIdsResponse' {} Maybe Text
a -> ListSecretVersionIdsResponse
s {$sel:nextToken:ListSecretVersionIdsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListSecretVersionIdsResponse)

-- | A list of the versions of the secret.
listSecretVersionIdsResponse_versions :: Lens.Lens' ListSecretVersionIdsResponse (Prelude.Maybe [SecretVersionsListEntry])
listSecretVersionIdsResponse_versions :: Lens'
  ListSecretVersionIdsResponse (Maybe [SecretVersionsListEntry])
listSecretVersionIdsResponse_versions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIdsResponse' {Maybe [SecretVersionsListEntry]
versions :: Maybe [SecretVersionsListEntry]
$sel:versions:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe [SecretVersionsListEntry]
versions} -> Maybe [SecretVersionsListEntry]
versions) (\s :: ListSecretVersionIdsResponse
s@ListSecretVersionIdsResponse' {} Maybe [SecretVersionsListEntry]
a -> ListSecretVersionIdsResponse
s {$sel:versions:ListSecretVersionIdsResponse' :: Maybe [SecretVersionsListEntry]
versions = Maybe [SecretVersionsListEntry]
a} :: ListSecretVersionIdsResponse) 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 response's http status code.
listSecretVersionIdsResponse_httpStatus :: Lens.Lens' ListSecretVersionIdsResponse Prelude.Int
listSecretVersionIdsResponse_httpStatus :: Lens' ListSecretVersionIdsResponse Int
listSecretVersionIdsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListSecretVersionIdsResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListSecretVersionIdsResponse
s@ListSecretVersionIdsResponse' {} Int
a -> ListSecretVersionIdsResponse
s {$sel:httpStatus:ListSecretVersionIdsResponse' :: Int
httpStatus = Int
a} :: ListSecretVersionIdsResponse)

instance Prelude.NFData ListSecretVersionIdsResponse where
  rnf :: ListSecretVersionIdsResponse -> ()
rnf ListSecretVersionIdsResponse' {Int
Maybe [SecretVersionsListEntry]
Maybe Text
httpStatus :: Int
versions :: Maybe [SecretVersionsListEntry]
nextToken :: Maybe Text
name :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Int
$sel:versions:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe [SecretVersionsListEntry]
$sel:nextToken:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe Text
$sel:name:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> Maybe Text
$sel:arn:ListSecretVersionIdsResponse' :: ListSecretVersionIdsResponse -> 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
name
      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 [SecretVersionsListEntry]
versions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus