{-# 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.CodeCommit.ListRepositoriesForApprovalRuleTemplate
-- 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 all repositories associated with the specified approval rule
-- template.
module Amazonka.CodeCommit.ListRepositoriesForApprovalRuleTemplate
  ( -- * Creating a Request
    ListRepositoriesForApprovalRuleTemplate (..),
    newListRepositoriesForApprovalRuleTemplate,

    -- * Request Lenses
    listRepositoriesForApprovalRuleTemplate_maxResults,
    listRepositoriesForApprovalRuleTemplate_nextToken,
    listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName,

    -- * Destructuring the Response
    ListRepositoriesForApprovalRuleTemplateResponse (..),
    newListRepositoriesForApprovalRuleTemplateResponse,

    -- * Response Lenses
    listRepositoriesForApprovalRuleTemplateResponse_nextToken,
    listRepositoriesForApprovalRuleTemplateResponse_repositoryNames,
    listRepositoriesForApprovalRuleTemplateResponse_httpStatus,
  )
where

import Amazonka.CodeCommit.Types
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

-- | /See:/ 'newListRepositoriesForApprovalRuleTemplate' smart constructor.
data ListRepositoriesForApprovalRuleTemplate = ListRepositoriesForApprovalRuleTemplate'
  { -- | A non-zero, non-negative integer used to limit the number of returned
    -- results.
    ListRepositoriesForApprovalRuleTemplate -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | An enumeration token that, when provided in a request, returns the next
    -- batch of the results.
    ListRepositoriesForApprovalRuleTemplate -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the approval rule template for which you want to list
    -- repositories that are associated with that template.
    ListRepositoriesForApprovalRuleTemplate -> Text
approvalRuleTemplateName :: Prelude.Text
  }
  deriving (ListRepositoriesForApprovalRuleTemplate
-> ListRepositoriesForApprovalRuleTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRepositoriesForApprovalRuleTemplate
-> ListRepositoriesForApprovalRuleTemplate -> Bool
$c/= :: ListRepositoriesForApprovalRuleTemplate
-> ListRepositoriesForApprovalRuleTemplate -> Bool
== :: ListRepositoriesForApprovalRuleTemplate
-> ListRepositoriesForApprovalRuleTemplate -> Bool
$c== :: ListRepositoriesForApprovalRuleTemplate
-> ListRepositoriesForApprovalRuleTemplate -> Bool
Prelude.Eq, ReadPrec [ListRepositoriesForApprovalRuleTemplate]
ReadPrec ListRepositoriesForApprovalRuleTemplate
Int -> ReadS ListRepositoriesForApprovalRuleTemplate
ReadS [ListRepositoriesForApprovalRuleTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRepositoriesForApprovalRuleTemplate]
$creadListPrec :: ReadPrec [ListRepositoriesForApprovalRuleTemplate]
readPrec :: ReadPrec ListRepositoriesForApprovalRuleTemplate
$creadPrec :: ReadPrec ListRepositoriesForApprovalRuleTemplate
readList :: ReadS [ListRepositoriesForApprovalRuleTemplate]
$creadList :: ReadS [ListRepositoriesForApprovalRuleTemplate]
readsPrec :: Int -> ReadS ListRepositoriesForApprovalRuleTemplate
$creadsPrec :: Int -> ReadS ListRepositoriesForApprovalRuleTemplate
Prelude.Read, Int -> ListRepositoriesForApprovalRuleTemplate -> ShowS
[ListRepositoriesForApprovalRuleTemplate] -> ShowS
ListRepositoriesForApprovalRuleTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRepositoriesForApprovalRuleTemplate] -> ShowS
$cshowList :: [ListRepositoriesForApprovalRuleTemplate] -> ShowS
show :: ListRepositoriesForApprovalRuleTemplate -> String
$cshow :: ListRepositoriesForApprovalRuleTemplate -> String
showsPrec :: Int -> ListRepositoriesForApprovalRuleTemplate -> ShowS
$cshowsPrec :: Int -> ListRepositoriesForApprovalRuleTemplate -> ShowS
Prelude.Show, forall x.
Rep ListRepositoriesForApprovalRuleTemplate x
-> ListRepositoriesForApprovalRuleTemplate
forall x.
ListRepositoriesForApprovalRuleTemplate
-> Rep ListRepositoriesForApprovalRuleTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListRepositoriesForApprovalRuleTemplate x
-> ListRepositoriesForApprovalRuleTemplate
$cfrom :: forall x.
ListRepositoriesForApprovalRuleTemplate
-> Rep ListRepositoriesForApprovalRuleTemplate x
Prelude.Generic)

-- |
-- Create a value of 'ListRepositoriesForApprovalRuleTemplate' 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:
--
-- 'maxResults', 'listRepositoriesForApprovalRuleTemplate_maxResults' - A non-zero, non-negative integer used to limit the number of returned
-- results.
--
-- 'nextToken', 'listRepositoriesForApprovalRuleTemplate_nextToken' - An enumeration token that, when provided in a request, returns the next
-- batch of the results.
--
-- 'approvalRuleTemplateName', 'listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName' - The name of the approval rule template for which you want to list
-- repositories that are associated with that template.
newListRepositoriesForApprovalRuleTemplate ::
  -- | 'approvalRuleTemplateName'
  Prelude.Text ->
  ListRepositoriesForApprovalRuleTemplate
newListRepositoriesForApprovalRuleTemplate :: Text -> ListRepositoriesForApprovalRuleTemplate
newListRepositoriesForApprovalRuleTemplate
  Text
pApprovalRuleTemplateName_ =
    ListRepositoriesForApprovalRuleTemplate'
      { $sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: Maybe Int
maxResults =
          forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: Text
approvalRuleTemplateName =
          Text
pApprovalRuleTemplateName_
      }

-- | A non-zero, non-negative integer used to limit the number of returned
-- results.
listRepositoriesForApprovalRuleTemplate_maxResults :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate (Prelude.Maybe Prelude.Int)
listRepositoriesForApprovalRuleTemplate_maxResults :: Lens' ListRepositoriesForApprovalRuleTemplate (Maybe Int)
listRepositoriesForApprovalRuleTemplate_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListRepositoriesForApprovalRuleTemplate
s@ListRepositoriesForApprovalRuleTemplate' {} Maybe Int
a -> ListRepositoriesForApprovalRuleTemplate
s {$sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: Maybe Int
maxResults = Maybe Int
a} :: ListRepositoriesForApprovalRuleTemplate)

-- | An enumeration token that, when provided in a request, returns the next
-- batch of the results.
listRepositoriesForApprovalRuleTemplate_nextToken :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate (Prelude.Maybe Prelude.Text)
listRepositoriesForApprovalRuleTemplate_nextToken :: Lens' ListRepositoriesForApprovalRuleTemplate (Maybe Text)
listRepositoriesForApprovalRuleTemplate_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListRepositoriesForApprovalRuleTemplate
s@ListRepositoriesForApprovalRuleTemplate' {} Maybe Text
a -> ListRepositoriesForApprovalRuleTemplate
s {$sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: Maybe Text
nextToken = Maybe Text
a} :: ListRepositoriesForApprovalRuleTemplate)

-- | The name of the approval rule template for which you want to list
-- repositories that are associated with that template.
listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName :: Lens.Lens' ListRepositoriesForApprovalRuleTemplate Prelude.Text
listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName :: Lens' ListRepositoriesForApprovalRuleTemplate Text
listRepositoriesForApprovalRuleTemplate_approvalRuleTemplateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplate' {Text
approvalRuleTemplateName :: Text
$sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Text
approvalRuleTemplateName} -> Text
approvalRuleTemplateName) (\s :: ListRepositoriesForApprovalRuleTemplate
s@ListRepositoriesForApprovalRuleTemplate' {} Text
a -> ListRepositoriesForApprovalRuleTemplate
s {$sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: Text
approvalRuleTemplateName = Text
a} :: ListRepositoriesForApprovalRuleTemplate)

instance
  Core.AWSRequest
    ListRepositoriesForApprovalRuleTemplate
  where
  type
    AWSResponse
      ListRepositoriesForApprovalRuleTemplate =
      ListRepositoriesForApprovalRuleTemplateResponse
  request :: (Service -> Service)
-> ListRepositoriesForApprovalRuleTemplate
-> Request ListRepositoriesForApprovalRuleTemplate
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 ListRepositoriesForApprovalRuleTemplate
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse ListRepositoriesForApprovalRuleTemplate)))
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]
-> Int
-> ListRepositoriesForApprovalRuleTemplateResponse
ListRepositoriesForApprovalRuleTemplateResponse'
            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
"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
"repositoryNames"
                            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
    ListRepositoriesForApprovalRuleTemplate
  where
  hashWithSalt :: Int -> ListRepositoriesForApprovalRuleTemplate -> Int
hashWithSalt
    Int
_salt
    ListRepositoriesForApprovalRuleTemplate' {Maybe Int
Maybe Text
Text
approvalRuleTemplateName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Text
$sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Text
$sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Int
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
approvalRuleTemplateName

instance
  Prelude.NFData
    ListRepositoriesForApprovalRuleTemplate
  where
  rnf :: ListRepositoriesForApprovalRuleTemplate -> ()
