{-# 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.IoTFleetHub.DescribeApplication
-- 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 information about a Fleet Hub for AWS IoT Device Management web
-- application.
--
-- Fleet Hub for AWS IoT Device Management is in public preview and is
-- subject to change.
module Amazonka.IoTFleetHub.DescribeApplication
  ( -- * Creating a Request
    DescribeApplication (..),
    newDescribeApplication,

    -- * Request Lenses
    describeApplication_applicationId,

    -- * Destructuring the Response
    DescribeApplicationResponse (..),
    newDescribeApplicationResponse,

    -- * Response Lenses
    describeApplicationResponse_applicationDescription,
    describeApplicationResponse_errorMessage,
    describeApplicationResponse_ssoClientId,
    describeApplicationResponse_tags,
    describeApplicationResponse_httpStatus,
    describeApplicationResponse_applicationId,
    describeApplicationResponse_applicationArn,
    describeApplicationResponse_applicationName,
    describeApplicationResponse_applicationUrl,
    describeApplicationResponse_applicationState,
    describeApplicationResponse_applicationCreationDate,
    describeApplicationResponse_applicationLastUpdateDate,
    describeApplicationResponse_roleArn,
  )
where

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

-- | /See:/ 'newDescribeApplication' smart constructor.
data DescribeApplication = DescribeApplication'
  { -- | The unique Id of the web application.
    DescribeApplication -> Text
applicationId :: Prelude.Text
  }
  deriving (DescribeApplication -> DescribeApplication -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeApplication -> DescribeApplication -> Bool
$c/= :: DescribeApplication -> DescribeApplication -> Bool
== :: DescribeApplication -> DescribeApplication -> Bool
$c== :: DescribeApplication -> DescribeApplication -> Bool
Prelude.Eq, ReadPrec [DescribeApplication]
ReadPrec DescribeApplication
Int -> ReadS DescribeApplication
ReadS [DescribeApplication]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeApplication]
$creadListPrec :: ReadPrec [DescribeApplication]
readPrec :: ReadPrec DescribeApplication
$creadPrec :: ReadPrec DescribeApplication
readList :: ReadS [DescribeApplication]
$creadList :: ReadS [DescribeApplication]
readsPrec :: Int -> ReadS DescribeApplication
$creadsPrec :: Int -> ReadS DescribeApplication
Prelude.Read, Int -> DescribeApplication -> ShowS
[DescribeApplication] -> ShowS
DescribeApplication -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeApplication] -> ShowS
$cshowList :: [DescribeApplication] -> ShowS
show :: DescribeApplication -> String
$cshow :: DescribeApplication -> String
showsPrec :: Int -> DescribeApplication -> ShowS
$cshowsPrec :: Int -> DescribeApplication -> ShowS
Prelude.Show, forall x. Rep DescribeApplication x -> DescribeApplication
forall x. DescribeApplication -> Rep DescribeApplication x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeApplication x -> DescribeApplication
$cfrom :: forall x. DescribeApplication -> Rep DescribeApplication x
Prelude.Generic)

-- |
-- Create a value of 'DescribeApplication' 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:
--
-- 'applicationId', 'describeApplication_applicationId' - The unique Id of the web application.
newDescribeApplication ::
  -- | 'applicationId'
  Prelude.Text ->
  DescribeApplication
newDescribeApplication :: Text -> DescribeApplication
newDescribeApplication Text
pApplicationId_ =
  DescribeApplication'
    { $sel:applicationId:DescribeApplication' :: Text
applicationId =
        Text
pApplicationId_
    }

-- | The unique Id of the web application.
describeApplication_applicationId :: Lens.Lens' DescribeApplication Prelude.Text
describeApplication_applicationId :: Lens' DescribeApplication Text
describeApplication_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplication' {Text
applicationId :: Text
$sel:applicationId:DescribeApplication' :: DescribeApplication -> Text
applicationId} -> Text
applicationId) (\s :: DescribeApplication
s@DescribeApplication' {} Text
a -> DescribeApplication
s {$sel:applicationId:DescribeApplication' :: Text
applicationId = Text
a} :: DescribeApplication)

instance Core.AWSRequest DescribeApplication where
  type
    AWSResponse DescribeApplication =
      DescribeApplicationResponse
  request :: (Service -> Service)
-> DescribeApplication -> Request DescribeApplication
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 DescribeApplication
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeApplication)))
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 (HashMap Text Text)
-> Int
-> Text
-> Text
-> Text
-> Text
-> ApplicationState
-> Integer
-> Integer
-> Text
-> DescribeApplicationResponse
DescribeApplicationResponse'
            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
"applicationDescription")
            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
"errorMessage")
            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
"ssoClientId")
            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationState")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationCreationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"applicationLastUpdateDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"roleArn")
      )

instance Prelude.Hashable DescribeApplication where
  hashWithSalt :: Int -> DescribeApplication -> Int
hashWithSalt Int
_salt DescribeApplication' {Text
applicationId :: Text
$sel:applicationId:DescribeApplication' :: DescribeApplication -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
applicationId

instance Prelude.NFData DescribeApplication where
  rnf :: DescribeApplication -> ()
rnf DescribeApplication' {Text
applicationId :: Text
$sel:applicationId:DescribeApplication' :: DescribeApplication -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
applicationId

instance Data.ToHeaders DescribeApplication where
  toHeaders :: DescribeApplication -> 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 DescribeApplication where
  toPath :: DescribeApplication -> ByteString
toPath DescribeApplication' {Text
applicationId :: Text
$sel:applicationId:DescribeApplication' :: DescribeApplication -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/applications/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
applicationId]

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

-- | /See:/ 'newDescribeApplicationResponse' smart constructor.
data DescribeApplicationResponse = DescribeApplicationResponse'
  { -- | An optional description of the web application.
    DescribeApplicationResponse -> Maybe Text
applicationDescription :: Prelude.Maybe Prelude.Text,
    -- | A message indicating why the @DescribeApplication@ API failed.
    DescribeApplicationResponse -> Maybe Text
errorMessage :: Prelude.Maybe Prelude.Text,
    -- | The Id of the single sign-on client that you use to authenticate and
    -- authorize users on the web application.
    DescribeApplicationResponse -> Maybe Text
ssoClientId :: Prelude.Maybe Prelude.Text,
    -- | A set of key\/value pairs that you can use to manage the web application
    -- resource.
    DescribeApplicationResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeApplicationResponse -> Int
httpStatus :: Prelude.Int,
    -- | The unique Id of the web application.
    DescribeApplicationResponse -> Text
applicationId :: Prelude.Text,
    -- | The ARN of the web application.
    DescribeApplicationResponse -> Text
applicationArn :: Prelude.Text,
    -- | The name of the web application.
    DescribeApplicationResponse -> Text
applicationName :: Prelude.Text,
    -- | The URL of the web application.
    DescribeApplicationResponse -> Text
applicationUrl :: Prelude.Text,
    -- | The current state of the web application.
    DescribeApplicationResponse -> ApplicationState
applicationState :: ApplicationState,
    -- | The date (in Unix epoch time) when the application was created.
    DescribeApplicationResponse -> Integer
applicationCreationDate :: Prelude.Integer,
    -- | The date (in Unix epoch time) when the application was last updated.
    DescribeApplicationResponse -> Integer
applicationLastUpdateDate :: Prelude.Integer,
    -- | The ARN of the role that the web application assumes when it interacts
    -- with AWS IoT Core.
    DescribeApplicationResponse -> Text
roleArn :: Prelude.Text
  }
  deriving (DescribeApplicationResponse -> DescribeApplicationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeApplicationResponse -> DescribeApplicationResponse -> Bool
$c/= :: DescribeApplicationResponse -> DescribeApplicationResponse -> Bool
== :: DescribeApplicationResponse -> DescribeApplicationResponse -> Bool
$c== :: DescribeApplicationResponse -> DescribeApplicationResponse -> Bool
Prelude.Eq, ReadPrec [DescribeApplicationResponse]
ReadPrec DescribeApplicationResponse
Int -> ReadS DescribeApplicationResponse
ReadS [DescribeApplicationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeApplicationResponse]
$creadListPrec :: ReadPrec [DescribeApplicationResponse]
readPrec :: ReadPrec DescribeApplicationResponse
$creadPrec :: ReadPrec DescribeApplicationResponse
readList :: ReadS [DescribeApplicationResponse]
$creadList :: ReadS [DescribeApplicationResponse]
readsPrec :: Int -> ReadS DescribeApplicationResponse
$creadsPrec :: Int -> ReadS DescribeApplicationResponse
Prelude.Read, Int -> DescribeApplicationResponse -> ShowS
[DescribeApplicationResponse] -> ShowS
DescribeApplicationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeApplicationResponse] -> ShowS
$cshowList :: [DescribeApplicationResponse] -> ShowS
show :: DescribeApplicationResponse -> String
$cshow :: DescribeApplicationResponse -> String
showsPrec :: Int -> DescribeApplicationResponse -> ShowS
$cshowsPrec :: Int -> DescribeApplicationResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeApplicationResponse x -> DescribeApplicationResponse
forall x.
DescribeApplicationResponse -> Rep DescribeApplicationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeApplicationResponse x -> DescribeApplicationResponse
$cfrom :: forall x.
DescribeApplicationResponse -> Rep DescribeApplicationResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeApplicationResponse' 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:
--
-- 'applicationDescription', 'describeApplicationResponse_applicationDescription' - An optional description of the web application.
--
-- 'errorMessage', 'describeApplicationResponse_errorMessage' - A message indicating why the @DescribeApplication@ API failed.
--
-- 'ssoClientId', 'describeApplicationResponse_ssoClientId' - The Id of the single sign-on client that you use to authenticate and
-- authorize users on the web application.
--
-- 'tags', 'describeApplicationResponse_tags' - A set of key\/value pairs that you can use to manage the web application
-- resource.
--
-- 'httpStatus', 'describeApplicationResponse_httpStatus' - The response's http status code.
--
-- 'applicationId', 'describeApplicationResponse_applicationId' - The unique Id of the web application.
--
-- 'applicationArn', 'describeApplicationResponse_applicationArn' - The ARN of the web application.
--
-- 'applicationName', 'describeApplicationResponse_applicationName' - The name of the web application.
--
-- 'applicationUrl', 'describeApplicationResponse_applicationUrl' - The URL of the web application.
--
-- 'applicationState', 'describeApplicationResponse_applicationState' - The current state of the web application.
--
-- 'applicationCreationDate', 'describeApplicationResponse_applicationCreationDate' - The date (in Unix epoch time) when the application was created.
--
-- 'applicationLastUpdateDate', 'describeApplicationResponse_applicationLastUpdateDate' - The date (in Unix epoch time) when the application was last updated.
--
-- 'roleArn', 'describeApplicationResponse_roleArn' - The ARN of the role that the web application assumes when it interacts
-- with AWS IoT Core.
newDescribeApplicationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'applicationId'
  Prelude.Text ->
  -- | 'applicationArn'
  Prelude.Text ->
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'applicationUrl'
  Prelude.Text ->
  -- | 'applicationState'
  ApplicationState ->
  -- | 'applicationCreationDate'
  Prelude.Integer ->
  -- | 'applicationLastUpdateDate'
  Prelude.Integer ->
  -- | 'roleArn'
  Prelude.Text ->
  DescribeApplicationResponse
newDescribeApplicationResponse :: Int
-> Text
-> Text
-> Text
-> Text
-> ApplicationState
-> Integer
-> Integer
-> Text
-> DescribeApplicationResponse
newDescribeApplicationResponse
  Int
pHttpStatus_
  Text
pApplicationId_
  Text
pApplicationArn_
  Text
pApplicationName_
  Text
pApplicationUrl_
  ApplicationState
pApplicationState_
  Integer
pApplicationCreationDate_
  Integer
pApplicationLastUpdateDate_
  Text
pRoleArn_ =
    DescribeApplicationResponse'
      { $sel:applicationDescription:DescribeApplicationResponse' :: Maybe Text
applicationDescription =
          forall a. Maybe a
Prelude.Nothing,
        $sel:errorMessage:DescribeApplicationResponse' :: Maybe Text
errorMessage = forall a. Maybe a
Prelude.Nothing,
        $sel:ssoClientId:DescribeApplicationResponse' :: Maybe Text
ssoClientId = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:DescribeApplicationResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeApplicationResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:applicationId:DescribeApplicationResponse' :: Text
applicationId = Text
pApplicationId_,
        $sel:applicationArn:DescribeApplicationResponse' :: Text
applicationArn = Text
pApplicationArn_,
        $sel:applicationName:DescribeApplicationResponse' :: Text
applicationName = Text
pApplicationName_,
        $sel:applicationUrl:DescribeApplicationResponse' :: Text
applicationUrl = Text
pApplicationUrl_,
        $sel:applicationState:DescribeApplicationResponse' :: ApplicationState
applicationState = ApplicationState
pApplicationState_,
        $sel:applicationCreationDate:DescribeApplicationResponse' :: Integer
applicationCreationDate =
          Integer
pApplicationCreationDate_,
        $sel:applicationLastUpdateDate:DescribeApplicationResponse' :: Integer
applicationLastUpdateDate =
          Integer
pApplicationLastUpdateDate_,
        $sel:roleArn:DescribeApplicationResponse' :: Text
roleArn = Text
pRoleArn_
      }

-- | An optional description of the web application.
describeApplicationResponse_applicationDescription :: Lens.Lens' DescribeApplicationResponse (Prelude.Maybe Prelude.Text)
describeApplicationResponse_applicationDescription :: Lens' DescribeApplicationResponse (Maybe Text)
describeApplicationResponse_applicationDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Maybe Text
applicationDescription :: Maybe Text
$sel:applicationDescription:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
applicationDescription} -> Maybe Text
applicationDescription) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Maybe Text
a -> DescribeApplicationResponse
s {$sel:applicationDescription:DescribeApplicationResponse' :: Maybe Text
applicationDescription = Maybe Text
a} :: DescribeApplicationResponse)

-- | A message indicating why the @DescribeApplication@ API failed.
describeApplicationResponse_errorMessage :: Lens.Lens' DescribeApplicationResponse (Prelude.Maybe Prelude.Text)
describeApplicationResponse_errorMessage :: Lens' DescribeApplicationResponse (Maybe Text)
describeApplicationResponse_errorMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Maybe Text
errorMessage :: Maybe Text
$sel:errorMessage:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
errorMessage} -> Maybe Text
errorMessage) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Maybe Text
a -> DescribeApplicationResponse
s {$sel:errorMessage:DescribeApplicationResponse' :: Maybe Text
errorMessage = Maybe Text
a} :: DescribeApplicationResponse)

-- | The Id of the single sign-on client that you use to authenticate and
-- authorize users on the web application.
describeApplicationResponse_ssoClientId :: Lens.Lens' DescribeApplicationResponse (Prelude.Maybe Prelude.Text)
describeApplicationResponse_ssoClientId :: Lens' DescribeApplicationResponse (Maybe Text)
describeApplicationResponse_ssoClientId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Maybe Text
ssoClientId :: Maybe Text
$sel:ssoClientId:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
ssoClientId} -> Maybe Text
ssoClientId) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Maybe Text
a -> DescribeApplicationResponse
s {$sel:ssoClientId:DescribeApplicationResponse' :: Maybe Text
ssoClientId = Maybe Text
a} :: DescribeApplicationResponse)

-- | A set of key\/value pairs that you can use to manage the web application
-- resource.
describeApplicationResponse_tags :: Lens.Lens' DescribeApplicationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeApplicationResponse_tags :: Lens' DescribeApplicationResponse (Maybe (HashMap Text Text))
describeApplicationResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Maybe (HashMap Text Text)
a -> DescribeApplicationResponse
s {$sel:tags:DescribeApplicationResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeApplicationResponse) 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.
describeApplicationResponse_httpStatus :: Lens.Lens' DescribeApplicationResponse Prelude.Int
describeApplicationResponse_httpStatus :: Lens' DescribeApplicationResponse Int
describeApplicationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeApplicationResponse' :: DescribeApplicationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Int
a -> DescribeApplicationResponse
s {$sel:httpStatus:DescribeApplicationResponse' :: Int
httpStatus = Int
a} :: DescribeApplicationResponse)

-- | The unique Id of the web application.
describeApplicationResponse_applicationId :: Lens.Lens' DescribeApplicationResponse Prelude.Text
describeApplicationResponse_applicationId :: Lens' DescribeApplicationResponse Text
describeApplicationResponse_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Text
applicationId :: Text
$sel:applicationId:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
applicationId} -> Text
applicationId) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Text
a -> DescribeApplicationResponse
s {$sel:applicationId:DescribeApplicationResponse' :: Text
applicationId = Text
a} :: DescribeApplicationResponse)

-- | The ARN of the web application.
describeApplicationResponse_applicationArn :: Lens.Lens' DescribeApplicationResponse Prelude.Text
describeApplicationResponse_applicationArn :: Lens' DescribeApplicationResponse Text
describeApplicationResponse_applicationArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Text
applicationArn :: Text
$sel:applicationArn:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
applicationArn} -> Text
applicationArn) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Text
a -> DescribeApplicationResponse
s {$sel:applicationArn:DescribeApplicationResponse' :: Text
applicationArn = Text
a} :: DescribeApplicationResponse)

-- | The name of the web application.
describeApplicationResponse_applicationName :: Lens.Lens' DescribeApplicationResponse Prelude.Text
describeApplicationResponse_applicationName :: Lens' DescribeApplicationResponse Text
describeApplicationResponse_applicationName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Text
applicationName :: Text
$sel:applicationName:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
applicationName} -> Text
applicationName) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Text
a -> DescribeApplicationResponse
s {$sel:applicationName:DescribeApplicationResponse' :: Text
applicationName = Text
a} :: DescribeApplicationResponse)

-- | The URL of the web application.
describeApplicationResponse_applicationUrl :: Lens.Lens' DescribeApplicationResponse Prelude.Text
describeApplicationResponse_applicationUrl :: Lens' DescribeApplicationResponse Text
describeApplicationResponse_applicationUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Text
applicationUrl :: Text
$sel:applicationUrl:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
applicationUrl} -> Text
applicationUrl) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Text
a -> DescribeApplicationResponse
s {$sel:applicationUrl:DescribeApplicationResponse' :: Text
applicationUrl = Text
a} :: DescribeApplicationResponse)

-- | The current state of the web application.
describeApplicationResponse_applicationState :: Lens.Lens' DescribeApplicationResponse ApplicationState
describeApplicationResponse_applicationState :: Lens' DescribeApplicationResponse ApplicationState
describeApplicationResponse_applicationState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {ApplicationState
applicationState :: ApplicationState
$sel:applicationState:DescribeApplicationResponse' :: DescribeApplicationResponse -> ApplicationState
applicationState} -> ApplicationState
applicationState) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} ApplicationState
a -> DescribeApplicationResponse
s {$sel:applicationState:DescribeApplicationResponse' :: ApplicationState
applicationState = ApplicationState
a} :: DescribeApplicationResponse)

-- | The date (in Unix epoch time) when the application was created.
describeApplicationResponse_applicationCreationDate :: Lens.Lens' DescribeApplicationResponse Prelude.Integer
describeApplicationResponse_applicationCreationDate :: Lens' DescribeApplicationResponse Integer
describeApplicationResponse_applicationCreationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Integer
applicationCreationDate :: Integer
$sel:applicationCreationDate:DescribeApplicationResponse' :: DescribeApplicationResponse -> Integer
applicationCreationDate} -> Integer
applicationCreationDate) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Integer
a -> DescribeApplicationResponse
s {$sel:applicationCreationDate:DescribeApplicationResponse' :: Integer
applicationCreationDate = Integer
a} :: DescribeApplicationResponse)

-- | The date (in Unix epoch time) when the application was last updated.
describeApplicationResponse_applicationLastUpdateDate :: Lens.Lens' DescribeApplicationResponse Prelude.Integer
describeApplicationResponse_applicationLastUpdateDate :: Lens' DescribeApplicationResponse Integer
describeApplicationResponse_applicationLastUpdateDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Integer
applicationLastUpdateDate :: Integer
$sel:applicationLastUpdateDate:DescribeApplicationResponse' :: DescribeApplicationResponse -> Integer
applicationLastUpdateDate} -> Integer
applicationLastUpdateDate) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Integer
a -> DescribeApplicationResponse
s {$sel:applicationLastUpdateDate:DescribeApplicationResponse' :: Integer
applicationLastUpdateDate = Integer
a} :: DescribeApplicationResponse)

-- | The ARN of the role that the web application assumes when it interacts
-- with AWS IoT Core.
describeApplicationResponse_roleArn :: Lens.Lens' DescribeApplicationResponse Prelude.Text
describeApplicationResponse_roleArn :: Lens' DescribeApplicationResponse Text
describeApplicationResponse_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeApplicationResponse' {Text
roleArn :: Text
$sel:roleArn:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
roleArn} -> Text
roleArn) (\s :: DescribeApplicationResponse
s@DescribeApplicationResponse' {} Text
a -> DescribeApplicationResponse
s {$sel:roleArn:DescribeApplicationResponse' :: Text
roleArn = Text
a} :: DescribeApplicationResponse)

instance Prelude.NFData DescribeApplicationResponse where
  rnf :: DescribeApplicationResponse -> ()
rnf DescribeApplicationResponse' {Int
Integer
Maybe Text
Maybe (HashMap Text Text)
Text
ApplicationState
roleArn :: Text
applicationLastUpdateDate :: Integer
applicationCreationDate :: Integer
applicationState :: ApplicationState
applicationUrl :: Text
applicationName :: Text
applicationArn :: Text
applicationId :: Text
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
ssoClientId :: Maybe Text
errorMessage :: Maybe Text
applicationDescription :: Maybe Text
$sel:roleArn:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
$sel:applicationLastUpdateDate:DescribeApplicationResponse' :: DescribeApplicationResponse -> Integer
$sel:applicationCreationDate:DescribeApplicationResponse' :: DescribeApplicationResponse -> Integer
$sel:applicationState:DescribeApplicationResponse' :: DescribeApplicationResponse -> ApplicationState
$sel:applicationUrl:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
$sel:applicationName:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
$sel:applicationArn:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
$sel:applicationId:DescribeApplicationResponse' :: DescribeApplicationResponse -> Text
$sel:httpStatus:DescribeApplicationResponse' :: DescribeApplicationResponse -> Int
$sel:tags:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe (HashMap Text Text)
$sel:ssoClientId:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
$sel:errorMessage:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
$sel:applicationDescription:DescribeApplicationResponse' :: DescribeApplicationResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
errorMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ssoClientId
      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
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
applicationUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ApplicationState
applicationState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Integer
applicationCreationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Integer
applicationLastUpdateDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roleArn