{-# 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.AmplifyBackend.GetBackendAPI
-- 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 the details for a backend API.
module Amazonka.AmplifyBackend.GetBackendAPI
  ( -- * Creating a Request
    GetBackendAPI (..),
    newGetBackendAPI,

    -- * Request Lenses
    getBackendAPI_resourceConfig,
    getBackendAPI_appId,
    getBackendAPI_backendEnvironmentName,
    getBackendAPI_resourceName,

    -- * Destructuring the Response
    GetBackendAPIResponse (..),
    newGetBackendAPIResponse,

    -- * Response Lenses
    getBackendAPIResponse_appId,
    getBackendAPIResponse_backendEnvironmentName,
    getBackendAPIResponse_error,
    getBackendAPIResponse_resourceConfig,
    getBackendAPIResponse_resourceName,
    getBackendAPIResponse_httpStatus,
  )
where

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

-- | The request body for GetBackendAPI.
--
-- /See:/ 'newGetBackendAPI' smart constructor.
data GetBackendAPI = GetBackendAPI'
  { -- | Defines the resource configuration for the data model in your Amplify
    -- project.
    GetBackendAPI -> Maybe BackendAPIResourceConfig
resourceConfig :: Prelude.Maybe BackendAPIResourceConfig,
    -- | The app ID.
    GetBackendAPI -> Text
appId :: Prelude.Text,
    -- | The name of the backend environment.
    GetBackendAPI -> Text
backendEnvironmentName :: Prelude.Text,
    -- | The name of this resource.
    GetBackendAPI -> Text
resourceName :: Prelude.Text
  }
  deriving (GetBackendAPI -> GetBackendAPI -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBackendAPI -> GetBackendAPI -> Bool
$c/= :: GetBackendAPI -> GetBackendAPI -> Bool
== :: GetBackendAPI -> GetBackendAPI -> Bool
$c== :: GetBackendAPI -> GetBackendAPI -> Bool
Prelude.Eq, ReadPrec [GetBackendAPI]
ReadPrec GetBackendAPI
Int -> ReadS GetBackendAPI
ReadS [GetBackendAPI]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBackendAPI]
$creadListPrec :: ReadPrec [GetBackendAPI]
readPrec :: ReadPrec GetBackendAPI
$creadPrec :: ReadPrec GetBackendAPI
readList :: ReadS [GetBackendAPI]
$creadList :: ReadS [GetBackendAPI]
readsPrec :: Int -> ReadS GetBackendAPI
$creadsPrec :: Int -> ReadS GetBackendAPI
Prelude.Read, Int -> GetBackendAPI -> ShowS
[GetBackendAPI] -> ShowS
GetBackendAPI -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBackendAPI] -> ShowS
$cshowList :: [GetBackendAPI] -> ShowS
show :: GetBackendAPI -> String
$cshow :: GetBackendAPI -> String
showsPrec :: Int -> GetBackendAPI -> ShowS
$cshowsPrec :: Int -> GetBackendAPI -> ShowS
Prelude.Show, forall x. Rep GetBackendAPI x -> GetBackendAPI
forall x. GetBackendAPI -> Rep GetBackendAPI x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBackendAPI x -> GetBackendAPI
$cfrom :: forall x. GetBackendAPI -> Rep GetBackendAPI x
Prelude.Generic)

-- |
-- Create a value of 'GetBackendAPI' 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:
--
-- 'resourceConfig', 'getBackendAPI_resourceConfig' - Defines the resource configuration for the data model in your Amplify
-- project.
--
-- 'appId', 'getBackendAPI_appId' - The app ID.
--
-- 'backendEnvironmentName', 'getBackendAPI_backendEnvironmentName' - The name of the backend environment.
--
-- 'resourceName', 'getBackendAPI_resourceName' - The name of this resource.
newGetBackendAPI ::
  -- | 'appId'
  Prelude.Text ->
  -- | 'backendEnvironmentName'
  Prelude.Text ->
  -- | 'resourceName'
  Prelude.Text ->
  GetBackendAPI
newGetBackendAPI :: Text -> Text -> Text -> GetBackendAPI
newGetBackendAPI
  Text
pAppId_
  Text
pBackendEnvironmentName_
  Text
pResourceName_ =
    GetBackendAPI'
      { $sel:resourceConfig:GetBackendAPI' :: Maybe BackendAPIResourceConfig
resourceConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:appId:GetBackendAPI' :: Text
appId = Text
pAppId_,
        $sel:backendEnvironmentName:GetBackendAPI' :: Text
backendEnvironmentName = Text
pBackendEnvironmentName_,
        $sel:resourceName:GetBackendAPI' :: Text
resourceName = Text
pResourceName_
      }

-- | Defines the resource configuration for the data model in your Amplify
-- project.
getBackendAPI_resourceConfig :: Lens.Lens' GetBackendAPI (Prelude.Maybe BackendAPIResourceConfig)
getBackendAPI_resourceConfig :: Lens' GetBackendAPI (Maybe BackendAPIResourceConfig)
getBackendAPI_resourceConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPI' {Maybe BackendAPIResourceConfig
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceConfig:GetBackendAPI' :: GetBackendAPI -> Maybe BackendAPIResourceConfig
resourceConfig} -> Maybe BackendAPIResourceConfig
resourceConfig) (\s :: GetBackendAPI
s@GetBackendAPI' {} Maybe BackendAPIResourceConfig
a -> GetBackendAPI
s {$sel:resourceConfig:GetBackendAPI' :: Maybe BackendAPIResourceConfig
resourceConfig = Maybe BackendAPIResourceConfig
a} :: GetBackendAPI)

-- | The app ID.
getBackendAPI_appId :: Lens.Lens' GetBackendAPI Prelude.Text
getBackendAPI_appId :: Lens' GetBackendAPI Text
getBackendAPI_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPI' {Text
appId :: Text
$sel:appId:GetBackendAPI' :: GetBackendAPI -> Text
appId} -> Text
appId) (\s :: GetBackendAPI
s@GetBackendAPI' {} Text
a -> GetBackendAPI
s {$sel:appId:GetBackendAPI' :: Text
appId = Text
a} :: GetBackendAPI)

-- | The name of the backend environment.
getBackendAPI_backendEnvironmentName :: Lens.Lens' GetBackendAPI Prelude.Text
getBackendAPI_backendEnvironmentName :: Lens' GetBackendAPI Text
getBackendAPI_backendEnvironmentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPI' {Text
backendEnvironmentName :: Text
$sel:backendEnvironmentName:GetBackendAPI' :: GetBackendAPI -> Text
backendEnvironmentName} -> Text
backendEnvironmentName) (\s :: GetBackendAPI
s@GetBackendAPI' {} Text
a -> GetBackendAPI
s {$sel:backendEnvironmentName:GetBackendAPI' :: Text
backendEnvironmentName = Text
a} :: GetBackendAPI)

-- | The name of this resource.
getBackendAPI_resourceName :: Lens.Lens' GetBackendAPI Prelude.Text
getBackendAPI_resourceName :: Lens' GetBackendAPI Text
getBackendAPI_resourceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPI' {Text
resourceName :: Text
$sel:resourceName:GetBackendAPI' :: GetBackendAPI -> Text
resourceName} -> Text
resourceName) (\s :: GetBackendAPI
s@GetBackendAPI' {} Text
a -> GetBackendAPI
s {$sel:resourceName:GetBackendAPI' :: Text
resourceName = Text
a} :: GetBackendAPI)

instance Core.AWSRequest GetBackendAPI where
  type
    AWSResponse GetBackendAPI =
      GetBackendAPIResponse
  request :: (Service -> Service) -> GetBackendAPI -> Request GetBackendAPI
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 GetBackendAPI
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetBackendAPI)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe BackendAPIResourceConfig
-> Maybe Text
-> Int
-> GetBackendAPIResponse
GetBackendAPIResponse'
            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
"appId")
            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
"backendEnvironmentName")
            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
"error")
            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
"resourceConfig")
            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
"resourceName")
            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 GetBackendAPI where
  hashWithSalt :: Int -> GetBackendAPI -> Int
hashWithSalt Int
_salt GetBackendAPI' {Maybe BackendAPIResourceConfig
Text
resourceName :: Text
backendEnvironmentName :: Text
appId :: Text
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:backendEnvironmentName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:appId:GetBackendAPI' :: GetBackendAPI -> Text
$sel:resourceConfig:GetBackendAPI' :: GetBackendAPI -> Maybe BackendAPIResourceConfig
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BackendAPIResourceConfig
resourceConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
appId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
backendEnvironmentName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceName

instance Prelude.NFData GetBackendAPI where
  rnf :: GetBackendAPI -> ()
rnf GetBackendAPI' {Maybe BackendAPIResourceConfig
Text
resourceName :: Text
backendEnvironmentName :: Text
appId :: Text
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:backendEnvironmentName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:appId:GetBackendAPI' :: GetBackendAPI -> Text
$sel:resourceConfig:GetBackendAPI' :: GetBackendAPI -> Maybe BackendAPIResourceConfig
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe BackendAPIResourceConfig
resourceConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
appId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
backendEnvironmentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
resourceName

instance Data.ToHeaders GetBackendAPI where
  toHeaders :: GetBackendAPI -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON GetBackendAPI where
  toJSON :: GetBackendAPI -> Value
toJSON GetBackendAPI' {Maybe BackendAPIResourceConfig
Text
resourceName :: Text
backendEnvironmentName :: Text
appId :: Text
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:backendEnvironmentName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:appId:GetBackendAPI' :: GetBackendAPI -> Text
$sel:resourceConfig:GetBackendAPI' :: GetBackendAPI -> Maybe BackendAPIResourceConfig
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"resourceConfig" 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 BackendAPIResourceConfig
resourceConfig,
            forall a. a -> Maybe a
Prelude.Just (Key
"resourceName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceName)
          ]
      )

instance Data.ToPath GetBackendAPI where
  toPath :: GetBackendAPI -> ByteString
toPath GetBackendAPI' {Maybe BackendAPIResourceConfig
Text
resourceName :: Text
backendEnvironmentName :: Text
appId :: Text
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:backendEnvironmentName:GetBackendAPI' :: GetBackendAPI -> Text
$sel:appId:GetBackendAPI' :: GetBackendAPI -> Text
$sel:resourceConfig:GetBackendAPI' :: GetBackendAPI -> Maybe BackendAPIResourceConfig
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/backend/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
appId,
        ByteString
"/api/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
backendEnvironmentName,
        ByteString
"/details"
      ]

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

-- | /See:/ 'newGetBackendAPIResponse' smart constructor.
data GetBackendAPIResponse = GetBackendAPIResponse'
  { -- | The app ID.
    GetBackendAPIResponse -> Maybe Text
appId :: Prelude.Maybe Prelude.Text,
    -- | The name of the backend environment.
    GetBackendAPIResponse -> Maybe Text
backendEnvironmentName :: Prelude.Maybe Prelude.Text,
    -- | If the request fails, this error is returned.
    GetBackendAPIResponse -> Maybe Text
error :: Prelude.Maybe Prelude.Text,
    -- | The resource configuration for this response object.
    GetBackendAPIResponse -> Maybe BackendAPIResourceConfig
resourceConfig :: Prelude.Maybe BackendAPIResourceConfig,
    -- | The name of this resource.
    GetBackendAPIResponse -> Maybe Text
resourceName :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetBackendAPIResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetBackendAPIResponse -> GetBackendAPIResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBackendAPIResponse -> GetBackendAPIResponse -> Bool
$c/= :: GetBackendAPIResponse -> GetBackendAPIResponse -> Bool
== :: GetBackendAPIResponse -> GetBackendAPIResponse -> Bool
$c== :: GetBackendAPIResponse -> GetBackendAPIResponse -> Bool
Prelude.Eq, ReadPrec [GetBackendAPIResponse]
ReadPrec GetBackendAPIResponse
Int -> ReadS GetBackendAPIResponse
ReadS [GetBackendAPIResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBackendAPIResponse]
$creadListPrec :: ReadPrec [GetBackendAPIResponse]
readPrec :: ReadPrec GetBackendAPIResponse
$creadPrec :: ReadPrec GetBackendAPIResponse
readList :: ReadS [GetBackendAPIResponse]
$creadList :: ReadS [GetBackendAPIResponse]
readsPrec :: Int -> ReadS GetBackendAPIResponse
$creadsPrec :: Int -> ReadS GetBackendAPIResponse
Prelude.Read, Int -> GetBackendAPIResponse -> ShowS
[GetBackendAPIResponse] -> ShowS
GetBackendAPIResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBackendAPIResponse] -> ShowS
$cshowList :: [GetBackendAPIResponse] -> ShowS
show :: GetBackendAPIResponse -> String
$cshow :: GetBackendAPIResponse -> String
showsPrec :: Int -> GetBackendAPIResponse -> ShowS
$cshowsPrec :: Int -> GetBackendAPIResponse -> ShowS
Prelude.Show, forall x. Rep GetBackendAPIResponse x -> GetBackendAPIResponse
forall x. GetBackendAPIResponse -> Rep GetBackendAPIResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBackendAPIResponse x -> GetBackendAPIResponse
$cfrom :: forall x. GetBackendAPIResponse -> Rep GetBackendAPIResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetBackendAPIResponse' 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:
--
-- 'appId', 'getBackendAPIResponse_appId' - The app ID.
--
-- 'backendEnvironmentName', 'getBackendAPIResponse_backendEnvironmentName' - The name of the backend environment.
--
-- 'error', 'getBackendAPIResponse_error' - If the request fails, this error is returned.
--
-- 'resourceConfig', 'getBackendAPIResponse_resourceConfig' - The resource configuration for this response object.
--
-- 'resourceName', 'getBackendAPIResponse_resourceName' - The name of this resource.
--
-- 'httpStatus', 'getBackendAPIResponse_httpStatus' - The response's http status code.
newGetBackendAPIResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetBackendAPIResponse
newGetBackendAPIResponse :: Int -> GetBackendAPIResponse
newGetBackendAPIResponse Int
pHttpStatus_ =
  GetBackendAPIResponse'
    { $sel:appId:GetBackendAPIResponse' :: Maybe Text
appId = forall a. Maybe a
Prelude.Nothing,
      $sel:backendEnvironmentName:GetBackendAPIResponse' :: Maybe Text
backendEnvironmentName = forall a. Maybe a
Prelude.Nothing,
      $sel:error:GetBackendAPIResponse' :: Maybe Text
error = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceConfig:GetBackendAPIResponse' :: Maybe BackendAPIResourceConfig
resourceConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceName:GetBackendAPIResponse' :: Maybe Text
resourceName = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetBackendAPIResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The app ID.
getBackendAPIResponse_appId :: Lens.Lens' GetBackendAPIResponse (Prelude.Maybe Prelude.Text)
getBackendAPIResponse_appId :: Lens' GetBackendAPIResponse (Maybe Text)
getBackendAPIResponse_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPIResponse' {Maybe Text
appId :: Maybe Text
$sel:appId:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
appId} -> Maybe Text
appId) (\s :: GetBackendAPIResponse
s@GetBackendAPIResponse' {} Maybe Text
a -> GetBackendAPIResponse
s {$sel:appId:GetBackendAPIResponse' :: Maybe Text
appId = Maybe Text
a} :: GetBackendAPIResponse)