rnf ListRepositoriesForApprovalRuleTemplate' {Maybe Int
Maybe Text
Text
approvalRuleTemplateName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Text
$sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Text
$sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
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
approvalRuleTemplateName

instance
  Data.ToHeaders
    ListRepositoriesForApprovalRuleTemplate
  where
  toHeaders :: ListRepositoriesForApprovalRuleTemplate -> 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
"CodeCommit_20150413.ListRepositoriesForApprovalRuleTemplate" ::
                          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
    ListRepositoriesForApprovalRuleTemplate
  where
  toJSON :: ListRepositoriesForApprovalRuleTemplate -> Value
toJSON ListRepositoriesForApprovalRuleTemplate' {Maybe Int
Maybe Text
Text
approvalRuleTemplateName :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:approvalRuleTemplateName:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Text
$sel:nextToken:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Text
$sel:maxResults:ListRepositoriesForApprovalRuleTemplate' :: ListRepositoriesForApprovalRuleTemplate -> Maybe Int
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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 Int
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
"approvalRuleTemplateName"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
approvalRuleTemplateName
              )
          ]
      )

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

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

-- | /See:/ 'newListRepositoriesForApprovalRuleTemplateResponse' smart constructor.
data ListRepositoriesForApprovalRuleTemplateResponse = ListRepositoriesForApprovalRuleTemplateResponse'
  { -- | An enumeration token that allows the operation to batch the next results
    -- of the operation.
    ListRepositoriesForApprovalRuleTemplateResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of repository names that are associated with the specified
    -- approval rule template.
    ListRepositoriesForApprovalRuleTemplateResponse -> Maybe [Text]
repositoryNames :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListRepositoriesForApprovalRuleTemplateResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListRepositoriesForApprovalRuleTemplateResponse
-> ListRepositoriesForApprovalRuleTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListRepositoriesForApprovalRuleTemplateResponse
-> ListRepositoriesForApprovalRuleTemplateResponse -> Bool
$c/= :: ListRepositoriesForApprovalRuleTemplateResponse
-> ListRepositoriesForApprovalRuleTemplateResponse -> Bool
== :: ListRepositoriesForApprovalRuleTemplateResponse
-> ListRepositoriesForApprovalRuleTemplateResponse -> Bool
$c== :: ListRepositoriesForApprovalRuleTemplateResponse
-> ListRepositoriesForApprovalRuleTemplateResponse -> Bool
Prelude.Eq, ReadPrec [ListRepositoriesForApprovalRuleTemplateResponse]
ReadPrec ListRepositoriesForApprovalRuleTemplateResponse
Int -> ReadS ListRepositoriesForApprovalRuleTemplateResponse
ReadS [ListRepositoriesForApprovalRuleTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListRepositoriesForApprovalRuleTemplateResponse]
$creadListPrec :: ReadPrec [ListRepositoriesForApprovalRuleTemplateResponse]
readPrec :: ReadPrec ListRepositoriesForApprovalRuleTemplateResponse
$creadPrec :: ReadPrec ListRepositoriesForApprovalRuleTemplateResponse
readList :: ReadS [ListRepositoriesForApprovalRuleTemplateResponse]
$creadList :: ReadS [ListRepositoriesForApprovalRuleTemplateResponse]
readsPrec :: Int -> ReadS ListRepositoriesForApprovalRuleTemplateResponse
$creadsPrec :: Int -> ReadS ListRepositoriesForApprovalRuleTemplateResponse
Prelude.Read, Int -> ListRepositoriesForApprovalRuleTemplateResponse -> ShowS
[ListRepositoriesForApprovalRuleTemplateResponse] -> ShowS
ListRepositoriesForApprovalRuleTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListRepositoriesForApprovalRuleTemplateResponse] -> ShowS
$cshowList :: [ListRepositoriesForApprovalRuleTemplateResponse] -> ShowS
show :: ListRepositoriesForApprovalRuleTemplateResponse -> String
$cshow :: ListRepositoriesForApprovalRuleTemplateResponse -> String
showsPrec :: Int -> ListRepositoriesForApprovalRuleTemplateResponse -> ShowS
$cshowsPrec :: Int -> ListRepositoriesForApprovalRuleTemplateResponse -> ShowS
Prelude.Show, forall x.
Rep ListRepositoriesForApprovalRuleTemplateResponse x
-> ListRepositoriesForApprovalRuleTemplateResponse
forall x.
ListRepositoriesForApprovalRuleTemplateResponse
-> Rep ListRepositoriesForApprovalRuleTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListRepositoriesForApprovalRuleTemplateResponse x
-> ListRepositoriesForApprovalRuleTemplateResponse
$cfrom :: forall x.
ListRepositoriesForApprovalRuleTemplateResponse
-> Rep ListRepositoriesForApprovalRuleTemplateResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListRepositoriesForApprovalRuleTemplateResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'nextToken', 'listRepositoriesForApprovalRuleTemplateResponse_nextToken' - An enumeration token that allows the operation to batch the next results
-- of the operation.
--
-- 'repositoryNames', 'listRepositoriesForApprovalRuleTemplateResponse_repositoryNames' - A list of repository names that are associated with the specified
-- approval rule template.
--
-- 'httpStatus', 'listRepositoriesForApprovalRuleTemplateResponse_httpStatus' - The response's http status code.
newListRepositoriesForApprovalRuleTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListRepositoriesForApprovalRuleTemplateResponse
newListRepositoriesForApprovalRuleTemplateResponse :: Int -> ListRepositoriesForApprovalRuleTemplateResponse
newListRepositoriesForApprovalRuleTemplateResponse
  Int
pHttpStatus_ =
    ListRepositoriesForApprovalRuleTemplateResponse'
      { $sel:nextToken:ListRepositoriesForApprovalRuleTemplateResponse' :: Maybe Text
nextToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:repositoryNames:ListRepositoriesForApprovalRuleTemplateResponse' :: Maybe [Text]
repositoryNames =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:ListRepositoriesForApprovalRuleTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | An enumeration token that allows the operation to batch the next results
-- of the operation.
listRepositoriesForApprovalRuleTemplateResponse_nextToken :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse (Prelude.Maybe Prelude.Text)
listRepositoriesForApprovalRuleTemplateResponse_nextToken :: Lens' ListRepositoriesForApprovalRuleTemplateResponse (Maybe Text)
listRepositoriesForApprovalRuleTemplateResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListRepositoriesForApprovalRuleTemplateResponse
s@ListRepositoriesForApprovalRuleTemplateResponse' {} Maybe Text
a -> ListRepositoriesForApprovalRuleTemplateResponse
s {$sel:nextToken:ListRepositoriesForApprovalRuleTemplateResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListRepositoriesForApprovalRuleTemplateResponse)

-- | A list of repository names that are associated with the specified
-- approval rule template.
listRepositoriesForApprovalRuleTemplateResponse_repositoryNames :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse (Prelude.Maybe [Prelude.Text])
listRepositoriesForApprovalRuleTemplateResponse_repositoryNames :: Lens'
  ListRepositoriesForApprovalRuleTemplateResponse (Maybe [Text])
listRepositoriesForApprovalRuleTemplateResponse_repositoryNames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {Maybe [Text]
repositoryNames :: Maybe [Text]
$sel:repositoryNames:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Maybe [Text]
repositoryNames} -> Maybe [Text]
repositoryNames) (\s :: ListRepositoriesForApprovalRuleTemplateResponse
s@ListRepositoriesForApprovalRuleTemplateResponse' {} Maybe [Text]
a -> ListRepositoriesForApprovalRuleTemplateResponse
s {$sel:repositoryNames:ListRepositoriesForApprovalRuleTemplateResponse' :: Maybe [Text]
repositoryNames = Maybe [Text]
a} :: ListRepositoriesForApprovalRuleTemplateResponse) 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.
listRepositoriesForApprovalRuleTemplateResponse_httpStatus :: Lens.Lens' ListRepositoriesForApprovalRuleTemplateResponse Prelude.Int
listRepositoriesForApprovalRuleTemplateResponse_httpStatus :: Lens' ListRepositoriesForApprovalRuleTemplateResponse Int
listRepositoriesForApprovalRuleTemplateResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListRepositoriesForApprovalRuleTemplateResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListRepositoriesForApprovalRuleTemplateResponse
s@ListRepositoriesForApprovalRuleTemplateResponse' {} Int
a -> ListRepositoriesForApprovalRuleTemplateResponse
s {$sel:httpStatus:ListRepositoriesForApprovalRuleTemplateResponse' :: Int
httpStatus = Int
a} :: ListRepositoriesForApprovalRuleTemplateResponse)

instance
  Prelude.NFData
    ListRepositoriesForApprovalRuleTemplateResponse
  where
  rnf :: ListRepositoriesForApprovalRuleTemplateResponse -> ()
rnf
    ListRepositoriesForApprovalRuleTemplateResponse' {Int
Maybe [Text]
Maybe Text
httpStatus :: Int
repositoryNames :: Maybe [Text]
nextToken :: Maybe Text
$sel:httpStatus:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Int
$sel:repositoryNames:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Maybe [Text]
$sel:nextToken:ListRepositoriesForApprovalRuleTemplateResponse' :: ListRepositoriesForApprovalRuleTemplateResponse -> Maybe Text
..} =
      forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
repositoryNames
        seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus