{-# 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.ApiGatewayV2.GetStage
-- 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 Stage.
module Amazonka.ApiGatewayV2.GetStage
  ( -- * Creating a Request
    GetStage (..),
    newGetStage,

    -- * Request Lenses
    getStage_stageName,
    getStage_apiId,

    -- * Destructuring the Response
    GetStageResponse (..),
    newGetStageResponse,

    -- * Response Lenses
    getStageResponse_accessLogSettings,
    getStageResponse_apiGatewayManaged,
    getStageResponse_autoDeploy,
    getStageResponse_clientCertificateId,
    getStageResponse_createdDate,
    getStageResponse_defaultRouteSettings,
    getStageResponse_deploymentId,
    getStageResponse_description,
    getStageResponse_lastDeploymentStatusMessage,
    getStageResponse_lastUpdatedDate,
    getStageResponse_routeSettings,
    getStageResponse_stageName,
    getStageResponse_stageVariables,
    getStageResponse_tags,
    getStageResponse_httpStatus,
  )
where

import Amazonka.ApiGatewayV2.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

-- | /See:/ 'newGetStage' smart constructor.
data GetStage = GetStage'
  { -- | The stage name. Stage names can only contain alphanumeric characters,
    -- hyphens, and underscores. Maximum length is 128 characters.
    GetStage -> Text
stageName :: Prelude.Text,
    -- | The API identifier.
    GetStage -> Text
apiId :: Prelude.Text
  }
  deriving (GetStage -> GetStage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStage -> GetStage -> Bool
$c/= :: GetStage -> GetStage -> Bool
== :: GetStage -> GetStage -> Bool
$c== :: GetStage -> GetStage -> Bool
Prelude.Eq, ReadPrec [GetStage]
ReadPrec GetStage
Int -> ReadS GetStage
ReadS [GetStage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStage]
$creadListPrec :: ReadPrec [GetStage]
readPrec :: ReadPrec GetStage
$creadPrec :: ReadPrec GetStage
readList :: ReadS [GetStage]
$creadList :: ReadS [GetStage]
readsPrec :: Int -> ReadS GetStage
$creadsPrec :: Int -> ReadS GetStage
Prelude.Read, Int -> GetStage -> ShowS
[GetStage] -> ShowS
GetStage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStage] -> ShowS
$cshowList :: [GetStage] -> ShowS
show :: GetStage -> String
$cshow :: GetStage -> String
showsPrec :: Int -> GetStage -> ShowS
$cshowsPrec :: Int -> GetStage -> ShowS
Prelude.Show, forall x. Rep GetStage x -> GetStage
forall x. GetStage -> Rep GetStage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStage x -> GetStage
$cfrom :: forall x. GetStage -> Rep GetStage x
Prelude.Generic)

-- |
-- Create a value of 'GetStage' 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:
--
-- 'stageName', 'getStage_stageName' - The stage name. Stage names can only contain alphanumeric characters,
-- hyphens, and underscores. Maximum length is 128 characters.
--
-- 'apiId', 'getStage_apiId' - The API identifier.
newGetStage ::
  -- | 'stageName'
  Prelude.Text ->
  -- | 'apiId'
  Prelude.Text ->
  GetStage
newGetStage :: Text -> Text -> GetStage
newGetStage Text
pStageName_ Text
pApiId_ =
  GetStage' {$sel:stageName:GetStage' :: Text
stageName = Text
pStageName_, $sel:apiId:GetStage' :: Text
apiId = Text
pApiId_}

-- | The stage name. Stage names can only contain alphanumeric characters,
-- hyphens, and underscores. Maximum length is 128 characters.
getStage_stageName :: Lens.Lens' GetStage Prelude.Text
getStage_stageName :: Lens' GetStage Text
getStage_stageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStage' {Text
stageName :: Text
$sel:stageName:GetStage' :: GetStage -> Text
stageName} -> Text
stageName) (\s :: GetStage
s@GetStage' {} Text
a -> GetStage
s {$sel:stageName:GetStage' :: Text
stageName = Text
a} :: GetStage)

-- | The API identifier.
getStage_apiId :: Lens.Lens' GetStage Prelude.Text
getStage_apiId :: Lens' GetStage Text
getStage_apiId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStage' {Text
apiId :: Text
$sel:apiId:GetStage' :: GetStage -> Text
apiId} -> Text
apiId) (\s :: GetStage
s@GetStage' {} Text
a -> GetStage
s {$sel:apiId:GetStage' :: Text
apiId = Text
a} :: GetStage)

instance Core.AWSRequest GetStage where
  type AWSResponse GetStage = GetStageResponse
  request :: (Service -> Service) -> GetStage -> Request GetStage
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetStage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetStage)))
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 AccessLogSettings
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe ISO8601
-> Maybe RouteSettings
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ISO8601
-> Maybe (HashMap Text RouteSettings)
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe (HashMap Text Text)
-> Int
-> GetStageResponse
GetStageResponse'
            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
"accessLogSettings")
            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
"apiGatewayManaged")
            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
"autoDeploy")
            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
"clientCertificateId")
            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
"createdDate")
            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
"defaultRouteSettings")
            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
"deploymentId")
            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
"description")
            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
"lastDeploymentStatusMessage")
            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
"lastUpdatedDate")
            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
"routeSettings" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"stageName")
            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
"stageVariables" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"tags" 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 GetStage where
  hashWithSalt :: Int -> GetStage -> Int
hashWithSalt Int
_salt GetStage' {Text
apiId :: Text
stageName :: Text
$sel:apiId:GetStage' :: GetStage -> Text
$sel:stageName:GetStage' :: GetStage -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
stageName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
apiId

instance Prelude.NFData GetStage where
  rnf :: GetStage -> ()
rnf GetStage' {Text
apiId :: Text
stageName :: Text
$sel:apiId:GetStage' :: GetStage -> Text
$sel:stageName:GetStage' :: GetStage -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
stageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
apiId

instance Data.ToHeaders GetStage where
  toHeaders :: GetStage -> 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.ToPath GetStage where
  toPath :: GetStage -> ByteString
toPath GetStage' {Text
apiId :: Text
stageName :: Text
$sel:apiId:GetStage' :: GetStage -> Text
$sel:stageName:GetStage' :: GetStage -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v2/apis/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
apiId,
        ByteString
"/stages/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
stageName
      ]

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

-- | /See:/ 'newGetStageResponse' smart constructor.
data GetStageResponse = GetStageResponse'
  { -- | Settings for logging access in this stage.
    GetStageResponse -> Maybe AccessLogSettings
accessLogSettings :: Prelude.Maybe AccessLogSettings,
    -- | Specifies whether a stage is managed by API Gateway. If you created an
    -- API using quick create, the $default stage is managed by API Gateway.
    -- You can\'t modify the $default stage.
    GetStageResponse -> Maybe Bool
apiGatewayManaged :: Prelude.Maybe Prelude.Bool,
    -- | Specifies whether updates to an API automatically trigger a new
    -- deployment. The default value is false.
    GetStageResponse -> Maybe Bool
autoDeploy :: Prelude.Maybe Prelude.Bool,
    -- | The identifier of a client certificate for a Stage. Supported only for
    -- WebSocket APIs.
    GetStageResponse -> Maybe Text
clientCertificateId :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the stage was created.
    GetStageResponse -> Maybe ISO8601
createdDate :: Prelude.Maybe Data.ISO8601,
    -- | Default route settings for the stage.
    GetStageResponse -> Maybe RouteSettings
defaultRouteSettings :: Prelude.Maybe RouteSettings,
    -- | The identifier of the Deployment that the Stage is associated with.
    -- Can\'t be updated if autoDeploy is enabled.
    GetStageResponse -> Maybe Text
deploymentId :: Prelude.Maybe Prelude.Text,
    -- | The description of the stage.
    GetStageResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Describes the status of the last deployment of a stage. Supported only
    -- for stages with autoDeploy enabled.
    GetStageResponse -> Maybe Text
lastDeploymentStatusMessage :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the stage was last updated.
    GetStageResponse -> Maybe ISO8601
lastUpdatedDate :: Prelude.Maybe Data.ISO8601,
    -- | Route settings for the stage, by routeKey.
    GetStageResponse -> Maybe (HashMap Text RouteSettings)
routeSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings),
    -- | The name of the stage.
    GetStageResponse -> Maybe Text
stageName :: Prelude.Maybe Prelude.Text,
    -- | A map that defines the stage variables for a stage resource. Variable
    -- names can have alphanumeric and underscore characters, and the values
    -- must match [A-Za-z0-9-._~:\/?#&=,]+.
    GetStageResponse -> Maybe (HashMap Text Text)
stageVariables :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The collection of tags. Each tag element is associated with a given
    -- resource.
    GetStageResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    GetStageResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetStageResponse -> GetStageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetStageResponse -> GetStageResponse -> Bool
$c/= :: GetStageResponse -> GetStageResponse -> Bool
== :: GetStageResponse -> GetStageResponse -> Bool
$c== :: GetStageResponse -> GetStageResponse -> Bool
Prelude.Eq, ReadPrec [GetStageResponse]
ReadPrec GetStageResponse
Int -> ReadS GetStageResponse
ReadS [GetStageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetStageResponse]
$creadListPrec :: ReadPrec [GetStageResponse]
readPrec :: ReadPrec GetStageResponse
$creadPrec :: ReadPrec GetStageResponse
readList :: ReadS [GetStageResponse]
$creadList :: ReadS [GetStageResponse]
readsPrec :: Int -> ReadS GetStageResponse
$creadsPrec :: Int -> ReadS GetStageResponse
Prelude.Read, Int -> GetStageResponse -> ShowS
[GetStageResponse] -> ShowS
GetStageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStageResponse] -> ShowS
$cshowList :: [GetStageResponse] -> ShowS
show :: GetStageResponse -> String
$cshow :: GetStageResponse -> String
showsPrec :: Int -> GetStageResponse -> ShowS
$cshowsPrec :: Int -> GetStageResponse -> ShowS
Prelude.Show, forall x. Rep GetStageResponse x -> GetStageResponse
forall x. GetStageResponse -> Rep GetStageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetStageResponse x -> GetStageResponse
$cfrom :: forall x. GetStageResponse -> Rep GetStageResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetStageResponse' 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:
--
-- 'accessLogSettings', 'getStageResponse_accessLogSettings' - Settings for logging access in this stage.
--
-- 'apiGatewayManaged', 'getStageResponse_apiGatewayManaged' - Specifies whether a stage is managed by API Gateway. If you created an
-- API using quick create, the $default stage is managed by API Gateway.
-- You can\'t modify the $default stage.
--
-- 'autoDeploy', 'getStageResponse_autoDeploy' - Specifies whether updates to an API automatically trigger a new
-- deployment. The default value is false.
--
-- 'clientCertificateId', 'getStageResponse_clientCertificateId' - The identifier of a client certificate for a Stage. Supported only for
-- WebSocket APIs.
--
-- 'createdDate', 'getStageResponse_createdDate' - The timestamp when the stage was created.
--
-- 'defaultRouteSettings', 'getStageResponse_defaultRouteSettings' - Default route settings for the stage.
--
-- 'deploymentId', 'getStageResponse_deploymentId' - The identifier of the Deployment that the Stage is associated with.
-- Can\'t be updated if autoDeploy is enabled.
--
-- 'description', 'getStageResponse_description' - The description of the stage.
--
-- 'lastDeploymentStatusMessage', 'getStageResponse_lastDeploymentStatusMessage' - Describes the status of the last deployment of a stage. Supported only
-- for stages with autoDeploy enabled.
--
-- 'lastUpdatedDate', 'getStageResponse_lastUpdatedDate' - The timestamp when the stage was last updated.
--
-- 'routeSettings', 'getStageResponse_routeSettings' - Route settings for the stage, by routeKey.
--
-- 'stageName', 'getStageResponse_stageName' - The name of the stage.
--
-- 'stageVariables', 'getStageResponse_stageVariables' - A map that defines the stage variables for a stage resource. Variable
-- names can have alphanumeric and underscore characters, and the values
-- must match [A-Za-z0-9-._~:\/?#&=,]+.
--
-- 'tags', 'getStageResponse_tags' - The collection of tags. Each tag element is associated with a given
-- resource.
--
-- 'httpStatus', 'getStageResponse_httpStatus' - The response's http status code.
newGetStageResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetStageResponse
newGetStageResponse :: Int -> GetStageResponse
newGetStageResponse Int
pHttpStatus_ =
  GetStageResponse'
    { $sel:accessLogSettings:GetStageResponse' :: Maybe AccessLogSettings
accessLogSettings =
        forall a. Maybe a
Prelude.Nothing,
      $sel:apiGatewayManaged:GetStageResponse' :: Maybe Bool
apiGatewayManaged = forall a. Maybe a
Prelude.Nothing,
      $sel:autoDeploy:GetStageResponse' :: Maybe Bool
autoDeploy = forall a. Maybe a
Prelude.Nothing,
      $sel:clientCertificateId:GetStageResponse' :: Maybe Text
clientCertificateId = forall a. Maybe a
Prelude.Nothing,
      $sel:createdDate:GetStageResponse' :: Maybe ISO8601
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:defaultRouteSettings:GetStageResponse' :: Maybe RouteSettings
defaultRouteSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentId:GetStageResponse' :: Maybe Text
deploymentId = forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetStageResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:lastDeploymentStatusMessage:GetStageResponse' :: Maybe Text
lastDeploymentStatusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedDate:GetStageResponse' :: Maybe ISO8601
lastUpdatedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:routeSettings:GetStageResponse' :: Maybe (HashMap Text RouteSettings)
routeSettings = forall a. Maybe a
Prelude.Nothing,
      $sel:stageName:GetStageResponse' :: Maybe Text
stageName = forall a. Maybe a
Prelude.Nothing,
      $sel:stageVariables:GetStageResponse' :: Maybe (HashMap Text Text)
stageVariables = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetStageResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetStageResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Settings for logging access in this stage.
getStageResponse_accessLogSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe AccessLogSettings)
getStageResponse_accessLogSettings :: Lens' GetStageResponse (Maybe AccessLogSettings)
getStageResponse_accessLogSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe AccessLogSettings
accessLogSettings :: Maybe AccessLogSettings
$sel:accessLogSettings:GetStageResponse' :: GetStageResponse -> Maybe AccessLogSettings
accessLogSettings} -> Maybe AccessLogSettings
accessLogSettings) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe AccessLogSettings
a -> GetStageResponse
s {$sel:accessLogSettings:GetStageResponse' :: Maybe AccessLogSettings
accessLogSettings = Maybe AccessLogSettings
a} :: GetStageResponse)

-- | Specifies whether a stage is managed by API Gateway. If you created an
-- API using quick create, the $default stage is managed by API Gateway.
-- You can\'t modify the $default stage.
getStageResponse_apiGatewayManaged :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Bool)
getStageResponse_apiGatewayManaged :: Lens' GetStageResponse (Maybe Bool)
getStageResponse_apiGatewayManaged = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Bool
apiGatewayManaged :: Maybe Bool
$sel:apiGatewayManaged:GetStageResponse' :: GetStageResponse -> Maybe Bool
apiGatewayManaged} -> Maybe Bool
apiGatewayManaged) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Bool
a -> GetStageResponse
s {$sel:apiGatewayManaged:GetStageResponse' :: Maybe Bool
apiGatewayManaged = Maybe Bool
a} :: GetStageResponse)

-- | Specifies whether updates to an API automatically trigger a new
-- deployment. The default value is false.
getStageResponse_autoDeploy :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Bool)
getStageResponse_autoDeploy :: Lens' GetStageResponse (Maybe Bool)
getStageResponse_autoDeploy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Bool
autoDeploy :: Maybe Bool
$sel:autoDeploy:GetStageResponse' :: GetStageResponse -> Maybe Bool
autoDeploy} -> Maybe Bool
autoDeploy) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Bool
a -> GetStageResponse
s {$sel:autoDeploy:GetStageResponse' :: Maybe Bool
autoDeploy = Maybe Bool
a} :: GetStageResponse)

-- | The identifier of a client certificate for a Stage. Supported only for
-- WebSocket APIs.
getStageResponse_clientCertificateId :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)
getStageResponse_clientCertificateId :: Lens' GetStageResponse (Maybe Text)
getStageResponse_clientCertificateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Text
clientCertificateId :: Maybe Text
$sel:clientCertificateId:GetStageResponse' :: GetStageResponse -> Maybe Text
clientCertificateId} -> Maybe Text
clientCertificateId) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Text
a -> GetStageResponse
s {$sel:clientCertificateId:GetStageResponse' :: Maybe Text
clientCertificateId = Maybe Text
a} :: GetStageResponse)

-- | The timestamp when the stage was created.
getStageResponse_createdDate :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.UTCTime)
getStageResponse_createdDate :: Lens' GetStageResponse (Maybe UTCTime)
getStageResponse_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe ISO8601
createdDate :: Maybe ISO8601
$sel:createdDate:GetStageResponse' :: GetStageResponse -> Maybe ISO8601
createdDate} -> Maybe ISO8601
createdDate) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe ISO8601
a -> GetStageResponse
s {$sel:createdDate:GetStageResponse' :: Maybe ISO8601
createdDate = Maybe ISO8601
a} :: GetStageResponse) 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

-- | Default route settings for the stage.
getStageResponse_defaultRouteSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe RouteSettings)
getStageResponse_defaultRouteSettings :: Lens' GetStageResponse (Maybe RouteSettings)
getStageResponse_defaultRouteSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe RouteSettings
defaultRouteSettings :: Maybe RouteSettings
$sel:defaultRouteSettings:GetStageResponse' :: GetStageResponse -> Maybe RouteSettings
defaultRouteSettings} -> Maybe RouteSettings
defaultRouteSettings) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe RouteSettings
a -> GetStageResponse
s {$sel:defaultRouteSettings:GetStageResponse' :: Maybe RouteSettings
defaultRouteSettings = Maybe RouteSettings
a} :: GetStageResponse)

-- | The identifier of the Deployment that the Stage is associated with.
-- Can\'t be updated if autoDeploy is enabled.
getStageResponse_deploymentId :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)
getStageResponse_deploymentId :: Lens' GetStageResponse (Maybe Text)
getStageResponse_deploymentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Text
deploymentId :: Maybe Text
$sel:deploymentId:GetStageResponse' :: GetStageResponse -> Maybe Text
deploymentId} -> Maybe Text
deploymentId) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Text
a -> GetStageResponse
s {$sel:deploymentId:GetStageResponse' :: Maybe Text
deploymentId = Maybe Text
a} :: GetStageResponse)

-- | The description of the stage.
getStageResponse_description :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)
getStageResponse_description :: Lens' GetStageResponse (Maybe Text)
getStageResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetStageResponse' :: GetStageResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Text
a -> GetStageResponse
s {$sel:description:GetStageResponse' :: Maybe Text
description = Maybe Text
a} :: GetStageResponse)

-- | Describes the status of the last deployment of a stage. Supported only
-- for stages with autoDeploy enabled.
getStageResponse_lastDeploymentStatusMessage :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)
getStageResponse_lastDeploymentStatusMessage :: Lens' GetStageResponse (Maybe Text)
getStageResponse_lastDeploymentStatusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Text
lastDeploymentStatusMessage :: Maybe Text
$sel:lastDeploymentStatusMessage:GetStageResponse' :: GetStageResponse -> Maybe Text
lastDeploymentStatusMessage} -> Maybe Text
lastDeploymentStatusMessage) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Text
a -> GetStageResponse
s {$sel:lastDeploymentStatusMessage:GetStageResponse' :: Maybe Text
lastDeploymentStatusMessage = Maybe Text
a} :: GetStageResponse)

-- | The timestamp when the stage was last updated.
getStageResponse_lastUpdatedDate :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.UTCTime)
getStageResponse_lastUpdatedDate :: Lens' GetStageResponse (Maybe UTCTime)
getStageResponse_lastUpdatedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe ISO8601
lastUpdatedDate :: Maybe ISO8601
$sel:lastUpdatedDate:GetStageResponse' :: GetStageResponse -> Maybe ISO8601
lastUpdatedDate} -> Maybe ISO8601
lastUpdatedDate) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe ISO8601
a -> GetStageResponse
s {$sel:lastUpdatedDate:GetStageResponse' :: Maybe ISO8601
lastUpdatedDate = Maybe ISO8601
a} :: GetStageResponse) 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

-- | Route settings for the stage, by routeKey.
getStageResponse_routeSettings :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text RouteSettings))
getStageResponse_routeSettings :: Lens' GetStageResponse (Maybe (HashMap Text RouteSettings))
getStageResponse_routeSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe (HashMap Text RouteSettings)
routeSettings :: Maybe (HashMap Text RouteSettings)
$sel:routeSettings:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text RouteSettings)
routeSettings} -> Maybe (HashMap Text RouteSettings)
routeSettings) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe (HashMap Text RouteSettings)
a -> GetStageResponse
s {$sel:routeSettings:GetStageResponse' :: Maybe (HashMap Text RouteSettings)
routeSettings = Maybe (HashMap Text RouteSettings)
a} :: GetStageResponse) 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 name of the stage.
getStageResponse_stageName :: Lens.Lens' GetStageResponse (Prelude.Maybe Prelude.Text)
getStageResponse_stageName :: Lens' GetStageResponse (Maybe Text)
getStageResponse_stageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe Text
stageName :: Maybe Text
$sel:stageName:GetStageResponse' :: GetStageResponse -> Maybe Text
stageName} -> Maybe Text
stageName) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe Text
a -> GetStageResponse
s {$sel:stageName:GetStageResponse' :: Maybe Text
stageName = Maybe Text
a} :: GetStageResponse)

