{-# 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.SMS.Types.AppSummary
-- 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.SMS.Types.AppSummary where

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 Amazonka.SMS.Types.AppLaunchConfigurationStatus
import Amazonka.SMS.Types.AppLaunchStatus
import Amazonka.SMS.Types.AppReplicationConfigurationStatus
import Amazonka.SMS.Types.AppReplicationStatus
import Amazonka.SMS.Types.AppStatus
import Amazonka.SMS.Types.LaunchDetails

-- | Information about the application.
--
-- /See:/ 'newAppSummary' smart constructor.
data AppSummary = AppSummary'
  { -- | The unique ID of the application.
    AppSummary -> Maybe Text
appId :: Prelude.Maybe Prelude.Text,
    -- | The creation time of the application.
    AppSummary -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The description of the application.
    AppSummary -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The ID of the application.
    AppSummary -> Maybe Text
importedAppId :: Prelude.Maybe Prelude.Text,
    -- | The last modified time of the application.
    AppSummary -> Maybe POSIX
lastModified :: Prelude.Maybe Data.POSIX,
    -- | The timestamp of the application\'s most recent successful replication.
    AppSummary -> Maybe POSIX
latestReplicationTime :: Prelude.Maybe Data.POSIX,
    -- | Status of the launch configuration.
    AppSummary -> Maybe AppLaunchConfigurationStatus
launchConfigurationStatus :: Prelude.Maybe AppLaunchConfigurationStatus,
    -- | Details about the latest launch of the application.
    AppSummary -> Maybe LaunchDetails
launchDetails :: Prelude.Maybe LaunchDetails,
    -- | The launch status of the application.
    AppSummary -> Maybe AppLaunchStatus
launchStatus :: Prelude.Maybe AppLaunchStatus,
    -- | A message related to the launch status of the application.
    AppSummary -> Maybe Text
launchStatusMessage :: Prelude.Maybe Prelude.Text,
    -- | The name of the application.
    AppSummary -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Status of the replication configuration.
    AppSummary -> Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus :: Prelude.Maybe AppReplicationConfigurationStatus,
    -- | The replication status of the application.
    AppSummary -> Maybe AppReplicationStatus
replicationStatus :: Prelude.Maybe AppReplicationStatus,
    -- | A message related to the replication status of the application.
    AppSummary -> Maybe Text
replicationStatusMessage :: Prelude.Maybe Prelude.Text,
    -- | The name of the service role in the customer\'s account used by Server
    -- Migration Service.
    AppSummary -> Maybe Text
roleName :: Prelude.Maybe Prelude.Text,
    -- | Status of the application.
    AppSummary -> Maybe AppStatus
status :: Prelude.Maybe AppStatus,
    -- | A message related to the status of the application
    AppSummary -> Maybe Text
statusMessage :: Prelude.Maybe Prelude.Text,
    -- | The number of server groups present in the application.
    AppSummary -> Maybe Int
totalServerGroups :: Prelude.Maybe Prelude.Int,
    -- | The number of servers present in the application.
    AppSummary -> Maybe Int
totalServers :: Prelude.Maybe Prelude.Int
  }
  deriving (AppSummary -> AppSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AppSummary -> AppSummary -> Bool
$c/= :: AppSummary -> AppSummary -> Bool
== :: AppSummary -> AppSummary -> Bool
$c== :: AppSummary -> AppSummary -> Bool
Prelude.Eq, ReadPrec [AppSummary]
ReadPrec AppSummary
Int -> ReadS AppSummary
ReadS [AppSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AppSummary]
$creadListPrec :: ReadPrec [AppSummary]
readPrec :: ReadPrec AppSummary
$creadPrec :: ReadPrec AppSummary
readList :: ReadS [AppSummary]
$creadList :: ReadS [AppSummary]
readsPrec :: Int -> ReadS AppSummary
$creadsPrec :: Int -> ReadS AppSummary
Prelude.Read, Int -> AppSummary -> ShowS
[AppSummary] -> ShowS
AppSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AppSummary] -> ShowS
$cshowList :: [AppSummary] -> ShowS
show :: AppSummary -> String
$cshow :: AppSummary -> String
showsPrec :: Int -> AppSummary -> ShowS
$cshowsPrec :: Int -> AppSummary -> ShowS
Prelude.Show, forall x. Rep AppSummary x -> AppSummary
forall x. AppSummary -> Rep AppSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AppSummary x -> AppSummary
$cfrom :: forall x. AppSummary -> Rep AppSummary x
Prelude.Generic)

-- |
-- Create a value of 'AppSummary' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'appId', 'appSummary_appId' - The unique ID of the application.
--
-- 'creationTime', 'appSummary_creationTime' - The creation time of the application.
--
-- 'description', 'appSummary_description' - The description of the application.
--
-- 'importedAppId', 'appSummary_importedAppId' - The ID of the application.
--
-- 'lastModified', 'appSummary_lastModified' - The last modified time of the application.
--
-- 'latestReplicationTime', 'appSummary_latestReplicationTime' - The timestamp of the application\'s most recent successful replication.
--
-- 'launchConfigurationStatus', 'appSummary_launchConfigurationStatus' - Status of the launch configuration.
--
-- 'launchDetails', 'appSummary_launchDetails' - Details about the latest launch of the application.
--
-- 'launchStatus', 'appSummary_launchStatus' - The launch status of the application.
--
-- 'launchStatusMessage', 'appSummary_launchStatusMessage' - A message related to the launch status of the application.
--
-- 'name', 'appSummary_name' - The name of the application.
--
-- 'replicationConfigurationStatus', 'appSummary_replicationConfigurationStatus' - Status of the replication configuration.
--
-- 'replicationStatus', 'appSummary_replicationStatus' - The replication status of the application.
--
-- 'replicationStatusMessage', 'appSummary_replicationStatusMessage' - A message related to the replication status of the application.
--
-- 'roleName', 'appSummary_roleName' - The name of the service role in the customer\'s account used by Server
-- Migration Service.
--
-- 'status', 'appSummary_status' - Status of the application.
--
-- 'statusMessage', 'appSummary_statusMessage' - A message related to the status of the application
--
-- 'totalServerGroups', 'appSummary_totalServerGroups' - The number of server groups present in the application.
--
-- 'totalServers', 'appSummary_totalServers' - The number of servers present in the application.
newAppSummary ::
  AppSummary
newAppSummary :: AppSummary
newAppSummary =
  AppSummary'
    { $sel:appId:AppSummary' :: Maybe Text
appId = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:AppSummary' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:AppSummary' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:importedAppId:AppSummary' :: Maybe Text
importedAppId = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:AppSummary' :: Maybe POSIX
lastModified = forall a. Maybe a
Prelude.Nothing,
      $sel:latestReplicationTime:AppSummary' :: Maybe POSIX
latestReplicationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:launchConfigurationStatus:AppSummary' :: Maybe AppLaunchConfigurationStatus
launchConfigurationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:launchDetails:AppSummary' :: Maybe LaunchDetails
launchDetails = forall a. Maybe a
Prelude.Nothing,
      $sel:launchStatus:AppSummary' :: Maybe AppLaunchStatus
launchStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:launchStatusMessage:AppSummary' :: Maybe Text
launchStatusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:name:AppSummary' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:replicationConfigurationStatus:AppSummary' :: Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:replicationStatus:AppSummary' :: Maybe AppReplicationStatus
replicationStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:replicationStatusMessage:AppSummary' :: Maybe Text
replicationStatusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:roleName:AppSummary' :: Maybe Text
roleName = forall a. Maybe a
Prelude.Nothing,
      $sel:status:AppSummary' :: Maybe AppStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:statusMessage:AppSummary' :: Maybe Text
statusMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:totalServerGroups:AppSummary' :: Maybe Int
totalServerGroups = forall a. Maybe a
Prelude.Nothing,
      $sel:totalServers:AppSummary' :: Maybe Int
totalServers = forall a. Maybe a
Prelude.Nothing
    }

-- | The unique ID of the application.
appSummary_appId :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_appId :: Lens' AppSummary (Maybe Text)
appSummary_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
appId :: Maybe Text
$sel:appId:AppSummary' :: AppSummary -> Maybe Text
appId} -> Maybe Text
appId) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:appId:AppSummary' :: Maybe Text
appId = Maybe Text
a} :: AppSummary)

-- | The creation time of the application.
appSummary_creationTime :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_creationTime :: Lens' AppSummary (Maybe UTCTime)
appSummary_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:AppSummary' :: AppSummary -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: AppSummary
s@AppSummary' {} Maybe POSIX
a -> AppSummary
s {$sel:creationTime:AppSummary' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: AppSummary) 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 description of the application.
appSummary_description :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_description :: Lens' AppSummary (Maybe Text)
appSummary_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
description :: Maybe Text
$sel:description:AppSummary' :: AppSummary -> Maybe Text
description} -> Maybe Text
description) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:description:AppSummary' :: Maybe Text
description = Maybe Text
a} :: AppSummary)

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

-- | The last modified time of the application.
appSummary_lastModified :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_lastModified :: Lens' AppSummary (Maybe UTCTime)
appSummary_lastModified = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe POSIX
lastModified :: Maybe POSIX
$sel:lastModified:AppSummary' :: AppSummary -> Maybe POSIX
lastModified} -> Maybe POSIX
lastModified) (\s :: AppSummary
s@AppSummary' {} Maybe POSIX
a -> AppSummary
s {$sel:lastModified:AppSummary' :: Maybe POSIX
lastModified = Maybe POSIX
a} :: AppSummary) 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 timestamp of the application\'s most recent successful replication.
appSummary_latestReplicationTime :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_latestReplicationTime :: Lens' AppSummary (Maybe UTCTime)
appSummary_latestReplicationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe POSIX
latestReplicationTime :: Maybe POSIX
$sel:latestReplicationTime:AppSummary' :: AppSummary -> Maybe POSIX
latestReplicationTime} -> Maybe POSIX
latestReplicationTime) (\s :: AppSummary
s@AppSummary' {} Maybe POSIX
a -> AppSummary
s {$sel:latestReplicationTime:AppSummary' :: Maybe POSIX
latestReplicationTime = Maybe POSIX
a} :: AppSummary) 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

-- | Status of the launch configuration.
appSummary_launchConfigurationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppLaunchConfigurationStatus)
appSummary_launchConfigurationStatus :: Lens' AppSummary (Maybe AppLaunchConfigurationStatus)
appSummary_launchConfigurationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe AppLaunchConfigurationStatus
launchConfigurationStatus :: Maybe AppLaunchConfigurationStatus
$sel:launchConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppLaunchConfigurationStatus
launchConfigurationStatus} -> Maybe AppLaunchConfigurationStatus
launchConfigurationStatus) (\s :: AppSummary
s@AppSummary' {} Maybe AppLaunchConfigurationStatus
a -> AppSummary
s {$sel:launchConfigurationStatus:AppSummary' :: Maybe AppLaunchConfigurationStatus
launchConfigurationStatus = Maybe AppLaunchConfigurationStatus
a} :: AppSummary)

-- | Details about the latest launch of the application.
appSummary_launchDetails :: Lens.Lens' AppSummary (Prelude.Maybe LaunchDetails)
appSummary_launchDetails :: Lens' AppSummary (Maybe LaunchDetails)
appSummary_launchDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe LaunchDetails
launchDetails :: Maybe LaunchDetails
$sel:launchDetails:AppSummary' :: AppSummary -> Maybe LaunchDetails
launchDetails} -> Maybe LaunchDetails
launchDetails) (\s :: AppSummary
s@AppSummary' {} Maybe LaunchDetails
a -> AppSummary
s {$sel:launchDetails:AppSummary' :: Maybe LaunchDetails
launchDetails = Maybe LaunchDetails
a} :: AppSummary)

-- | The launch status of the application.
appSummary_launchStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppLaunchStatus)
appSummary_launchStatus :: Lens' AppSummary (Maybe AppLaunchStatus)
appSummary_launchStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe AppLaunchStatus
launchStatus :: Maybe AppLaunchStatus
$sel:launchStatus:AppSummary' :: AppSummary -> Maybe AppLaunchStatus
launchStatus} -> Maybe AppLaunchStatus
launchStatus) (\s :: AppSummary
s@AppSummary' {} Maybe AppLaunchStatus
a -> AppSummary
s {$sel:launchStatus:AppSummary' :: Maybe AppLaunchStatus
launchStatus = Maybe AppLaunchStatus
a} :: AppSummary)

-- | A message related to the launch status of the application.
appSummary_launchStatusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_launchStatusMessage :: Lens' AppSummary (Maybe Text)
appSummary_launchStatusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
launchStatusMessage :: Maybe Text
$sel:launchStatusMessage:AppSummary' :: AppSummary -> Maybe Text
launchStatusMessage} -> Maybe Text
launchStatusMessage) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:launchStatusMessage:AppSummary' :: Maybe Text
launchStatusMessage = Maybe Text
a} :: AppSummary)

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

-- | Status of the replication configuration.
appSummary_replicationConfigurationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppReplicationConfigurationStatus)
appSummary_replicationConfigurationStatus :: Lens' AppSummary (Maybe AppReplicationConfigurationStatus)
appSummary_replicationConfigurationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus :: Maybe AppReplicationConfigurationStatus
$sel:replicationConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus} -> Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus) (\s :: AppSummary
s@AppSummary' {} Maybe AppReplicationConfigurationStatus
a -> AppSummary
s {$sel:replicationConfigurationStatus:AppSummary' :: Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus = Maybe AppReplicationConfigurationStatus
a} :: AppSummary)

-- | The replication status of the application.
appSummary_replicationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppReplicationStatus)
appSummary_replicationStatus :: Lens' AppSummary (Maybe AppReplicationStatus)
appSummary_replicationStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe AppReplicationStatus
replicationStatus :: Maybe AppReplicationStatus
$sel:replicationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationStatus
replicationStatus} -> Maybe AppReplicationStatus
replicationStatus) (\s :: AppSummary
s@AppSummary' {} Maybe AppReplicationStatus
a -> AppSummary
s {$sel:replicationStatus:AppSummary' :: Maybe AppReplicationStatus
replicationStatus = Maybe AppReplicationStatus
a} :: AppSummary)

-- | A message related to the replication status of the application.
appSummary_replicationStatusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_replicationStatusMessage :: Lens' AppSummary (Maybe Text)
appSummary_replicationStatusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
replicationStatusMessage :: Maybe Text
$sel:replicationStatusMessage:AppSummary' :: AppSummary -> Maybe Text
replicationStatusMessage} -> Maybe Text
replicationStatusMessage) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:replicationStatusMessage:AppSummary' :: Maybe Text
replicationStatusMessage = Maybe Text
a} :: AppSummary)

-- | The name of the service role in the customer\'s account used by Server
-- Migration Service.
appSummary_roleName :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_roleName :: Lens' AppSummary (Maybe Text)
appSummary_roleName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
roleName :: Maybe Text
$sel:roleName:AppSummary' :: AppSummary -> Maybe Text
roleName} -> Maybe Text
roleName) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:roleName:AppSummary' :: Maybe Text
roleName = Maybe Text
a} :: AppSummary)

-- | Status of the application.
appSummary_status :: Lens.Lens' AppSummary (Prelude.Maybe AppStatus)
appSummary_status :: Lens' AppSummary (Maybe AppStatus)
appSummary_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe AppStatus
status :: Maybe AppStatus
$sel:status:AppSummary' :: AppSummary -> Maybe AppStatus
status} -> Maybe AppStatus
status) (\s :: AppSummary
s@AppSummary' {} Maybe AppStatus
a -> AppSummary
s {$sel:status:AppSummary' :: Maybe AppStatus
status = Maybe AppStatus
a} :: AppSummary)

-- | A message related to the status of the application
appSummary_statusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_statusMessage :: Lens' AppSummary (Maybe Text)
appSummary_statusMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Text
statusMessage :: Maybe Text
$sel:statusMessage:AppSummary' :: AppSummary -> Maybe Text
statusMessage} -> Maybe Text
statusMessage) (\s :: AppSummary
s@AppSummary' {} Maybe Text
a -> AppSummary
s {$sel:statusMessage:AppSummary' :: Maybe Text
statusMessage = Maybe Text
a} :: AppSummary)

-- | The number of server groups present in the application.
appSummary_totalServerGroups :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Int)
appSummary_totalServerGroups :: Lens' AppSummary (Maybe Int)
appSummary_totalServerGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Int
totalServerGroups :: Maybe Int
$sel:totalServerGroups:AppSummary' :: AppSummary -> Maybe Int
totalServerGroups} -> Maybe Int
totalServerGroups) (\s :: AppSummary
s@AppSummary' {} Maybe Int
a -> AppSummary
s {$sel:totalServerGroups:AppSummary' :: Maybe Int
totalServerGroups = Maybe Int
a} :: AppSummary)

-- | The number of servers present in the application.
appSummary_totalServers :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Int)
appSummary_totalServers :: Lens' AppSummary (Maybe Int)
appSummary_totalServers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AppSummary' {Maybe Int
totalServers :: Maybe Int
$sel:totalServers:AppSummary' :: AppSummary -> Maybe Int
totalServers} -> Maybe Int
totalServers) (\s :: AppSummary
s@AppSummary' {} Maybe Int
a -> AppSummary
s {$sel:totalServers:AppSummary' :: Maybe Int
totalServers = Maybe Int
a} :: AppSummary)

instance Data.FromJSON AppSummary where
  parseJSON :: Value -> Parser AppSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"AppSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe AppLaunchConfigurationStatus
-> Maybe LaunchDetails
-> Maybe AppLaunchStatus
-> Maybe Text
-> Maybe Text
-> Maybe AppReplicationConfigurationStatus
-> Maybe AppReplicationStatus
-> Maybe Text
-> Maybe Text
-> Maybe AppStatus
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> AppSummary
AppSummary'
            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
"appId")
            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
"creationTime")
            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
"description")
            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
"importedAppId")
            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
"lastModified")
            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
"latestReplicationTime")
            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
"launchConfigurationStatus")
            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
"launchDetails")
            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
"launchStatus")
            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
"launchStatusMessage")
            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
"replicationConfigurationStatus")
            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
"replicationStatus")
            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
"replicationStatusMessage")
            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
"roleName")
            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
"status")
            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
"statusMessage")
            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
"totalServerGroups")
            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
"totalServers")
      )

instance Prelude.Hashable AppSummary where
  hashWithSalt :: Int -> AppSummary -> Int
hashWithSalt Int
_salt AppSummary' {Maybe Int
Maybe Text
Maybe POSIX
Maybe AppLaunchConfigurationStatus
Maybe AppLaunchStatus
Maybe AppReplicationConfigurationStatus
Maybe AppReplicationStatus
Maybe AppStatus
Maybe LaunchDetails
totalServers :: Maybe Int
totalServerGroups :: Maybe Int
statusMessage :: Maybe Text
status :: Maybe AppStatus
roleName :: Maybe Text
replicationStatusMessage :: Maybe Text
replicationStatus :: Maybe AppReplicationStatus
replicationConfigurationStatus :: Maybe AppReplicationConfigurationStatus
name :: Maybe Text
launchStatusMessage :: Maybe Text
launchStatus :: Maybe AppLaunchStatus
launchDetails :: Maybe LaunchDetails
launchConfigurationStatus :: Maybe AppLaunchConfigurationStatus
latestReplicationTime :: Maybe POSIX
lastModified :: Maybe POSIX
importedAppId :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
appId :: Maybe Text
$sel:totalServers:AppSummary' :: AppSummary -> Maybe Int
$sel:totalServerGroups:AppSummary' :: AppSummary -> Maybe Int
$sel:statusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:status:AppSummary' :: AppSummary -> Maybe AppStatus
$sel:roleName:AppSummary' :: AppSummary -> Maybe Text
$sel:replicationStatusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:replicationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationStatus
$sel:replicationConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationConfigurationStatus
$sel:name:AppSummary' :: AppSummary -> Maybe Text
$sel:launchStatusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:launchStatus:AppSummary' :: AppSummary -> Maybe AppLaunchStatus
$sel:launchDetails:AppSummary' :: AppSummary -> Maybe LaunchDetails
$sel:launchConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppLaunchConfigurationStatus
$sel:latestReplicationTime:AppSummary' :: AppSummary -> Maybe POSIX
$sel:lastModified:AppSummary' :: AppSummary -> Maybe POSIX
$sel:importedAppId:AppSummary' :: AppSummary -> Maybe Text
$sel:description:AppSummary' :: AppSummary -> Maybe Text
$sel:creationTime:AppSummary' :: AppSummary -> Maybe POSIX
$sel:appId:AppSummary' :: AppSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
importedAppId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModified
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
latestReplicationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppLaunchConfigurationStatus
launchConfigurationStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchDetails
launchDetails
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppLaunchStatus
launchStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
launchStatusMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppReplicationStatus
replicationStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
replicationStatusMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AppStatus
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statusMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
totalServerGroups
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
totalServers

instance Prelude.NFData AppSummary where
  rnf :: AppSummary -> ()
rnf AppSummary' {Maybe Int
Maybe Text
Maybe POSIX
Maybe AppLaunchConfigurationStatus
Maybe AppLaunchStatus
Maybe AppReplicationConfigurationStatus
Maybe AppReplicationStatus
Maybe AppStatus
Maybe LaunchDetails
totalServers :: Maybe Int
totalServerGroups :: Maybe Int
statusMessage :: Maybe Text
status :: Maybe AppStatus
roleName :: Maybe Text
replicationStatusMessage :: Maybe Text
replicationStatus :: Maybe AppReplicationStatus
replicationConfigurationStatus :: Maybe AppReplicationConfigurationStatus
name :: Maybe Text
launchStatusMessage :: Maybe Text
launchStatus :: Maybe AppLaunchStatus
launchDetails :: Maybe LaunchDetails
launchConfigurationStatus :: Maybe AppLaunchConfigurationStatus
latestReplicationTime :: Maybe POSIX
lastModified :: Maybe POSIX
importedAppId :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
appId :: Maybe Text
$sel:totalServers:AppSummary' :: AppSummary -> Maybe Int
$sel:totalServerGroups:AppSummary' :: AppSummary -> Maybe Int
$sel:statusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:status:AppSummary' :: AppSummary -> Maybe AppStatus
$sel:roleName:AppSummary' :: AppSummary -> Maybe Text
$sel:replicationStatusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:replicationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationStatus
$sel:replicationConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppReplicationConfigurationStatus
$sel:name:AppSummary' :: AppSummary -> Maybe Text
$sel:launchStatusMessage:AppSummary' :: AppSummary -> Maybe Text
$sel:launchStatus:AppSummary' :: AppSummary -> Maybe AppLaunchStatus
$sel:launchDetails:AppSummary' :: AppSummary -> Maybe LaunchDetails
$sel:launchConfigurationStatus:AppSummary' :: AppSummary -> Maybe AppLaunchConfigurationStatus
$sel:latestReplicationTime:AppSummary' :: AppSummary -> Maybe POSIX
$sel:lastModified:AppSummary' :: AppSummary -> Maybe POSIX
$sel:importedAppId:AppSummary' :: AppSummary -> Maybe Text
$sel:description:AppSummary' :: AppSummary -> Maybe Text
$sel:creationTime:AppSummary' :: AppSummary -> Maybe POSIX
$sel:appId:AppSummary' :: AppSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      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
importedAppId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModified
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
latestReplicationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AppLaunchConfigurationStatus
launchConfigurationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchDetails
launchDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AppLaunchStatus
launchStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
launchStatusMessage
      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 AppReplicationConfigurationStatus
replicationConfigurationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AppReplicationStatus
replicationStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
replicationStatusMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AppStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
totalServerGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
totalServers