{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.MigrationHubReFactorSpaces.Types.ApplicationSummary
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MigrationHubReFactorSpaces.Types.ApplicationSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MigrationHubReFactorSpaces.Types.ApiGatewayProxySummary
import Amazonka.MigrationHubReFactorSpaces.Types.ApplicationState
import Amazonka.MigrationHubReFactorSpaces.Types.ErrorResponse
import Amazonka.MigrationHubReFactorSpaces.Types.ProxyType
import qualified Amazonka.Prelude as Prelude

-- | The list of @ApplicationSummary@ objects.
--
-- /See:/ 'newApplicationSummary' smart constructor.
data ApplicationSummary = ApplicationSummary'
  { -- | The endpoint URL of the Amazon API Gateway proxy.
    ApplicationSummary -> Maybe ApiGatewayProxySummary
apiGatewayProxy :: Prelude.Maybe ApiGatewayProxySummary,
    -- | The unique identifier of the application.
    ApplicationSummary -> Maybe Text
applicationId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the application.
    ApplicationSummary -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID of the application creator.
    ApplicationSummary -> Maybe Text
createdByAccountId :: Prelude.Maybe Prelude.Text,
    -- | A timestamp that indicates when the application is created.
    ApplicationSummary -> Maybe POSIX
createdTime :: Prelude.Maybe Data.POSIX,
    -- | The unique identifier of the environment.
    ApplicationSummary -> Maybe Text
environmentId :: Prelude.Maybe Prelude.Text,
    -- | Any error associated with the application resource.
    ApplicationSummary -> Maybe ErrorResponse
error :: Prelude.Maybe ErrorResponse,
    -- | A timestamp that indicates when the application was last updated.
    ApplicationSummary -> Maybe POSIX
lastUpdatedTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the application.
    ApplicationSummary -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services account ID of the application owner (which is
    -- always the same as the environment owner account ID).
    ApplicationSummary -> Maybe Text
ownerAccountId :: Prelude.Maybe Prelude.Text,
    -- | The proxy type of the proxy created within the application.
    ApplicationSummary -> Maybe ProxyType
proxyType :: Prelude.Maybe ProxyType,
    -- | The current state of the application.
    ApplicationSummary -> Maybe ApplicationState
state :: Prelude.Maybe ApplicationState,
    -- | The tags assigned to the application.
    ApplicationSummary -> Maybe (Sensitive (HashMap Text Text))
tags :: Prelude.Maybe (Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text)),
    -- | The ID of the virtual private cloud (VPC).
    ApplicationSummary -> Maybe Text
vpcId :: Prelude.Maybe Prelude.Text
  }
  deriving (ApplicationSummary -> ApplicationSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ApplicationSummary -> ApplicationSummary -> Bool
$c/= :: ApplicationSummary -> ApplicationSummary -> Bool
== :: ApplicationSummary -> ApplicationSummary -> Bool
$c== :: ApplicationSummary -> ApplicationSummary -> Bool
Prelude.Eq, Int -> ApplicationSummary -> ShowS
[ApplicationSummary] -> ShowS
ApplicationSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ApplicationSummary] -> ShowS
$cshowList :: [ApplicationSummary] -> ShowS
show :: ApplicationSummary -> String
$cshow :: ApplicationSummary -> String
showsPrec :: Int -> ApplicationSummary -> ShowS
$cshowsPrec :: Int -> ApplicationSummary -> ShowS
Prelude.Show, forall x. Rep ApplicationSummary x -> ApplicationSummary
forall x. ApplicationSummary -> Rep ApplicationSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ApplicationSummary x -> ApplicationSummary
$cfrom :: forall x. ApplicationSummary -> Rep ApplicationSummary x
Prelude.Generic)

-- |
-- Create a value of 'ApplicationSummary' 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:
--
-- 'apiGatewayProxy', 'applicationSummary_apiGatewayProxy' - The endpoint URL of the Amazon API Gateway proxy.
--
-- 'applicationId', 'applicationSummary_applicationId' - The unique identifier of the application.
--
-- 'arn', 'applicationSummary_arn' - The Amazon Resource Name (ARN) of the application.
--
-- 'createdByAccountId', 'applicationSummary_createdByAccountId' - The Amazon Web Services account ID of the application creator.
--
-- 'createdTime', 'applicationSummary_createdTime' - A timestamp that indicates when the application is created.
--
-- 'environmentId', 'applicationSummary_environmentId' - The unique identifier of the environment.
--
-- 'error', 'applicationSummary_error' - Any error associated with the application resource.
--
-- 'lastUpdatedTime', 'applicationSummary_lastUpdatedTime' - A timestamp that indicates when the application was last updated.
--
-- 'name', 'applicationSummary_name' - The name of the application.
--
-- 'ownerAccountId', 'applicationSummary_ownerAccountId' - The Amazon Web Services account ID of the application owner (which is
-- always the same as the environment owner account ID).
--
-- 'proxyType', 'applicationSummary_proxyType' - The proxy type of the proxy created within the application.
--
-- 'state', 'applicationSummary_state' - The current state of the application.
--
-- 'tags', 'applicationSummary_tags' - The tags assigned to the application.
--
-- 'vpcId', 'applicationSummary_vpcId' - The ID of the virtual private cloud (VPC).
newApplicationSummary ::
  ApplicationSummary
newApplicationSummary :: ApplicationSummary
newApplicationSummary =
  ApplicationSummary'
    { $sel:apiGatewayProxy:ApplicationSummary' :: Maybe ApiGatewayProxySummary
apiGatewayProxy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:applicationId:ApplicationSummary' :: Maybe Text
applicationId = forall a. Maybe a
Prelude.Nothing,
      $sel:arn:ApplicationSummary' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:createdByAccountId:ApplicationSummary' :: Maybe Text
createdByAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:ApplicationSummary' :: Maybe POSIX
createdTime = forall a. Maybe a
Prelude.Nothing,
      $sel:environmentId:ApplicationSummary' :: Maybe Text
environmentId = forall a. Maybe a
Prelude.Nothing,
      $sel:error:ApplicationSummary' :: Maybe ErrorResponse
error = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:ApplicationSummary' :: Maybe POSIX
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:name:ApplicationSummary' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:ownerAccountId:ApplicationSummary' :: Maybe Text
ownerAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:proxyType:ApplicationSummary' :: Maybe ProxyType
proxyType = forall a. Maybe a
Prelude.Nothing,
      $sel:state:ApplicationSummary' :: Maybe ApplicationState
state = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:ApplicationSummary' :: Maybe (Sensitive (HashMap Text Text))
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:vpcId:ApplicationSummary' :: Maybe Text
vpcId = forall a. Maybe a
Prelude.Nothing
    }

-- | The endpoint URL of the Amazon API Gateway proxy.
applicationSummary_apiGatewayProxy :: Lens.Lens' ApplicationSummary (Prelude.Maybe ApiGatewayProxySummary)
applicationSummary_apiGatewayProxy :: Lens' ApplicationSummary (Maybe ApiGatewayProxySummary)
applicationSummary_apiGatewayProxy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe ApiGatewayProxySummary
apiGatewayProxy :: Maybe ApiGatewayProxySummary
$sel:apiGatewayProxy:ApplicationSummary' :: ApplicationSummary -> Maybe ApiGatewayProxySummary
apiGatewayProxy} -> Maybe ApiGatewayProxySummary
apiGatewayProxy) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe ApiGatewayProxySummary
a -> ApplicationSummary
s {$sel:apiGatewayProxy:ApplicationSummary' :: Maybe ApiGatewayProxySummary
apiGatewayProxy = Maybe ApiGatewayProxySummary
a} :: ApplicationSummary)

-- | The unique identifier of the application.
applicationSummary_applicationId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_applicationId :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_applicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
applicationId :: Maybe Text
$sel:applicationId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
applicationId} -> Maybe Text
applicationId) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:applicationId:ApplicationSummary' :: Maybe Text
applicationId = Maybe Text
a} :: ApplicationSummary)

-- | The Amazon Resource Name (ARN) of the application.
applicationSummary_arn :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_arn :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
arn :: Maybe Text
$sel:arn:ApplicationSummary' :: ApplicationSummary -> Maybe Text
arn} -> Maybe Text
arn) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:arn:ApplicationSummary' :: Maybe Text
arn = Maybe Text
a} :: ApplicationSummary)

-- | The Amazon Web Services account ID of the application creator.
applicationSummary_createdByAccountId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_createdByAccountId :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_createdByAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
createdByAccountId :: Maybe Text
$sel:createdByAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
createdByAccountId} -> Maybe Text
createdByAccountId) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:createdByAccountId:ApplicationSummary' :: Maybe Text
createdByAccountId = Maybe Text
a} :: ApplicationSummary)

-- | A timestamp that indicates when the application is created.
applicationSummary_createdTime :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.UTCTime)
applicationSummary_createdTime :: Lens' ApplicationSummary (Maybe UTCTime)
applicationSummary_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe POSIX
createdTime :: Maybe POSIX
$sel:createdTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
createdTime} -> Maybe POSIX
createdTime) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe POSIX
a -> ApplicationSummary
s {$sel:createdTime:ApplicationSummary' :: Maybe POSIX
createdTime = Maybe POSIX
a} :: ApplicationSummary) 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

-- | The unique identifier of the environment.
applicationSummary_environmentId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_environmentId :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_environmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
environmentId :: Maybe Text
$sel:environmentId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
environmentId} -> Maybe Text
environmentId) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:environmentId:ApplicationSummary' :: Maybe Text
environmentId = Maybe Text
a} :: ApplicationSummary)

-- | Any error associated with the application resource.
applicationSummary_error :: Lens.Lens' ApplicationSummary (Prelude.Maybe ErrorResponse)
applicationSummary_error :: Lens' ApplicationSummary (Maybe ErrorResponse)
applicationSummary_error = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe ErrorResponse
error :: Maybe ErrorResponse
$sel:error:ApplicationSummary' :: ApplicationSummary -> Maybe ErrorResponse
error} -> Maybe ErrorResponse
error) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe ErrorResponse
a -> ApplicationSummary
s {$sel:error:ApplicationSummary' :: Maybe ErrorResponse
error = Maybe ErrorResponse
a} :: ApplicationSummary)

-- | A timestamp that indicates when the application was last updated.
applicationSummary_lastUpdatedTime :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.UTCTime)
applicationSummary_lastUpdatedTime :: Lens' ApplicationSummary (Maybe UTCTime)
applicationSummary_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe POSIX
lastUpdatedTime :: Maybe POSIX
$sel:lastUpdatedTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
lastUpdatedTime} -> Maybe POSIX
lastUpdatedTime) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe POSIX
a -> ApplicationSummary
s {$sel:lastUpdatedTime:ApplicationSummary' :: Maybe POSIX
lastUpdatedTime = Maybe POSIX
a} :: ApplicationSummary) 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

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

-- | The Amazon Web Services account ID of the application owner (which is
-- always the same as the environment owner account ID).
applicationSummary_ownerAccountId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_ownerAccountId :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_ownerAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
ownerAccountId :: Maybe Text
$sel:ownerAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
ownerAccountId} -> Maybe Text
ownerAccountId) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:ownerAccountId:ApplicationSummary' :: Maybe Text
ownerAccountId = Maybe Text
a} :: ApplicationSummary)

-- | The proxy type of the proxy created within the application.
applicationSummary_proxyType :: Lens.Lens' ApplicationSummary (Prelude.Maybe ProxyType)
applicationSummary_proxyType :: Lens' ApplicationSummary (Maybe ProxyType)
applicationSummary_proxyType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe ProxyType
proxyType :: Maybe ProxyType
$sel:proxyType:ApplicationSummary' :: ApplicationSummary -> Maybe ProxyType
proxyType} -> Maybe ProxyType
proxyType) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe ProxyType
a -> ApplicationSummary
s {$sel:proxyType:ApplicationSummary' :: Maybe ProxyType
proxyType = Maybe ProxyType
a} :: ApplicationSummary)

-- | The current state of the application.
applicationSummary_state :: Lens.Lens' ApplicationSummary (Prelude.Maybe ApplicationState)
applicationSummary_state :: Lens' ApplicationSummary (Maybe ApplicationState)
applicationSummary_state = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe ApplicationState
state :: Maybe ApplicationState
$sel:state:ApplicationSummary' :: ApplicationSummary -> Maybe ApplicationState
state} -> Maybe ApplicationState
state) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe ApplicationState
a -> ApplicationSummary
s {$sel:state:ApplicationSummary' :: Maybe ApplicationState
state = Maybe ApplicationState
a} :: ApplicationSummary)

-- | The tags assigned to the application.
applicationSummary_tags :: Lens.Lens' ApplicationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
applicationSummary_tags :: Lens' ApplicationSummary (Maybe (HashMap Text Text))
applicationSummary_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe (Sensitive (HashMap Text Text))
tags :: Maybe (Sensitive (HashMap Text Text))
$sel:tags:ApplicationSummary' :: ApplicationSummary -> Maybe (Sensitive (HashMap Text Text))
tags} -> Maybe (Sensitive (HashMap Text Text))
tags) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe (Sensitive (HashMap Text Text))
a -> ApplicationSummary
s {$sel:tags:ApplicationSummary' :: Maybe (Sensitive (HashMap Text Text))
tags = Maybe (Sensitive (HashMap Text Text))
a} :: ApplicationSummary) 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. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced)

-- | The ID of the virtual private cloud (VPC).
applicationSummary_vpcId :: Lens.Lens' ApplicationSummary (Prelude.Maybe Prelude.Text)
applicationSummary_vpcId :: Lens' ApplicationSummary (Maybe Text)
applicationSummary_vpcId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ApplicationSummary' {Maybe Text
vpcId :: Maybe Text
$sel:vpcId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
vpcId} -> Maybe Text
vpcId) (\s :: ApplicationSummary
s@ApplicationSummary' {} Maybe Text
a -> ApplicationSummary
s {$sel:vpcId:ApplicationSummary' :: Maybe Text
vpcId = Maybe Text
a} :: ApplicationSummary)

instance Data.FromJSON ApplicationSummary where
  parseJSON :: Value -> Parser ApplicationSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ApplicationSummary"
      ( \Object
x ->
          Maybe ApiGatewayProxySummary
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe ErrorResponse
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe ProxyType
-> Maybe ApplicationState
-> Maybe (Sensitive (HashMap Text Text))
-> Maybe Text
-> ApplicationSummary
ApplicationSummary'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ApiGatewayProxy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe 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 -> Parser (Maybe a)
Data..:? Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedByAccountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EnvironmentId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (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 -> Parser (Maybe a)
Data..:? Key
"LastUpdatedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OwnerAccountId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ProxyType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"State")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"VpcId")
      )

instance Prelude.Hashable ApplicationSummary where
  hashWithSalt :: Int -> ApplicationSummary -> Int
hashWithSalt Int
_salt ApplicationSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe POSIX
Maybe ApiGatewayProxySummary
Maybe ApplicationState
Maybe ErrorResponse
Maybe ProxyType
vpcId :: Maybe Text
tags :: Maybe (Sensitive (HashMap Text Text))
state :: Maybe ApplicationState
proxyType :: Maybe ProxyType
ownerAccountId :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
error :: Maybe ErrorResponse
environmentId :: Maybe Text
createdTime :: Maybe POSIX
createdByAccountId :: Maybe Text
arn :: Maybe Text
applicationId :: Maybe Text
apiGatewayProxy :: Maybe ApiGatewayProxySummary
$sel:vpcId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:tags:ApplicationSummary' :: ApplicationSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:state:ApplicationSummary' :: ApplicationSummary -> Maybe ApplicationState
$sel:proxyType:ApplicationSummary' :: ApplicationSummary -> Maybe ProxyType
$sel:ownerAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:name:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:lastUpdatedTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
$sel:error:ApplicationSummary' :: ApplicationSummary -> Maybe ErrorResponse
$sel:environmentId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:createdTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
$sel:createdByAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:arn:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:applicationId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:apiGatewayProxy:ApplicationSummary' :: ApplicationSummary -> Maybe ApiGatewayProxySummary
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ApiGatewayProxySummary
apiGatewayProxy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
applicationId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdByAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
environmentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ErrorResponse
error
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastUpdatedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
ownerAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProxyType
proxyType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ApplicationState
state
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive (HashMap Text Text))
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vpcId

instance Prelude.NFData ApplicationSummary where
  rnf :: ApplicationSummary -> ()
rnf ApplicationSummary' {Maybe Text
Maybe (Sensitive (HashMap Text Text))
Maybe POSIX
Maybe ApiGatewayProxySummary
Maybe ApplicationState
Maybe ErrorResponse
Maybe ProxyType
vpcId :: Maybe Text
tags :: Maybe (Sensitive (HashMap Text Text))
state :: Maybe ApplicationState
proxyType :: Maybe ProxyType
ownerAccountId :: Maybe Text
name :: Maybe Text
lastUpdatedTime :: Maybe POSIX
error :: Maybe ErrorResponse
environmentId :: Maybe Text
createdTime :: Maybe POSIX
createdByAccountId :: Maybe Text
arn :: Maybe Text
applicationId :: Maybe Text
apiGatewayProxy :: Maybe ApiGatewayProxySummary
$sel:vpcId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:tags:ApplicationSummary' :: ApplicationSummary -> Maybe (Sensitive (HashMap Text Text))
$sel:state:ApplicationSummary' :: ApplicationSummary -> Maybe ApplicationState
$sel:proxyType:ApplicationSummary' :: ApplicationSummary -> Maybe ProxyType
$sel:ownerAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:name:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:lastUpdatedTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
$sel:error:ApplicationSummary' :: ApplicationSummary -> Maybe ErrorResponse
$sel:environmentId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:createdTime:ApplicationSummary' :: ApplicationSummary -> Maybe POSIX
$sel:createdByAccountId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:arn:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:applicationId:ApplicationSummary' :: ApplicationSummary -> Maybe Text
$sel:apiGatewayProxy:ApplicationSummary' :: ApplicationSummary -> Maybe ApiGatewayProxySummary
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ApiGatewayProxySummary
apiGatewayProxy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
applicationId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdByAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
environmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ErrorResponse
error
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
ownerAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProxyType
proxyType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ApplicationState
state
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive (HashMap Text Text))
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vpcId