-- | A map that defines the stage variables for a stage resource. Variable
-- names can have alphanumeric and underscore characters, and the values
-- must match [A-Za-z0-9-._~:\/?#&=,]+.
getStageResponse_stageVariables :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getStageResponse_stageVariables :: Lens' GetStageResponse (Maybe (HashMap Text Text))
getStageResponse_stageVariables = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe (HashMap Text Text)
stageVariables :: Maybe (HashMap Text Text)
$sel:stageVariables:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text Text)
stageVariables} -> Maybe (HashMap Text Text)
stageVariables) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe (HashMap Text Text)
a -> GetStageResponse
s {$sel:stageVariables:GetStageResponse' :: Maybe (HashMap Text Text)
stageVariables = Maybe (HashMap Text Text)
a} :: GetStageResponse) 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 collection of tags. Each tag element is associated with a given
-- resource.
getStageResponse_tags :: Lens.Lens' GetStageResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getStageResponse_tags :: Lens' GetStageResponse (Maybe (HashMap Text Text))
getStageResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetStageResponse
s@GetStageResponse' {} Maybe (HashMap Text Text)
a -> GetStageResponse
s {$sel:tags:GetStageResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetStageResponse) 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.
getStageResponse_httpStatus :: Lens.Lens' GetStageResponse Prelude.Int
getStageResponse_httpStatus :: Lens' GetStageResponse Int
getStageResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetStageResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetStageResponse' :: GetStageResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetStageResponse
s@GetStageResponse' {} Int
a -> GetStageResponse
s {$sel:httpStatus:GetStageResponse' :: Int
httpStatus = Int
a} :: GetStageResponse)

instance Prelude.NFData GetStageResponse where
  rnf :: GetStageResponse -> ()
rnf GetStageResponse' {Int
Maybe Bool
Maybe Text
Maybe (HashMap Text Text)
Maybe (HashMap Text RouteSettings)
Maybe ISO8601
Maybe AccessLogSettings
Maybe RouteSettings
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
stageVariables :: Maybe (HashMap Text Text)
stageName :: Maybe Text
routeSettings :: Maybe (HashMap Text RouteSettings)
lastUpdatedDate :: Maybe ISO8601
lastDeploymentStatusMessage :: Maybe Text
description :: Maybe Text
deploymentId :: Maybe Text
defaultRouteSettings :: Maybe RouteSettings
createdDate :: Maybe ISO8601
clientCertificateId :: Maybe Text
autoDeploy :: Maybe Bool
apiGatewayManaged :: Maybe Bool
accessLogSettings :: Maybe AccessLogSettings
$sel:httpStatus:GetStageResponse' :: GetStageResponse -> Int
$sel:tags:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text Text)
$sel:stageVariables:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text Text)
$sel:stageName:GetStageResponse' :: GetStageResponse -> Maybe Text
$sel:routeSettings:GetStageResponse' :: GetStageResponse -> Maybe (HashMap Text RouteSettings)
$sel:lastUpdatedDate:GetStageResponse' :: GetStageResponse -> Maybe ISO8601
$sel:lastDeploymentStatusMessage:GetStageResponse' :: GetStageResponse -> Maybe Text
$sel:description:GetStageResponse' :: GetStageResponse -> Maybe Text
$sel:deploymentId:GetStageResponse' :: GetStageResponse -> Maybe Text
$sel:defaultRouteSettings:GetStageResponse' :: GetStageResponse -> Maybe RouteSettings
$sel:createdDate:GetStageResponse' :: GetStageResponse -> Maybe ISO8601
$sel:clientCertificateId:GetStageResponse' :: GetStageResponse -> Maybe Text
$sel:autoDeploy:GetStageResponse' :: GetStageResponse -> Maybe Bool
$sel:apiGatewayManaged:GetStageResponse' :: GetStageResponse -> Maybe Bool
$sel:accessLogSettings:GetStageResponse' :: GetStageResponse -> Maybe AccessLogSettings
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AccessLogSettings
accessLogSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
apiGatewayManaged
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
autoDeploy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientCertificateId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
createdDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RouteSettings
defaultRouteSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
deploymentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastDeploymentStatusMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ISO8601
lastUpdatedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text RouteSettings)
routeSettings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
stageName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
stageVariables
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus