{-# 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.ECS.ListServicesByNamespace
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This operation lists all of the services that are associated with a
-- Cloud Map namespace. This list might include services in different
-- clusters. In contrast, @ListServices@ can only list services in one
-- cluster at a time. If you need to filter the list of services in a
-- single cluster by various parameters, use @ListServices@. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
-- in the /Amazon Elastic Container Service Developer Guide/.
--
-- This operation returns paginated results.
module Amazonka.ECS.ListServicesByNamespace
  ( -- * Creating a Request
    ListServicesByNamespace (..),
    newListServicesByNamespace,

    -- * Request Lenses
    listServicesByNamespace_maxResults,
    listServicesByNamespace_nextToken,
    listServicesByNamespace_namespace,

    -- * Destructuring the Response
    ListServicesByNamespaceResponse (..),
    newListServicesByNamespaceResponse,

    -- * Response Lenses
    listServicesByNamespaceResponse_nextToken,
    listServicesByNamespaceResponse_serviceArns,
    listServicesByNamespaceResponse_httpStatus,
  )
where

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

-- | /See:/ 'newListServicesByNamespace' smart constructor.
data ListServicesByNamespace = ListServicesByNamespace'
  { -- | The maximum number of service results that @ListServicesByNamespace@
    -- returns in paginated output. When this parameter is used,
    -- @ListServicesByNamespace@ only returns @maxResults@ results in a single
    -- page along with a @nextToken@ response element. The remaining results of
    -- the initial request can be seen by sending another
    -- @ListServicesByNamespace@ request with the returned @nextToken@ value.
    -- This value can be between 1 and 100. If this parameter isn\'t used, then
    -- @ListServicesByNamespace@ returns up to 10 results and a @nextToken@
    -- value if applicable.
    ListServicesByNamespace -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | The @nextToken@ value that\'s returned from a @ListServicesByNamespace@
    -- request. It indicates that more results are available to fulfill the
    -- request and further calls are needed. If @maxResults@ is returned, it is
    -- possible the number of results is less than @maxResults@.
    ListServicesByNamespace -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The namespace name or full Amazon Resource Name (ARN) of the Cloud Map
    -- namespace to list the services in.
    --
    -- Tasks that run in a namespace can use short names to connect to services
    -- in the namespace. Tasks can connect to services across all of the
    -- clusters in the namespace. Tasks connect through a managed proxy
    -- container that collects logs and metrics for increased visibility. Only
    -- the tasks that Amazon ECS services create are supported with Service
    -- Connect. For more information, see
    -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
    -- in the /Amazon Elastic Container Service Developer Guide/.
    ListServicesByNamespace -> Text
namespace :: Prelude.Text
  }
  deriving (ListServicesByNamespace -> ListServicesByNamespace -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListServicesByNamespace -> ListServicesByNamespace -> Bool
$c/= :: ListServicesByNamespace -> ListServicesByNamespace -> Bool
== :: ListServicesByNamespace -> ListServicesByNamespace -> Bool
$c== :: ListServicesByNamespace -> ListServicesByNamespace -> Bool
Prelude.Eq, ReadPrec [ListServicesByNamespace]
ReadPrec ListServicesByNamespace
Int -> ReadS ListServicesByNamespace
ReadS [ListServicesByNamespace]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListServicesByNamespace]
$creadListPrec :: ReadPrec [ListServicesByNamespace]
readPrec :: ReadPrec ListServicesByNamespace
$creadPrec :: ReadPrec ListServicesByNamespace
readList :: ReadS [ListServicesByNamespace]
$creadList :: ReadS [ListServicesByNamespace]
readsPrec :: Int -> ReadS ListServicesByNamespace
$creadsPrec :: Int -> ReadS ListServicesByNamespace
Prelude.Read, Int -> ListServicesByNamespace -> ShowS
[ListServicesByNamespace] -> ShowS
ListServicesByNamespace -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListServicesByNamespace] -> ShowS
$cshowList :: [ListServicesByNamespace] -> ShowS
show :: ListServicesByNamespace -> String
$cshow :: ListServicesByNamespace -> String
showsPrec :: Int -> ListServicesByNamespace -> ShowS
$cshowsPrec :: Int -> ListServicesByNamespace -> ShowS
Prelude.Show, forall x. Rep ListServicesByNamespace x -> ListServicesByNamespace
forall x. ListServicesByNamespace -> Rep ListServicesByNamespace x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListServicesByNamespace x -> ListServicesByNamespace
$cfrom :: forall x. ListServicesByNamespace -> Rep ListServicesByNamespace x
Prelude.Generic)

-- |
-- Create a value of 'ListServicesByNamespace' 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', 'listServicesByNamespace_maxResults' - The maximum number of service results that @ListServicesByNamespace@
-- returns in paginated output. When this parameter is used,
-- @ListServicesByNamespace@ only returns @maxResults@ results in a single
-- page along with a @nextToken@ response element. The remaining results of
-- the initial request can be seen by sending another
-- @ListServicesByNamespace@ request with the returned @nextToken@ value.
-- This value can be between 1 and 100. If this parameter isn\'t used, then
-- @ListServicesByNamespace@ returns up to 10 results and a @nextToken@
-- value if applicable.
--
-- 'nextToken', 'listServicesByNamespace_nextToken' - The @nextToken@ value that\'s returned from a @ListServicesByNamespace@
-- request. It indicates that more results are available to fulfill the
-- request and further calls are needed. If @maxResults@ is returned, it is
-- possible the number of results is less than @maxResults@.
--
-- 'namespace', 'listServicesByNamespace_namespace' - The namespace name or full Amazon Resource Name (ARN) of the Cloud Map
-- namespace to list the services in.
--
-- Tasks that run in a namespace can use short names to connect to services
-- in the namespace. Tasks can connect to services across all of the
-- clusters in the namespace. Tasks connect through a managed proxy
-- container that collects logs and metrics for increased visibility. Only
-- the tasks that Amazon ECS services create are supported with Service
-- Connect. For more information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
-- in the /Amazon Elastic Container Service Developer Guide/.
newListServicesByNamespace ::
  -- | 'namespace'
  Prelude.Text ->
  ListServicesByNamespace
newListServicesByNamespace :: Text -> ListServicesByNamespace
newListServicesByNamespace Text
pNamespace_ =
  ListServicesByNamespace'
    { $sel:maxResults:ListServicesByNamespace' :: Maybe Int
maxResults =
        forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListServicesByNamespace' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:ListServicesByNamespace' :: Text
namespace = Text
pNamespace_
    }

-- | The maximum number of service results that @ListServicesByNamespace@
-- returns in paginated output. When this parameter is used,
-- @ListServicesByNamespace@ only returns @maxResults@ results in a single
-- page along with a @nextToken@ response element. The remaining results of
-- the initial request can be seen by sending another
-- @ListServicesByNamespace@ request with the returned @nextToken@ value.
-- This value can be between 1 and 100. If this parameter isn\'t used, then
-- @ListServicesByNamespace@ returns up to 10 results and a @nextToken@
-- value if applicable.
listServicesByNamespace_maxResults :: Lens.Lens' ListServicesByNamespace (Prelude.Maybe Prelude.Int)
listServicesByNamespace_maxResults :: Lens' ListServicesByNamespace (Maybe Int)
listServicesByNamespace_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListServicesByNamespace' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListServicesByNamespace' :: ListServicesByNamespace -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListServicesByNamespace
s@ListServicesByNamespace' {} Maybe Int
a -> ListServicesByNamespace
s {$sel:maxResults:ListServicesByNamespace' :: Maybe Int
maxResults = Maybe Int
a} :: ListServicesByNamespace)

-- | The @nextToken@ value that\'s returned from a @ListServicesByNamespace@
-- request. It indicates that more results are available to fulfill the
-- request and further calls are needed. If @maxResults@ is returned, it is
-- possible the number of results is less than @maxResults@.
listServicesByNamespace_nextToken :: Lens.Lens' ListServicesByNamespace (Prelude.Maybe Prelude.Text)
listServicesByNamespace_nextToken :: Lens' ListServicesByNamespace (Maybe Text)
listServicesByNamespace_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListServicesByNamespace' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListServicesByNamespace' :: ListServicesByNamespace -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListServicesByNamespace
s@ListServicesByNamespace' {} Maybe Text
a -> ListServicesByNamespace
s {$sel:nextToken:ListServicesByNamespace' :: Maybe Text
nextToken = Maybe Text
a} :: ListServicesByNamespace)

-- | The namespace name or full Amazon Resource Name (ARN) of the Cloud Map
-- namespace to list the services in.
--
-- Tasks that run in a namespace can use short names to connect to services
-- in the namespace. Tasks can connect to services across all of the
-- clusters in the namespace. Tasks connect through a managed proxy
-- container that collects logs and metrics for increased visibility. Only
-- the tasks that Amazon ECS services create are supported with Service
-- Connect. For more information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
-- in the /Amazon Elastic Container Service Developer Guide/.
listServicesByNamespace_namespace :: Lens.Lens' ListServicesByNamespace Prelude.Text
listServicesByNamespace_namespace :: Lens' ListServicesByNamespace Text
listServicesByNamespace_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListServicesByNamespace' {Text
namespace :: Text
$sel:namespace:ListServicesByNamespace' :: ListServicesByNamespace -> Text
namespace} -> Text
namespace) (\s :: ListServicesByNamespace
s@ListServicesByNamespace' {} Text
a -> ListServicesByNamespace
s {$sel:namespace:ListServicesByNamespace' :: Text
namespace = Text
a} :: ListServicesByNamespace)

instance Core.AWSPager ListServicesByNamespace where
  page :: ListServicesByNamespace
-> AWSResponse ListServicesByNamespace
-> Maybe ListServicesByNamespace
page ListServicesByNamespace
rq AWSResponse ListServicesByNamespace
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListServicesByNamespace
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListServicesByNamespaceResponse (Maybe Text)
listServicesByNamespaceResponse_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 ListServicesByNamespace
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListServicesByNamespaceResponse (Maybe [Text])
listServicesByNamespaceResponse_serviceArns
            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.$ ListServicesByNamespace
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListServicesByNamespace (Maybe Text)
listServicesByNamespace_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListServicesByNamespace
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListServicesByNamespaceResponse (Maybe Text)
listServicesByNamespaceResponse_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 ListServicesByNamespace where
  type
    AWSResponse ListServicesByNamespace =
      ListServicesByNamespaceResponse
  request :: (Service -> Service)
-> ListServicesByNamespace -> Request ListServicesByNamespace
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 ListServicesByNamespace
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListServicesByNamespace)))
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 -> ListServicesByNamespaceResponse
ListServicesByNamespaceResponse'
            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
"serviceArns" 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 ListServicesByNamespace where
  hashWithSalt :: Int -> ListServicesByNamespace -> Int
hashWithSalt Int
_salt ListServicesByNamespace' {Maybe Int
Maybe Text
Text
namespace :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:namespace:ListServicesByNamespace' :: ListServicesByNamespace -> Text
$sel:nextToken:ListServicesByNamespace' :: ListServicesByNamespace -> Maybe Text
$sel:maxResults:ListServicesByNamespace' :: ListServicesByNamespace -> 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
namespace

instance Prelude.NFData ListServicesByNamespace where
  rnf :: ListServicesByNamespace -> ()
rnf ListServicesByNamespace' {Maybe Int
Maybe Text
Text
namespace :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:namespace:ListServicesByNamespace' :: ListServicesByNamespace -> Text
$sel:nextToken:ListServicesByNamespace' :: ListServicesByNamespace -> Maybe Text
$sel:maxResults:ListServicesByNamespace' :: ListServicesByNamespace -> 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
namespace

instance Data.ToHeaders ListServicesByNamespace where
  toHeaders :: ListServicesByNamespace -> 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
"AmazonEC2ContainerServiceV20141113.ListServicesByNamespace" ::
                          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 ListServicesByNamespace where
  toJSON :: ListServicesByNamespace -> Value
toJSON ListServicesByNamespace' {Maybe Int
Maybe Text
Text
namespace :: Text
nextToken :: Maybe Text
maxResults :: Maybe Int
$sel:namespace:ListServicesByNamespace' :: ListServicesByNamespace -> Text
$sel:nextToken:ListServicesByNamespace' :: ListServicesByNamespace -> Maybe Text
$sel:maxResults:ListServicesByNamespace' :: ListServicesByNamespace -> 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
"namespace" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
namespace)
          ]
      )

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

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

-- | /See:/ 'newListServicesByNamespaceResponse' smart constructor.
data ListServicesByNamespaceResponse = ListServicesByNamespaceResponse'
  { -- | The @nextToken@ value to include in a future @ListServicesByNamespace@
    -- request. When the results of a @ListServicesByNamespace@ request exceed
    -- @maxResults@, this value can be used to retrieve the next page of
    -- results. When there are no more results to return, this value is @null@.
    ListServicesByNamespaceResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The list of full ARN entries for each service that\'s associated with
    -- the specified namespace.
    ListServicesByNamespaceResponse -> Maybe [Text]
serviceArns :: Prelude.Maybe [Prelude.Text],
    -- | The response's http status code.
    ListServicesByNamespaceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListServicesByNamespaceResponse
-> ListServicesByNamespaceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListServicesByNamespaceResponse
-> ListServicesByNamespaceResponse -> Bool
$c/= :: ListServicesByNamespaceResponse
-> ListServicesByNamespaceResponse -> Bool
== :: ListServicesByNamespaceResponse
-> ListServicesByNamespaceResponse -> Bool
$c== :: ListServicesByNamespaceResponse
-> ListServicesByNamespaceResponse -> Bool
Prelude.Eq, ReadPrec [ListServicesByNamespaceResponse]
ReadPrec ListServicesByNamespaceResponse
Int -> ReadS ListServicesByNamespaceResponse
ReadS [ListServicesByNamespaceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListServicesByNamespaceResponse]
$creadListPrec :: ReadPrec [ListServicesByNamespaceResponse]
readPrec :: ReadPrec ListServicesByNamespaceResponse
$creadPrec :: ReadPrec ListServicesByNamespaceResponse
readList :: ReadS [ListServicesByNamespaceResponse]
$creadList :: ReadS [ListServicesByNamespaceResponse]
readsPrec :: Int -> ReadS ListServicesByNamespaceResponse
$creadsPrec :: Int -> ReadS ListServicesByNamespaceResponse
Prelude.Read, Int -> ListServicesByNamespaceResponse -> ShowS
[ListServicesByNamespaceResponse] -> ShowS
ListServicesByNamespaceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListServicesByNamespaceResponse] -> ShowS
$cshowList :: [ListServicesByNamespaceResponse] -> ShowS
show :: ListServicesByNamespaceResponse -> String
$cshow :: ListServicesByNamespaceResponse -> String
showsPrec :: Int -> ListServicesByNamespaceResponse -> ShowS
$cshowsPrec :: Int -> ListServicesByNamespaceResponse -> ShowS
Prelude.Show, forall x.
Rep ListServicesByNamespaceResponse x
-> ListServicesByNamespaceResponse
forall x.
ListServicesByNamespaceResponse
-> Rep ListServicesByNamespaceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListServicesByNamespaceResponse x
-> ListServicesByNamespaceResponse
$cfrom :: forall x.
ListServicesByNamespaceResponse
-> Rep ListServicesByNamespaceResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListServicesByNamespaceResponse' 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', 'listServicesByNamespaceResponse_nextToken' - The @nextToken@ value to include in a future @ListServicesByNamespace@
-- request. When the results of a @ListServicesByNamespace@ request exceed
-- @maxResults@, this value can be used to retrieve the next page of
-- results. When there are no more results to return, this value is @null@.
--
-- 'serviceArns', 'listServicesByNamespaceResponse_serviceArns' - The list of full ARN entries for each service that\'s associated with
-- the specified namespace.
--
-- 'httpStatus', 'listServicesByNamespaceResponse_httpStatus' - The response's http status code.
newListServicesByNamespaceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListServicesByNamespaceResponse
newListServicesByNamespaceResponse :: Int -> ListServicesByNamespaceResponse
newListServicesByNamespaceResponse Int
pHttpStatus_ =
  ListServicesByNamespaceResponse'
    { $sel:nextToken:ListServicesByNamespaceResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:serviceArns:ListServicesByNamespaceResponse' :: Maybe [Text]
serviceArns = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListServicesByNamespaceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

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

-- | The list of full ARN entries for each service that\'s associated with
-- the specified namespace.
listServicesByNamespaceResponse_serviceArns :: Lens.Lens' ListServicesByNamespaceResponse (Prelude.Maybe [Prelude.Text])
listServicesByNamespaceResponse_serviceArns :: Lens' ListServicesByNamespaceResponse (Maybe [Text])
listServicesByNamespaceResponse_serviceArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListServicesByNamespaceResponse' {Maybe [Text]
serviceArns :: Maybe [Text]
$sel:serviceArns:ListServicesByNamespaceResponse' :: ListServicesByNamespaceResponse -> Maybe [Text]
serviceArns} -> Maybe [Text]
serviceArns) (\s :: ListServicesByNamespaceResponse
s@ListServicesByNamespaceResponse' {} Maybe [Text]
a -> ListServicesByNamespaceResponse
s {$sel:serviceArns:ListServicesByNamespaceResponse' :: Maybe [Text]
serviceArns = Maybe [Text]
a} :: ListServicesByNamespaceResponse) 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.
listServicesByNamespaceResponse_httpStatus :: Lens.Lens' ListServicesByNamespaceResponse Prelude.Int
listServicesByNamespaceResponse_httpStatus :: Lens' ListServicesByNamespaceResponse Int
listServicesByNamespaceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListServicesByNamespaceResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListServicesByNamespaceResponse' :: ListServicesByNamespaceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListServicesByNamespaceResponse
s@ListServicesByNamespaceResponse' {} Int
a -> ListServicesByNamespaceResponse
s {$sel:httpStatus:ListServicesByNamespaceResponse' :: Int
httpStatus = Int
a} :: ListServicesByNamespaceResponse)

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