{-# 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.Glue.GetUserDefinedFunctions
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves multiple function definitions from the Data Catalog.
--
-- This operation returns paginated results.
module Amazonka.Glue.GetUserDefinedFunctions
  ( -- * Creating a Request
    GetUserDefinedFunctions (..),
    newGetUserDefinedFunctions,

    -- * Request Lenses
    getUserDefinedFunctions_catalogId,
    getUserDefinedFunctions_databaseName,
    getUserDefinedFunctions_maxResults,
    getUserDefinedFunctions_nextToken,
    getUserDefinedFunctions_pattern,

    -- * Destructuring the Response
    GetUserDefinedFunctionsResponse (..),
    newGetUserDefinedFunctionsResponse,

    -- * Response Lenses
    getUserDefinedFunctionsResponse_nextToken,
    getUserDefinedFunctionsResponse_userDefinedFunctions,
    getUserDefinedFunctionsResponse_httpStatus,
  )
where

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

-- | /See:/ 'newGetUserDefinedFunctions' smart constructor.
data GetUserDefinedFunctions = GetUserDefinedFunctions'
  { -- | The ID of the Data Catalog where the functions to be retrieved are
    -- located. If none is provided, the Amazon Web Services account ID is used
    -- by default.
    GetUserDefinedFunctions -> Maybe Text
catalogId :: Prelude.Maybe Prelude.Text,
    -- | The name of the catalog database where the functions are located. If
    -- none is provided, functions from all the databases across the catalog
    -- will be returned.
    GetUserDefinedFunctions -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of functions to return in one response.
    GetUserDefinedFunctions -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | A continuation token, if this is a continuation call.
    GetUserDefinedFunctions -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | An optional function-name pattern string that filters the function
    -- definitions returned.
    GetUserDefinedFunctions -> Text
pattern' :: Prelude.Text
  }
  deriving (GetUserDefinedFunctions -> GetUserDefinedFunctions -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetUserDefinedFunctions -> GetUserDefinedFunctions -> Bool
$c/= :: GetUserDefinedFunctions -> GetUserDefinedFunctions -> Bool
== :: GetUserDefinedFunctions -> GetUserDefinedFunctions -> Bool
$c== :: GetUserDefinedFunctions -> GetUserDefinedFunctions -> Bool
Prelude.Eq, ReadPrec [GetUserDefinedFunctions]
ReadPrec GetUserDefinedFunctions
Int -> ReadS GetUserDefinedFunctions
ReadS [GetUserDefinedFunctions]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetUserDefinedFunctions]
$creadListPrec :: ReadPrec [GetUserDefinedFunctions]
readPrec :: ReadPrec GetUserDefinedFunctions
$creadPrec :: ReadPrec GetUserDefinedFunctions
readList :: ReadS [GetUserDefinedFunctions]
$creadList :: ReadS [GetUserDefinedFunctions]
readsPrec :: Int -> ReadS GetUserDefinedFunctions
$creadsPrec :: Int -> ReadS GetUserDefinedFunctions
Prelude.Read, Int -> GetUserDefinedFunctions -> ShowS
[GetUserDefinedFunctions] -> ShowS
GetUserDefinedFunctions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetUserDefinedFunctions] -> ShowS
$cshowList :: [GetUserDefinedFunctions] -> ShowS
show :: GetUserDefinedFunctions -> String
$cshow :: GetUserDefinedFunctions -> String
showsPrec :: Int -> GetUserDefinedFunctions -> ShowS
$cshowsPrec :: Int -> GetUserDefinedFunctions -> ShowS
Prelude.Show, forall x. Rep GetUserDefinedFunctions x -> GetUserDefinedFunctions
forall x. GetUserDefinedFunctions -> Rep GetUserDefinedFunctions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetUserDefinedFunctions x -> GetUserDefinedFunctions
$cfrom :: forall x. GetUserDefinedFunctions -> Rep GetUserDefinedFunctions x
Prelude.Generic)

-- |
-- Create a value of 'GetUserDefinedFunctions' 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:
--
-- 'catalogId', 'getUserDefinedFunctions_catalogId' - The ID of the Data Catalog where the functions to be retrieved are
-- located. If none is provided, the Amazon Web Services account ID is used
-- by default.
--
-- 'databaseName', 'getUserDefinedFunctions_databaseName' - The name of the catalog database where the functions are located. If
-- none is provided, functions from all the databases across the catalog
-- will be returned.
--
-- 'maxResults', 'getUserDefinedFunctions_maxResults' - The maximum number of functions to return in one response.
--
-- 'nextToken', 'getUserDefinedFunctions_nextToken' - A continuation token, if this is a continuation call.
--
-- 'pattern'', 'getUserDefinedFunctions_pattern' - An optional function-name pattern string that filters the function
-- definitions returned.
newGetUserDefinedFunctions ::
  -- | 'pattern''
  Prelude.Text ->
  GetUserDefinedFunctions
newGetUserDefinedFunctions :: Text -> GetUserDefinedFunctions
newGetUserDefinedFunctions Text
pPattern_ =
  GetUserDefinedFunctions'
    { $sel:catalogId:GetUserDefinedFunctions' :: Maybe Text
catalogId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:GetUserDefinedFunctions' :: Maybe Text
databaseName = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:GetUserDefinedFunctions' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:GetUserDefinedFunctions' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
      $sel:pattern':GetUserDefinedFunctions' :: Text
pattern' = Text
pPattern_
    }

-- | The ID of the Data Catalog where the functions to be retrieved are
-- located. If none is provided, the Amazon Web Services account ID is used
-- by default.
getUserDefinedFunctions_catalogId :: Lens.Lens' GetUserDefinedFunctions (Prelude.Maybe Prelude.Text)
getUserDefinedFunctions_catalogId :: Lens' GetUserDefinedFunctions (Maybe Text)
getUserDefinedFunctions_catalogId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctions' {Maybe Text
catalogId :: Maybe Text
$sel:catalogId:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
catalogId} -> Maybe Text
catalogId) (\s :: GetUserDefinedFunctions
s@GetUserDefinedFunctions' {} Maybe Text
a -> GetUserDefinedFunctions
s {$sel:catalogId:GetUserDefinedFunctions' :: Maybe Text
catalogId = Maybe Text
a} :: GetUserDefinedFunctions)

-- | The name of the catalog database where the functions are located. If
-- none is provided, functions from all the databases across the catalog
-- will be returned.
getUserDefinedFunctions_databaseName :: Lens.Lens' GetUserDefinedFunctions (Prelude.Maybe Prelude.Text)
getUserDefinedFunctions_databaseName :: Lens' GetUserDefinedFunctions (Maybe Text)
getUserDefinedFunctions_databaseName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctions' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: GetUserDefinedFunctions
s@GetUserDefinedFunctions' {} Maybe Text
a -> GetUserDefinedFunctions
s {$sel:databaseName:GetUserDefinedFunctions' :: Maybe Text
databaseName = Maybe Text
a} :: GetUserDefinedFunctions)

-- | The maximum number of functions to return in one response.
getUserDefinedFunctions_maxResults :: Lens.Lens' GetUserDefinedFunctions (Prelude.Maybe Prelude.Natural)
getUserDefinedFunctions_maxResults :: Lens' GetUserDefinedFunctions (Maybe Natural)
getUserDefinedFunctions_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctions' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: GetUserDefinedFunctions
s@GetUserDefinedFunctions' {} Maybe Natural
a -> GetUserDefinedFunctions
s {$sel:maxResults:GetUserDefinedFunctions' :: Maybe Natural
maxResults = Maybe Natural
a} :: GetUserDefinedFunctions)

-- | A continuation token, if this is a continuation call.
getUserDefinedFunctions_nextToken :: Lens.Lens' GetUserDefinedFunctions (Prelude.Maybe Prelude.Text)
getUserDefinedFunctions_nextToken :: Lens' GetUserDefinedFunctions (Maybe Text)
getUserDefinedFunctions_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctions' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetUserDefinedFunctions
s@GetUserDefinedFunctions' {} Maybe Text
a -> GetUserDefinedFunctions
s {$sel:nextToken:GetUserDefinedFunctions' :: Maybe Text
nextToken = Maybe Text
a} :: GetUserDefinedFunctions)

-- | An optional function-name pattern string that filters the function
-- definitions returned.
getUserDefinedFunctions_pattern :: Lens.Lens' GetUserDefinedFunctions Prelude.Text
getUserDefinedFunctions_pattern :: Lens' GetUserDefinedFunctions Text
getUserDefinedFunctions_pattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctions' {Text
pattern' :: Text
$sel:pattern':GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Text
pattern'} -> Text
pattern') (\s :: GetUserDefinedFunctions
s@GetUserDefinedFunctions' {} Text
a -> GetUserDefinedFunctions
s {$sel:pattern':GetUserDefinedFunctions' :: Text
pattern' = Text
a} :: GetUserDefinedFunctions)

instance Core.AWSPager GetUserDefinedFunctions where
  page :: GetUserDefinedFunctions
-> AWSResponse GetUserDefinedFunctions
-> Maybe GetUserDefinedFunctions
page GetUserDefinedFunctions
rq AWSResponse GetUserDefinedFunctions
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse GetUserDefinedFunctions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetUserDefinedFunctionsResponse (Maybe Text)
getUserDefinedFunctionsResponse_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 GetUserDefinedFunctions
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetUserDefinedFunctionsResponse (Maybe [UserDefinedFunction])
getUserDefinedFunctionsResponse_userDefinedFunctions
            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.$ GetUserDefinedFunctions
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' GetUserDefinedFunctions (Maybe Text)
getUserDefinedFunctions_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse GetUserDefinedFunctions
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' GetUserDefinedFunctionsResponse (Maybe Text)
getUserDefinedFunctionsResponse_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 GetUserDefinedFunctions where
  type
    AWSResponse GetUserDefinedFunctions =
      GetUserDefinedFunctionsResponse
  request :: (Service -> Service)
-> GetUserDefinedFunctions -> Request GetUserDefinedFunctions
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 GetUserDefinedFunctions
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetUserDefinedFunctions)))
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 [UserDefinedFunction]
-> Int
-> GetUserDefinedFunctionsResponse
GetUserDefinedFunctionsResponse'
            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
"UserDefinedFunctions"
                            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 GetUserDefinedFunctions where
  hashWithSalt :: Int -> GetUserDefinedFunctions -> Int
hashWithSalt Int
_salt GetUserDefinedFunctions' {Maybe Natural
Maybe Text
Text
pattern' :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
databaseName :: Maybe Text
catalogId :: Maybe Text
$sel:pattern':GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Text
$sel:nextToken:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:maxResults:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Natural
$sel:databaseName:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:catalogId:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
catalogId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
databaseName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
pattern'

instance Prelude.NFData GetUserDefinedFunctions where
  rnf :: GetUserDefinedFunctions -> ()
rnf GetUserDefinedFunctions' {Maybe Natural
Maybe Text
Text
pattern' :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
databaseName :: Maybe Text
catalogId :: Maybe Text
$sel:pattern':GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Text
$sel:nextToken:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:maxResults:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Natural
$sel:databaseName:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:catalogId:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
catalogId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
databaseName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
pattern'

instance Data.ToHeaders GetUserDefinedFunctions where
  toHeaders :: GetUserDefinedFunctions -> 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
"AWSGlue.GetUserDefinedFunctions" ::
                          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 GetUserDefinedFunctions where
  toJSON :: GetUserDefinedFunctions -> Value
toJSON GetUserDefinedFunctions' {Maybe Natural
Maybe Text
Text
pattern' :: Text
nextToken :: Maybe Text
maxResults :: Maybe Natural
databaseName :: Maybe Text
catalogId :: Maybe Text
$sel:pattern':GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Text
$sel:nextToken:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:maxResults:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Natural
$sel:databaseName:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
$sel:catalogId:GetUserDefinedFunctions' :: GetUserDefinedFunctions -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CatalogId" 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
catalogId,
            (Key
"DatabaseName" 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
databaseName,
            (Key
"MaxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"NextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            forall a. a -> Maybe a
Prelude.Just (Key
"Pattern" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
pattern')
          ]
      )

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

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

-- | /See:/ 'newGetUserDefinedFunctionsResponse' smart constructor.
data GetUserDefinedFunctionsResponse = GetUserDefinedFunctionsResponse'
  { -- | A continuation token, if the list of functions returned does not include
    -- the last requested function.
    GetUserDefinedFunctionsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | A list of requested function definitions.
    GetUserDefinedFunctionsResponse -> Maybe [UserDefinedFunction]
userDefinedFunctions :: Prelude.Maybe [UserDefinedFunction],
    -- | The response's http status code.
    GetUserDefinedFunctionsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetUserDefinedFunctionsResponse
-> GetUserDefinedFunctionsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetUserDefinedFunctionsResponse
-> GetUserDefinedFunctionsResponse -> Bool
$c/= :: GetUserDefinedFunctionsResponse
-> GetUserDefinedFunctionsResponse -> Bool
== :: GetUserDefinedFunctionsResponse
-> GetUserDefinedFunctionsResponse -> Bool
$c== :: GetUserDefinedFunctionsResponse
-> GetUserDefinedFunctionsResponse -> Bool
Prelude.Eq, ReadPrec [GetUserDefinedFunctionsResponse]
ReadPrec GetUserDefinedFunctionsResponse
Int -> ReadS GetUserDefinedFunctionsResponse
ReadS [GetUserDefinedFunctionsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetUserDefinedFunctionsResponse]
$creadListPrec :: ReadPrec [GetUserDefinedFunctionsResponse]
readPrec :: ReadPrec GetUserDefinedFunctionsResponse
$creadPrec :: ReadPrec GetUserDefinedFunctionsResponse
readList :: ReadS [GetUserDefinedFunctionsResponse]
$creadList :: ReadS [GetUserDefinedFunctionsResponse]
readsPrec :: Int -> ReadS GetUserDefinedFunctionsResponse
$creadsPrec :: Int -> ReadS GetUserDefinedFunctionsResponse
Prelude.Read, Int -> GetUserDefinedFunctionsResponse -> ShowS
[GetUserDefinedFunctionsResponse] -> ShowS
GetUserDefinedFunctionsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetUserDefinedFunctionsResponse] -> ShowS
$cshowList :: [GetUserDefinedFunctionsResponse] -> ShowS
show :: GetUserDefinedFunctionsResponse -> String
$cshow :: GetUserDefinedFunctionsResponse -> String
showsPrec :: Int -> GetUserDefinedFunctionsResponse -> ShowS
$cshowsPrec :: Int -> GetUserDefinedFunctionsResponse -> ShowS
Prelude.Show, forall x.
Rep GetUserDefinedFunctionsResponse x
-> GetUserDefinedFunctionsResponse
forall x.
GetUserDefinedFunctionsResponse
-> Rep GetUserDefinedFunctionsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetUserDefinedFunctionsResponse x
-> GetUserDefinedFunctionsResponse
$cfrom :: forall x.
GetUserDefinedFunctionsResponse
-> Rep GetUserDefinedFunctionsResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetUserDefinedFunctionsResponse' 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', 'getUserDefinedFunctionsResponse_nextToken' - A continuation token, if the list of functions returned does not include
-- the last requested function.
--
-- 'userDefinedFunctions', 'getUserDefinedFunctionsResponse_userDefinedFunctions' - A list of requested function definitions.
--
-- 'httpStatus', 'getUserDefinedFunctionsResponse_httpStatus' - The response's http status code.
newGetUserDefinedFunctionsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetUserDefinedFunctionsResponse
newGetUserDefinedFunctionsResponse :: Int -> GetUserDefinedFunctionsResponse
newGetUserDefinedFunctionsResponse Int
pHttpStatus_ =
  GetUserDefinedFunctionsResponse'
    { $sel:nextToken:GetUserDefinedFunctionsResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:userDefinedFunctions:GetUserDefinedFunctionsResponse' :: Maybe [UserDefinedFunction]
userDefinedFunctions = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetUserDefinedFunctionsResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A continuation token, if the list of functions returned does not include
-- the last requested function.
getUserDefinedFunctionsResponse_nextToken :: Lens.Lens' GetUserDefinedFunctionsResponse (Prelude.Maybe Prelude.Text)
getUserDefinedFunctionsResponse_nextToken :: Lens' GetUserDefinedFunctionsResponse (Maybe Text)
getUserDefinedFunctionsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctionsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetUserDefinedFunctionsResponse' :: GetUserDefinedFunctionsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetUserDefinedFunctionsResponse
s@GetUserDefinedFunctionsResponse' {} Maybe Text
a -> GetUserDefinedFunctionsResponse
s {$sel:nextToken:GetUserDefinedFunctionsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetUserDefinedFunctionsResponse)

-- | A list of requested function definitions.
getUserDefinedFunctionsResponse_userDefinedFunctions :: Lens.Lens' GetUserDefinedFunctionsResponse (Prelude.Maybe [UserDefinedFunction])
getUserDefinedFunctionsResponse_userDefinedFunctions :: Lens' GetUserDefinedFunctionsResponse (Maybe [UserDefinedFunction])
getUserDefinedFunctionsResponse_userDefinedFunctions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctionsResponse' {Maybe [UserDefinedFunction]
userDefinedFunctions :: Maybe [UserDefinedFunction]
$sel:userDefinedFunctions:GetUserDefinedFunctionsResponse' :: GetUserDefinedFunctionsResponse -> Maybe [UserDefinedFunction]
userDefinedFunctions} -> Maybe [UserDefinedFunction]
userDefinedFunctions) (\s :: GetUserDefinedFunctionsResponse
s@GetUserDefinedFunctionsResponse' {} Maybe [UserDefinedFunction]
a -> GetUserDefinedFunctionsResponse
s {$sel:userDefinedFunctions:GetUserDefinedFunctionsResponse' :: Maybe [UserDefinedFunction]
userDefinedFunctions = Maybe [UserDefinedFunction]
a} :: GetUserDefinedFunctionsResponse) 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.
getUserDefinedFunctionsResponse_httpStatus :: Lens.Lens' GetUserDefinedFunctionsResponse Prelude.Int
getUserDefinedFunctionsResponse_httpStatus :: Lens' GetUserDefinedFunctionsResponse Int
getUserDefinedFunctionsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetUserDefinedFunctionsResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetUserDefinedFunctionsResponse' :: GetUserDefinedFunctionsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetUserDefinedFunctionsResponse
s@GetUserDefinedFunctionsResponse' {} Int
a -> GetUserDefinedFunctionsResponse
s {$sel:httpStatus:GetUserDefinedFunctionsResponse' :: Int
httpStatus = Int
a} :: GetUserDefinedFunctionsResponse)

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