amazonka-amplifybackend-2.0: gen/Amazonka/AmplifyBackend/GetBackendAPIModels.hs
{-# 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.GetBackendAPIModels
-- 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 model introspection schema for an existing backend API resource.
module Amazonka.AmplifyBackend.GetBackendAPIModels
( -- * Creating a Request
GetBackendAPIModels (..),
newGetBackendAPIModels,
-- * Request Lenses
getBackendAPIModels_appId,
getBackendAPIModels_backendEnvironmentName,
getBackendAPIModels_resourceName,
-- * Destructuring the Response
GetBackendAPIModelsResponse (..),
newGetBackendAPIModelsResponse,
-- * Response Lenses
getBackendAPIModelsResponse_modelIntrospectionSchema,
getBackendAPIModelsResponse_models,
getBackendAPIModelsResponse_status,
getBackendAPIModelsResponse_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 GetBackendAPIModels.
--
-- /See:/ 'newGetBackendAPIModels' smart constructor.
data GetBackendAPIModels = GetBackendAPIModels'
{ -- | The app ID.
appId :: Prelude.Text,
-- | The name of the backend environment.
backendEnvironmentName :: Prelude.Text,
-- | The name of this resource.
resourceName :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetBackendAPIModels' 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', 'getBackendAPIModels_appId' - The app ID.
--
-- 'backendEnvironmentName', 'getBackendAPIModels_backendEnvironmentName' - The name of the backend environment.
--
-- 'resourceName', 'getBackendAPIModels_resourceName' - The name of this resource.
newGetBackendAPIModels ::
-- | 'appId'
Prelude.Text ->
-- | 'backendEnvironmentName'
Prelude.Text ->
-- | 'resourceName'
Prelude.Text ->
GetBackendAPIModels
newGetBackendAPIModels
pAppId_
pBackendEnvironmentName_
pResourceName_ =
GetBackendAPIModels'
{ appId = pAppId_,
backendEnvironmentName = pBackendEnvironmentName_,
resourceName = pResourceName_
}
-- | The app ID.
getBackendAPIModels_appId :: Lens.Lens' GetBackendAPIModels Prelude.Text
getBackendAPIModels_appId = Lens.lens (\GetBackendAPIModels' {appId} -> appId) (\s@GetBackendAPIModels' {} a -> s {appId = a} :: GetBackendAPIModels)
-- | The name of the backend environment.
getBackendAPIModels_backendEnvironmentName :: Lens.Lens' GetBackendAPIModels Prelude.Text
getBackendAPIModels_backendEnvironmentName = Lens.lens (\GetBackendAPIModels' {backendEnvironmentName} -> backendEnvironmentName) (\s@GetBackendAPIModels' {} a -> s {backendEnvironmentName = a} :: GetBackendAPIModels)
-- | The name of this resource.
getBackendAPIModels_resourceName :: Lens.Lens' GetBackendAPIModels Prelude.Text
getBackendAPIModels_resourceName = Lens.lens (\GetBackendAPIModels' {resourceName} -> resourceName) (\s@GetBackendAPIModels' {} a -> s {resourceName = a} :: GetBackendAPIModels)
instance Core.AWSRequest GetBackendAPIModels where
type
AWSResponse GetBackendAPIModels =
GetBackendAPIModelsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
GetBackendAPIModelsResponse'
Prelude.<$> (x Data..?> "modelIntrospectionSchema")
Prelude.<*> (x Data..?> "models")
Prelude.<*> (x Data..?> "status")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable GetBackendAPIModels where
hashWithSalt _salt GetBackendAPIModels' {..} =
_salt
`Prelude.hashWithSalt` appId
`Prelude.hashWithSalt` backendEnvironmentName
`Prelude.hashWithSalt` resourceName
instance Prelude.NFData GetBackendAPIModels where
rnf GetBackendAPIModels' {..} =
Prelude.rnf appId
`Prelude.seq` Prelude.rnf backendEnvironmentName
`Prelude.seq` Prelude.rnf resourceName
instance Data.ToHeaders GetBackendAPIModels where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetBackendAPIModels where
toJSON GetBackendAPIModels' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("resourceName" Data..= resourceName)]
)
instance Data.ToPath GetBackendAPIModels where
toPath GetBackendAPIModels' {..} =
Prelude.mconcat
[ "/backend/",
Data.toBS appId,
"/api/",
Data.toBS backendEnvironmentName,
"/getModels"
]
instance Data.ToQuery GetBackendAPIModels where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newGetBackendAPIModelsResponse' smart constructor.
data GetBackendAPIModelsResponse = GetBackendAPIModelsResponse'
{ -- | Stringified JSON of the model introspection schema for an existing
-- backend API resource.
modelIntrospectionSchema :: Prelude.Maybe Prelude.Text,
-- | Stringified JSON of the datastore model.
models :: Prelude.Maybe Prelude.Text,
-- | The current status of the request.
status :: Prelude.Maybe Status,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'GetBackendAPIModelsResponse' 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:
--
-- 'modelIntrospectionSchema', 'getBackendAPIModelsResponse_modelIntrospectionSchema' - Stringified JSON of the model introspection schema for an existing
-- backend API resource.
--
-- 'models', 'getBackendAPIModelsResponse_models' - Stringified JSON of the datastore model.
--
-- 'status', 'getBackendAPIModelsResponse_status' - The current status of the request.
--
-- 'httpStatus', 'getBackendAPIModelsResponse_httpStatus' - The response's http status code.
newGetBackendAPIModelsResponse ::
-- | 'httpStatus'
Prelude.Int ->
GetBackendAPIModelsResponse
newGetBackendAPIModelsResponse pHttpStatus_ =
GetBackendAPIModelsResponse'
{ modelIntrospectionSchema =
Prelude.Nothing,
models = Prelude.Nothing,
status = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Stringified JSON of the model introspection schema for an existing
-- backend API resource.
getBackendAPIModelsResponse_modelIntrospectionSchema :: Lens.Lens' GetBackendAPIModelsResponse (Prelude.Maybe Prelude.Text)
getBackendAPIModelsResponse_modelIntrospectionSchema = Lens.lens (\GetBackendAPIModelsResponse' {modelIntrospectionSchema} -> modelIntrospectionSchema) (\s@GetBackendAPIModelsResponse' {} a -> s {modelIntrospectionSchema = a} :: GetBackendAPIModelsResponse)
-- | Stringified JSON of the datastore model.
getBackendAPIModelsResponse_models :: Lens.Lens' GetBackendAPIModelsResponse (Prelude.Maybe Prelude.Text)
getBackendAPIModelsResponse_models = Lens.lens (\GetBackendAPIModelsResponse' {models} -> models) (\s@GetBackendAPIModelsResponse' {} a -> s {models = a} :: GetBackendAPIModelsResponse)
-- | The current status of the request.
getBackendAPIModelsResponse_status :: Lens.Lens' GetBackendAPIModelsResponse (Prelude.Maybe Status)
getBackendAPIModelsResponse_status = Lens.lens (\GetBackendAPIModelsResponse' {status} -> status) (\s@GetBackendAPIModelsResponse' {} a -> s {status = a} :: GetBackendAPIModelsResponse)
-- | The response's http status code.
getBackendAPIModelsResponse_httpStatus :: Lens.Lens' GetBackendAPIModelsResponse Prelude.Int
getBackendAPIModelsResponse_httpStatus = Lens.lens (\GetBackendAPIModelsResponse' {httpStatus} -> httpStatus) (\s@GetBackendAPIModelsResponse' {} a -> s {httpStatus = a} :: GetBackendAPIModelsResponse)
instance Prelude.NFData GetBackendAPIModelsResponse where
rnf GetBackendAPIModelsResponse' {..} =
Prelude.rnf modelIntrospectionSchema
`Prelude.seq` Prelude.rnf models
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf httpStatus