-- | The name of the backend environment.
getBackendAPIResponse_backendEnvironmentName :: Lens.Lens' GetBackendAPIResponse (Prelude.Maybe Prelude.Text)
getBackendAPIResponse_backendEnvironmentName :: Lens' GetBackendAPIResponse (Maybe Text)
getBackendAPIResponse_backendEnvironmentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPIResponse' {Maybe Text
backendEnvironmentName :: Maybe Text
$sel:backendEnvironmentName:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
backendEnvironmentName} -> Maybe Text
backendEnvironmentName) (\s :: GetBackendAPIResponse
s@GetBackendAPIResponse' {} Maybe Text
a -> GetBackendAPIResponse
s {$sel:backendEnvironmentName:GetBackendAPIResponse' :: Maybe Text
backendEnvironmentName = Maybe Text
a} :: GetBackendAPIResponse)

-- | If the request fails, this error is returned.
getBackendAPIResponse_error :: Lens.Lens' GetBackendAPIResponse (Prelude.Maybe Prelude.Text)
getBackendAPIResponse_error :: Lens' GetBackendAPIResponse (Maybe Text)
getBackendAPIResponse_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPIResponse' {Maybe Text
error :: Maybe Text
$sel:error:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
error} -> Maybe Text
error) (\s :: GetBackendAPIResponse
s@GetBackendAPIResponse' {} Maybe Text
a -> GetBackendAPIResponse
s {$sel:error:GetBackendAPIResponse' :: Maybe Text
error = Maybe Text
a} :: GetBackendAPIResponse)

-- | The resource configuration for this response object.
getBackendAPIResponse_resourceConfig :: Lens.Lens' GetBackendAPIResponse (Prelude.Maybe BackendAPIResourceConfig)
getBackendAPIResponse_resourceConfig :: Lens' GetBackendAPIResponse (Maybe BackendAPIResourceConfig)
getBackendAPIResponse_resourceConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPIResponse' {Maybe BackendAPIResourceConfig
resourceConfig :: Maybe BackendAPIResourceConfig
$sel:resourceConfig:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe BackendAPIResourceConfig
resourceConfig} -> Maybe BackendAPIResourceConfig
resourceConfig) (\s :: GetBackendAPIResponse
s@GetBackendAPIResponse' {} Maybe BackendAPIResourceConfig
a -> GetBackendAPIResponse
s {$sel:resourceConfig:GetBackendAPIResponse' :: Maybe BackendAPIResourceConfig
resourceConfig = Maybe BackendAPIResourceConfig
a} :: GetBackendAPIResponse)

-- | The name of this resource.
getBackendAPIResponse_resourceName :: Lens.Lens' GetBackendAPIResponse (Prelude.Maybe Prelude.Text)
getBackendAPIResponse_resourceName :: Lens' GetBackendAPIResponse (Maybe Text)
getBackendAPIResponse_resourceName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBackendAPIResponse' {Maybe Text
resourceName :: Maybe Text
$sel:resourceName:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
resourceName} -> Maybe Text
resourceName) (\s :: GetBackendAPIResponse
s@GetBackendAPIResponse' {} Maybe Text
a -> GetBackendAPIResponse
s {$sel:resourceName:GetBackendAPIResponse' :: Maybe Text
resourceName = Maybe Text
a} :: GetBackendAPIResponse)

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

instance Prelude.NFData GetBackendAPIResponse where
  rnf :: GetBackendAPIResponse -> ()
rnf GetBackendAPIResponse' {Int
Maybe Text
Maybe BackendAPIResourceConfig
httpStatus :: Int
resourceName :: Maybe Text
resourceConfig :: Maybe BackendAPIResourceConfig
error :: Maybe Text
backendEnvironmentName :: Maybe Text
appId :: Maybe Text
$sel:httpStatus:GetBackendAPIResponse' :: GetBackendAPIResponse -> Int
$sel:resourceName:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
$sel:resourceConfig:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe BackendAPIResourceConfig
$sel:error:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
$sel:backendEnvironmentName:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
$sel:appId:GetBackendAPIResponse' :: GetBackendAPIResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
backendEnvironmentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BackendAPIResourceConfig
resourceConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus