{-# 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.SageMaker.ListCodeRepositories
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets a list of the Git repositories in your account.
--
-- This operation returns paginated results.
module Amazonka.SageMaker.ListCodeRepositories
  ( -- * Creating a Request
    ListCodeRepositories (..),
    newListCodeRepositories,

    -- * Request Lenses
    listCodeRepositories_creationTimeAfter,
    listCodeRepositories_creationTimeBefore,
    listCodeRepositories_lastModifiedTimeAfter,
    listCodeRepositories_lastModifiedTimeBefore,
    listCodeRepositories_maxResults,
    listCodeRepositories_nameContains,
    listCodeRepositories_nextToken,
    listCodeRepositories_sortBy,
    listCodeRepositories_sortOrder,

    -- * Destructuring the Response
    ListCodeRepositoriesResponse (..),
    newListCodeRepositoriesResponse,

    -- * Response Lenses
    listCodeRepositoriesResponse_nextToken,
    listCodeRepositoriesResponse_httpStatus,
    listCodeRepositoriesResponse_codeRepositorySummaryList,
  )
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.SageMaker.Types

-- | /See:/ 'newListCodeRepositories' smart constructor.
data ListCodeRepositories = ListCodeRepositories'
  { -- | A filter that returns only Git repositories that were created after the
    -- specified time.
    ListCodeRepositories -> Maybe POSIX
creationTimeAfter :: Prelude.Maybe Data.POSIX,
    -- | A filter that returns only Git repositories that were created before the
    -- specified time.
    ListCodeRepositories -> Maybe POSIX
creationTimeBefore :: Prelude.Maybe Data.POSIX,
    -- | A filter that returns only Git repositories that were last modified
    -- after the specified time.
    ListCodeRepositories -> Maybe POSIX
lastModifiedTimeAfter :: Prelude.Maybe Data.POSIX,
    -- | A filter that returns only Git repositories that were last modified
    -- before the specified time.
    ListCodeRepositories -> Maybe POSIX
lastModifiedTimeBefore :: Prelude.Maybe Data.POSIX,
    -- | The maximum number of Git repositories to return in the response.
    ListCodeRepositories -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A string in the Git repositories name. This filter returns only
    -- repositories whose name contains the specified string.
    ListCodeRepositories -> Maybe Text
nameContains :: Prelude.Maybe Prelude.Text,
    -- | If the result of a @ListCodeRepositoriesOutput@ request was truncated,
    -- the response includes a @NextToken@. To get the next set of Git
    -- repositories, use the token in the next request.
    ListCodeRepositories -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The field to sort results by. The default is @Name@.
    ListCodeRepositories -> Maybe CodeRepositorySortBy
sortBy :: Prelude.Maybe CodeRepositorySortBy,
    -- | The sort order for results. The default is @Ascending@.
    ListCodeRepositories -> Maybe CodeRepositorySortOrder
sortOrder :: Prelude.Maybe CodeRepositorySortOrder
  }
  deriving (ListCodeRepositories -> ListCodeRepositories -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListCodeRepositories -> ListCodeRepositories -> Bool
$c/= :: ListCodeRepositories -> ListCodeRepositories -> Bool
== :: ListCodeRepositories -> ListCodeRepositories -> Bool
$c== :: ListCodeRepositories -> ListCodeRepositories -> Bool
Prelude.Eq, ReadPrec [ListCodeRepositories]
ReadPrec ListCodeRepositories
Int -> ReadS ListCodeRepositories
ReadS [ListCodeRepositories]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListCodeRepositories]
$creadListPrec :: ReadPrec [ListCodeRepositories]
readPrec :: ReadPrec ListCodeRepositories
$creadPrec :: ReadPrec ListCodeRepositories
readList :: ReadS [ListCodeRepositories]
$creadList :: ReadS [ListCodeRepositories]
readsPrec :: Int -> ReadS ListCodeRepositories
$creadsPrec :: Int -> ReadS ListCodeRepositories
Prelude.Read, Int -> ListCodeRepositories -> ShowS
[ListCodeRepositories] -> ShowS
ListCodeRepositories -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListCodeRepositories] -> ShowS
$cshowList :: [ListCodeRepositories] -> ShowS
show :: ListCodeRepositories -> String
$cshow :: ListCodeRepositories -> String
showsPrec :: Int -> ListCodeRepositories -> ShowS
$cshowsPrec :: Int -> ListCodeRepositories -> ShowS
Prelude.Show, forall x. Rep ListCodeRepositories x -> ListCodeRepositories
forall x. ListCodeRepositories -> Rep ListCodeRepositories x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListCodeRepositories x -> ListCodeRepositories
$cfrom :: forall x. ListCodeRepositories -> Rep ListCodeRepositories x
Prelude.Generic)

-- |
-- Create a value of 'ListCodeRepositories' 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:
--
-- 'creationTimeAfter', 'listCodeRepositories_creationTimeAfter' - A filter that returns only Git repositories that were created after the
-- specified time.
--
-- 'creationTimeBefore', 'listCodeRepositories_creationTimeBefore' - A filter that returns only Git repositories that were created before the
-- specified time.
--
-- 'lastModifiedTimeAfter', 'listCodeRepositories_lastModifiedTimeAfter' - A filter that returns only Git repositories that were last modified
-- after the specified time.
--
-- 'lastModifiedTimeBefore', 'listCodeRepositories_lastModifiedTimeBefore' - A filter that returns only Git repositories that were last modified
-- before the specified time.
--
-- 'maxResults', 'listCodeRepositories_maxResults' - The maximum number of Git repositories to return in the response.
--
-- 'nameContains', 'listCodeRepositories_nameContains' - A string in the Git repositories name. This filter returns only
-- repositories whose name contains the specified string.
--
-- 'nextToken', 'listCodeRepositories_nextToken' - If the result of a @ListCodeRepositoriesOutput@ request was truncated,
-- the response includes a @NextToken@. To get the next set of Git
-- repositories, use the token in the next request.
--
-- 'sortBy', 'listCodeRepositories_sortBy' - The field to sort results by. The default is @Name@.
--
-- 'sortOrder', 'listCodeRepositories_sortOrder' - The sort order for results. The default is @Ascending@.
newListCodeRepositories ::
  ListCodeRepositories
newListCodeRepositories :: ListCodeRepositories
newListCodeRepositories =
  ListCodeRepositories'
    { $sel:creationTimeAfter:ListCodeRepositories' :: Maybe POSIX
creationTimeAfter =
        forall a. Maybe a
Prelude.Nothing,
      $sel:creationTimeBefore:ListCodeRepositories' :: Maybe POSIX
creationTimeBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTimeAfter:ListCodeRepositories' :: Maybe POSIX
lastModifiedTimeAfter = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTimeBefore:ListCodeRepositories' :: Maybe POSIX
lastModifiedTimeBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListCodeRepositories' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nameContains:ListCodeRepositories' :: Maybe Text
nameContains = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListCodeRepositories' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:sortBy:ListCodeRepositories' :: Maybe CodeRepositorySortBy
sortBy = forall a. Maybe a
Prelude.Nothing,
      $sel:sortOrder:ListCodeRepositories' :: Maybe CodeRepositorySortOrder
sortOrder = forall a. Maybe a
Prelude.Nothing
    }

-- | A filter that returns only Git repositories that were created after the
-- specified time.
listCodeRepositories_creationTimeAfter :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.UTCTime)
listCodeRepositories_creationTimeAfter :: Lens' ListCodeRepositories (Maybe UTCTime)
listCodeRepositories_creationTimeAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:creationTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
creationTimeAfter} -> Maybe POSIX
creationTimeAfter) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe POSIX
a -> ListCodeRepositories
s {$sel:creationTimeAfter:ListCodeRepositories' :: Maybe POSIX
creationTimeAfter = Maybe POSIX
a} :: ListCodeRepositories) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A filter that returns only Git repositories that were created before the
-- specified time.
listCodeRepositories_creationTimeBefore :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.UTCTime)
listCodeRepositories_creationTimeBefore :: Lens' ListCodeRepositories (Maybe UTCTime)
listCodeRepositories_creationTimeBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe POSIX
creationTimeBefore :: Maybe POSIX
$sel:creationTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
creationTimeBefore} -> Maybe POSIX
creationTimeBefore) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe POSIX
a -> ListCodeRepositories
s {$sel:creationTimeBefore:ListCodeRepositories' :: Maybe POSIX
creationTimeBefore = Maybe POSIX
a} :: ListCodeRepositories) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A filter that returns only Git repositories that were last modified
-- after the specified time.
listCodeRepositories_lastModifiedTimeAfter :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.UTCTime)
listCodeRepositories_lastModifiedTimeAfter :: Lens' ListCodeRepositories (Maybe UTCTime)
listCodeRepositories_lastModifiedTimeAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe POSIX
lastModifiedTimeAfter :: Maybe POSIX
$sel:lastModifiedTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
lastModifiedTimeAfter} -> Maybe POSIX
lastModifiedTimeAfter) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe POSIX
a -> ListCodeRepositories
s {$sel:lastModifiedTimeAfter:ListCodeRepositories' :: Maybe POSIX
lastModifiedTimeAfter = Maybe POSIX
a} :: ListCodeRepositories) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A filter that returns only Git repositories that were last modified
-- before the specified time.
listCodeRepositories_lastModifiedTimeBefore :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.UTCTime)
listCodeRepositories_lastModifiedTimeBefore :: Lens' ListCodeRepositories (Maybe UTCTime)
listCodeRepositories_lastModifiedTimeBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe POSIX
lastModifiedTimeBefore :: Maybe POSIX
$sel:lastModifiedTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
lastModifiedTimeBefore} -> Maybe POSIX
lastModifiedTimeBefore) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe POSIX
a -> ListCodeRepositories
s {$sel:lastModifiedTimeBefore:ListCodeRepositories' :: Maybe POSIX
lastModifiedTimeBefore = Maybe POSIX
a} :: ListCodeRepositories) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The maximum number of Git repositories to return in the response.
listCodeRepositories_maxResults :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.Natural)
listCodeRepositories_maxResults :: Lens' ListCodeRepositories (Maybe Natural)
listCodeRepositories_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:ListCodeRepositories' :: ListCodeRepositories -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe Natural
a -> ListCodeRepositories
s {$sel:maxResults:ListCodeRepositories' :: Maybe Natural
maxResults = Maybe Natural
a} :: ListCodeRepositories)

-- | A string in the Git repositories name. This filter returns only
-- repositories whose name contains the specified string.
listCodeRepositories_nameContains :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.Text)
listCodeRepositories_nameContains :: Lens' ListCodeRepositories (Maybe Text)
listCodeRepositories_nameContains = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe Text
nameContains :: Maybe Text
$sel:nameContains:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
nameContains} -> Maybe Text
nameContains) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe Text
a -> ListCodeRepositories
s {$sel:nameContains:ListCodeRepositories' :: Maybe Text
nameContains = Maybe Text
a} :: ListCodeRepositories)

-- | If the result of a @ListCodeRepositoriesOutput@ request was truncated,
-- the response includes a @NextToken@. To get the next set of Git
-- repositories, use the token in the next request.
listCodeRepositories_nextToken :: Lens.Lens' ListCodeRepositories (Prelude.Maybe Prelude.Text)
listCodeRepositories_nextToken :: Lens' ListCodeRepositories (Maybe Text)
listCodeRepositories_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe Text
a -> ListCodeRepositories
s {$sel:nextToken:ListCodeRepositories' :: Maybe Text
nextToken = Maybe Text
a} :: ListCodeRepositories)

-- | The field to sort results by. The default is @Name@.
listCodeRepositories_sortBy :: Lens.Lens' ListCodeRepositories (Prelude.Maybe CodeRepositorySortBy)
listCodeRepositories_sortBy :: Lens' ListCodeRepositories (Maybe CodeRepositorySortBy)
listCodeRepositories_sortBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe CodeRepositorySortBy
sortBy :: Maybe CodeRepositorySortBy
$sel:sortBy:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortBy
sortBy} -> Maybe CodeRepositorySortBy
sortBy) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe CodeRepositorySortBy
a -> ListCodeRepositories
s {$sel:sortBy:ListCodeRepositories' :: Maybe CodeRepositorySortBy
sortBy = Maybe CodeRepositorySortBy
a} :: ListCodeRepositories)

-- | The sort order for results. The default is @Ascending@.
listCodeRepositories_sortOrder :: Lens.Lens' ListCodeRepositories (Prelude.Maybe CodeRepositorySortOrder)
listCodeRepositories_sortOrder :: Lens' ListCodeRepositories (Maybe CodeRepositorySortOrder)
listCodeRepositories_sortOrder = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositories' {Maybe CodeRepositorySortOrder
sortOrder :: Maybe CodeRepositorySortOrder
$sel:sortOrder:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortOrder
sortOrder} -> Maybe CodeRepositorySortOrder
sortOrder) (\s :: ListCodeRepositories
s@ListCodeRepositories' {} Maybe CodeRepositorySortOrder
a -> ListCodeRepositories
s {$sel:sortOrder:ListCodeRepositories' :: Maybe CodeRepositorySortOrder
sortOrder = Maybe CodeRepositorySortOrder
a} :: ListCodeRepositories)

instance Core.AWSPager ListCodeRepositories where
  page :: ListCodeRepositories
-> AWSResponse ListCodeRepositories -> Maybe ListCodeRepositories
page ListCodeRepositories
rq AWSResponse ListCodeRepositories
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListCodeRepositories
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListCodeRepositoriesResponse (Maybe Text)
listCodeRepositoriesResponse_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 ListCodeRepositories
rs
            forall s a. s -> Getting a s a -> a
Lens.^. Lens' ListCodeRepositoriesResponse [CodeRepositorySummary]
listCodeRepositoriesResponse_codeRepositorySummaryList
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListCodeRepositories
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListCodeRepositories (Maybe Text)
listCodeRepositories_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListCodeRepositories
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListCodeRepositoriesResponse (Maybe Text)
listCodeRepositoriesResponse_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 ListCodeRepositories where
  type
    AWSResponse ListCodeRepositories =
      ListCodeRepositoriesResponse
  request :: (Service -> Service)
-> ListCodeRepositories -> Request ListCodeRepositories
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 ListCodeRepositories
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListCodeRepositories)))
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
-> Int -> [CodeRepositorySummary] -> ListCodeRepositoriesResponse
ListCodeRepositoriesResponse'
            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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            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
"CodeRepositorySummaryList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable ListCodeRepositories where
  hashWithSalt :: Int -> ListCodeRepositories -> Int
hashWithSalt Int
_salt ListCodeRepositories' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe CodeRepositorySortBy
Maybe CodeRepositorySortOrder
sortOrder :: Maybe CodeRepositorySortOrder
sortBy :: Maybe CodeRepositorySortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
maxResults :: Maybe Natural
lastModifiedTimeBefore :: Maybe POSIX
lastModifiedTimeAfter :: Maybe POSIX
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortOrder
$sel:sortBy:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortBy
$sel:nextToken:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:nameContains:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:maxResults:ListCodeRepositories' :: ListCodeRepositories -> Maybe Natural
$sel:lastModifiedTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:lastModifiedTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTimeAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTimeBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedTimeAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedTimeBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nameContains
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CodeRepositorySortBy
sortBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CodeRepositorySortOrder
sortOrder

instance Prelude.NFData ListCodeRepositories where
  rnf :: ListCodeRepositories -> ()
rnf ListCodeRepositories' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe CodeRepositorySortBy
Maybe CodeRepositorySortOrder
sortOrder :: Maybe CodeRepositorySortOrder
sortBy :: Maybe CodeRepositorySortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
maxResults :: Maybe Natural
lastModifiedTimeBefore :: Maybe POSIX
lastModifiedTimeAfter :: Maybe POSIX
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortOrder
$sel:sortBy:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortBy
$sel:nextToken:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:nameContains:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:maxResults:ListCodeRepositories' :: ListCodeRepositories -> Maybe Natural
$sel:lastModifiedTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:lastModifiedTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTimeAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTimeBefore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTimeAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTimeBefore
      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
nameContains
      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 CodeRepositorySortBy
sortBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CodeRepositorySortOrder
sortOrder

instance Data.ToHeaders ListCodeRepositories where
  toHeaders :: ListCodeRepositories -> 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
"SageMaker.ListCodeRepositories" ::
                          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 ListCodeRepositories where
  toJSON :: ListCodeRepositories -> Value
toJSON ListCodeRepositories' {Maybe Natural
Maybe Text
Maybe POSIX
Maybe CodeRepositorySortBy
Maybe CodeRepositorySortOrder
sortOrder :: Maybe CodeRepositorySortOrder
sortBy :: Maybe CodeRepositorySortBy
nextToken :: Maybe Text
nameContains :: Maybe Text
maxResults :: Maybe Natural
lastModifiedTimeBefore :: Maybe POSIX
lastModifiedTimeAfter :: Maybe POSIX
creationTimeBefore :: Maybe POSIX
creationTimeAfter :: Maybe POSIX
$sel:sortOrder:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortOrder
$sel:sortBy:ListCodeRepositories' :: ListCodeRepositories -> Maybe CodeRepositorySortBy
$sel:nextToken:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:nameContains:ListCodeRepositories' :: ListCodeRepositories -> Maybe Text
$sel:maxResults:ListCodeRepositories' :: ListCodeRepositories -> Maybe Natural
$sel:lastModifiedTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:lastModifiedTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeBefore:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
$sel:creationTimeAfter:ListCodeRepositories' :: ListCodeRepositories -> Maybe POSIX
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CreationTimeAfter" 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 POSIX
creationTimeAfter,
            (Key
"CreationTimeBefore" 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 POSIX
creationTimeBefore,
            (Key
"LastModifiedTimeAfter" 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 POSIX
lastModifiedTimeAfter,
            (Key
"LastModifiedTimeBefore" 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 POSIX
lastModifiedTimeBefore,
            (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
"NameContains" 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
nameContains,
            (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
"SortBy" 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 CodeRepositorySortBy
sortBy,
            (Key
"SortOrder" 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 CodeRepositorySortOrder
sortOrder
          ]
      )

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

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

-- | /See:/ 'newListCodeRepositoriesResponse' smart constructor.
data ListCodeRepositoriesResponse = ListCodeRepositoriesResponse'
  { -- | If the result of a @ListCodeRepositoriesOutput@ request was truncated,
    -- the response includes a @NextToken@. To get the next set of Git
    -- repositories, use the token in the next request.
    ListCodeRepositoriesResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    ListCodeRepositoriesResponse -> Int
httpStatus :: Prelude.Int,
    -- | Gets a list of summaries of the Git repositories. Each summary specifies
    -- the following values for the repository:
    --
    -- -   Name
    --
    -- -   Amazon Resource Name (ARN)
    --
    -- -   Creation time
    --
    -- -   Last modified time
    --
    -- -   Configuration information, including the URL location of the
    --     repository and the ARN of the Amazon Web Services Secrets Manager
    --     secret that contains the credentials used to access the repository.
    ListCodeRepositoriesResponse -> [CodeRepositorySummary]
codeRepositorySummaryList :: [CodeRepositorySummary]
  }
  deriving (ListCodeRepositoriesResponse
-> ListCodeRepositoriesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListCodeRepositoriesResponse
-> ListCodeRepositoriesResponse -> Bool
$c/= :: ListCodeRepositoriesResponse
-> ListCodeRepositoriesResponse -> Bool
== :: ListCodeRepositoriesResponse
-> ListCodeRepositoriesResponse -> Bool
$c== :: ListCodeRepositoriesResponse
-> ListCodeRepositoriesResponse -> Bool
Prelude.Eq, ReadPrec [ListCodeRepositoriesResponse]
ReadPrec ListCodeRepositoriesResponse
Int -> ReadS ListCodeRepositoriesResponse
ReadS [ListCodeRepositoriesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListCodeRepositoriesResponse]
$creadListPrec :: ReadPrec [ListCodeRepositoriesResponse]
readPrec :: ReadPrec ListCodeRepositoriesResponse
$creadPrec :: ReadPrec ListCodeRepositoriesResponse
readList :: ReadS [ListCodeRepositoriesResponse]
$creadList :: ReadS [ListCodeRepositoriesResponse]
readsPrec :: Int -> ReadS ListCodeRepositoriesResponse
$creadsPrec :: Int -> ReadS ListCodeRepositoriesResponse
Prelude.Read, Int -> ListCodeRepositoriesResponse -> ShowS
[ListCodeRepositoriesResponse] -> ShowS
ListCodeRepositoriesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListCodeRepositoriesResponse] -> ShowS
$cshowList :: [ListCodeRepositoriesResponse] -> ShowS
show :: ListCodeRepositoriesResponse -> String
$cshow :: ListCodeRepositoriesResponse -> String
showsPrec :: Int -> ListCodeRepositoriesResponse -> ShowS
$cshowsPrec :: Int -> ListCodeRepositoriesResponse -> ShowS
Prelude.Show, forall x.
Rep ListCodeRepositoriesResponse x -> ListCodeRepositoriesResponse
forall x.
ListCodeRepositoriesResponse -> Rep ListCodeRepositoriesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListCodeRepositoriesResponse x -> ListCodeRepositoriesResponse
$cfrom :: forall x.
ListCodeRepositoriesResponse -> Rep ListCodeRepositoriesResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListCodeRepositoriesResponse' 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', 'listCodeRepositoriesResponse_nextToken' - If the result of a @ListCodeRepositoriesOutput@ request was truncated,
-- the response includes a @NextToken@. To get the next set of Git
-- repositories, use the token in the next request.
--
-- 'httpStatus', 'listCodeRepositoriesResponse_httpStatus' - The response's http status code.
--
-- 'codeRepositorySummaryList', 'listCodeRepositoriesResponse_codeRepositorySummaryList' - Gets a list of summaries of the Git repositories. Each summary specifies
-- the following values for the repository:
--
-- -   Name
--
-- -   Amazon Resource Name (ARN)
--
-- -   Creation time
--
-- -   Last modified time
--
-- -   Configuration information, including the URL location of the
--     repository and the ARN of the Amazon Web Services Secrets Manager
--     secret that contains the credentials used to access the repository.
newListCodeRepositoriesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListCodeRepositoriesResponse
newListCodeRepositoriesResponse :: Int -> ListCodeRepositoriesResponse
newListCodeRepositoriesResponse Int
pHttpStatus_ =
  ListCodeRepositoriesResponse'
    { $sel:nextToken:ListCodeRepositoriesResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListCodeRepositoriesResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:codeRepositorySummaryList:ListCodeRepositoriesResponse' :: [CodeRepositorySummary]
codeRepositorySummaryList = forall a. Monoid a => a
Prelude.mempty
    }

-- | If the result of a @ListCodeRepositoriesOutput@ request was truncated,
-- the response includes a @NextToken@. To get the next set of Git
-- repositories, use the token in the next request.
listCodeRepositoriesResponse_nextToken :: Lens.Lens' ListCodeRepositoriesResponse (Prelude.Maybe Prelude.Text)
listCodeRepositoriesResponse_nextToken :: Lens' ListCodeRepositoriesResponse (Maybe Text)
listCodeRepositoriesResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositoriesResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListCodeRepositoriesResponse' :: ListCodeRepositoriesResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListCodeRepositoriesResponse
s@ListCodeRepositoriesResponse' {} Maybe Text
a -> ListCodeRepositoriesResponse
s {$sel:nextToken:ListCodeRepositoriesResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListCodeRepositoriesResponse)

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

-- | Gets a list of summaries of the Git repositories. Each summary specifies
-- the following values for the repository:
--
-- -   Name
--
-- -   Amazon Resource Name (ARN)
--
-- -   Creation time
--
-- -   Last modified time
--
-- -   Configuration information, including the URL location of the
--     repository and the ARN of the Amazon Web Services Secrets Manager
--     secret that contains the credentials used to access the repository.
listCodeRepositoriesResponse_codeRepositorySummaryList :: Lens.Lens' ListCodeRepositoriesResponse [CodeRepositorySummary]
listCodeRepositoriesResponse_codeRepositorySummaryList :: Lens' ListCodeRepositoriesResponse [CodeRepositorySummary]
listCodeRepositoriesResponse_codeRepositorySummaryList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListCodeRepositoriesResponse' {[CodeRepositorySummary]
codeRepositorySummaryList :: [CodeRepositorySummary]
$sel:codeRepositorySummaryList:ListCodeRepositoriesResponse' :: ListCodeRepositoriesResponse -> [CodeRepositorySummary]
codeRepositorySummaryList} -> [CodeRepositorySummary]
codeRepositorySummaryList) (\s :: ListCodeRepositoriesResponse
s@ListCodeRepositoriesResponse' {} [CodeRepositorySummary]
a -> ListCodeRepositoriesResponse
s {$sel:codeRepositorySummaryList:ListCodeRepositoriesResponse' :: [CodeRepositorySummary]
codeRepositorySummaryList = [CodeRepositorySummary]
a} :: ListCodeRepositoriesResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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