{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SMS.Types.AppSummary where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
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 creation time of the application.
    AppSummary -> Maybe POSIX
creationTime :: Prelude.Maybe Core.POSIX,
    -- | The number of servers present in the application.
    AppSummary -> Maybe Int
totalServers :: Prelude.Maybe Prelude.Int,
    -- | Status of the application.
    AppSummary -> Maybe AppStatus
status :: Prelude.Maybe AppStatus,
    -- | Details about the latest launch of the application.
    AppSummary -> Maybe LaunchDetails
launchDetails :: Prelude.Maybe LaunchDetails,
    -- | A message related to the launch status of the application.
    AppSummary -> Maybe Text
launchStatusMessage :: Prelude.Maybe Prelude.Text,
    -- | Status of the replication configuration.
    AppSummary -> Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus :: Prelude.Maybe AppReplicationConfigurationStatus,
    -- | A message related to the replication status of the application.
    AppSummary -> Maybe Text
replicationStatusMessage :: Prelude.Maybe Prelude.Text,
    -- | The number of server groups present in the application.
    AppSummary -> Maybe Int
totalServerGroups :: Prelude.Maybe Prelude.Int,
    -- | The name of the service role in the customer\'s account used by AWS SMS.
    AppSummary -> Maybe Text
roleName :: Prelude.Maybe Prelude.Text,
    -- | Status of the launch configuration.
    AppSummary -> Maybe AppLaunchConfigurationStatus
launchConfigurationStatus :: Prelude.Maybe AppLaunchConfigurationStatus,
    -- | The launch status of the application.
    AppSummary -> Maybe AppLaunchStatus
launchStatus :: Prelude.Maybe AppLaunchStatus,
    -- | The unique ID of the application.
    AppSummary -> Maybe Text
appId :: Prelude.Maybe Prelude.Text,
    -- | The name of the application.
    AppSummary -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | A message related to the status of the application
    AppSummary -> Maybe Text
statusMessage :: Prelude.Maybe Prelude.Text,
    -- | The timestamp of the application\'s most recent successful replication.
    AppSummary -> Maybe POSIX
latestReplicationTime :: Prelude.Maybe Core.POSIX,
    -- | The ID of the application.
    AppSummary -> Maybe Text
importedAppId :: Prelude.Maybe Prelude.Text,
    -- | The replication status of the application.
    AppSummary -> Maybe AppReplicationStatus
replicationStatus :: Prelude.Maybe AppReplicationStatus,
    -- | The last modified time of the application.
    AppSummary -> Maybe POSIX
lastModified :: Prelude.Maybe Core.POSIX,
    -- | The description of the application.
    AppSummary -> Maybe Text
description :: Prelude.Maybe Prelude.Text
  }
  deriving (AppSummary -> AppSummary -> Bool
(AppSummary -> AppSummary -> Bool)
-> (AppSummary -> AppSummary -> Bool) -> Eq AppSummary
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]
(Int -> ReadS AppSummary)
-> ReadS [AppSummary]
-> ReadPrec AppSummary
-> ReadPrec [AppSummary]
-> Read 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
(Int -> AppSummary -> ShowS)
-> (AppSummary -> String)
-> ([AppSummary] -> ShowS)
-> Show AppSummary
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. AppSummary -> Rep AppSummary x)
-> (forall x. Rep AppSummary x -> AppSummary) -> Generic AppSummary
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:
--
-- 'creationTime', 'appSummary_creationTime' - The creation time of the application.
--
-- 'totalServers', 'appSummary_totalServers' - The number of servers present in the application.
--
-- 'status', 'appSummary_status' - Status of the application.
--
-- 'launchDetails', 'appSummary_launchDetails' - Details about the latest launch of the application.
--
-- 'launchStatusMessage', 'appSummary_launchStatusMessage' - A message related to the launch status of the application.
--
-- 'replicationConfigurationStatus', 'appSummary_replicationConfigurationStatus' - Status of the replication configuration.
--
-- 'replicationStatusMessage', 'appSummary_replicationStatusMessage' - A message related to the replication status of the application.
--
-- 'totalServerGroups', 'appSummary_totalServerGroups' - The number of server groups present in the application.
--
-- 'roleName', 'appSummary_roleName' - The name of the service role in the customer\'s account used by AWS SMS.
--
-- 'launchConfigurationStatus', 'appSummary_launchConfigurationStatus' - Status of the launch configuration.
--
-- 'launchStatus', 'appSummary_launchStatus' - The launch status of the application.
--
-- 'appId', 'appSummary_appId' - The unique ID of the application.
--
-- 'name', 'appSummary_name' - The name of the application.
--
-- 'statusMessage', 'appSummary_statusMessage' - A message related to the status of the application
--
-- 'latestReplicationTime', 'appSummary_latestReplicationTime' - The timestamp of the application\'s most recent successful replication.
--
-- 'importedAppId', 'appSummary_importedAppId' - The ID of the application.
--
-- 'replicationStatus', 'appSummary_replicationStatus' - The replication status of the application.
--
-- 'lastModified', 'appSummary_lastModified' - The last modified time of the application.
--
-- 'description', 'appSummary_description' - The description of the application.
newAppSummary ::
  AppSummary
newAppSummary :: AppSummary
newAppSummary =
  AppSummary' :: Maybe POSIX
-> Maybe Int
-> Maybe AppStatus
-> Maybe LaunchDetails
-> Maybe Text
-> Maybe AppReplicationConfigurationStatus
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe AppLaunchConfigurationStatus
-> Maybe AppLaunchStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe AppReplicationStatus
-> Maybe POSIX
-> Maybe Text
-> AppSummary
AppSummary'
    { $sel:creationTime:AppSummary' :: Maybe POSIX
creationTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:totalServers:AppSummary' :: Maybe Int
totalServers = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:status:AppSummary' :: Maybe AppStatus
status = Maybe AppStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:launchDetails:AppSummary' :: Maybe LaunchDetails
launchDetails = Maybe LaunchDetails
forall a. Maybe a
Prelude.Nothing,
      $sel:launchStatusMessage:AppSummary' :: Maybe Text
launchStatusMessage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:replicationConfigurationStatus:AppSummary' :: Maybe AppReplicationConfigurationStatus
replicationConfigurationStatus = Maybe AppReplicationConfigurationStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:replicationStatusMessage:AppSummary' :: Maybe Text
replicationStatusMessage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:totalServerGroups:AppSummary' :: Maybe Int
totalServerGroups = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:roleName:AppSummary' :: Maybe Text
roleName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:launchConfigurationStatus:AppSummary' :: Maybe AppLaunchConfigurationStatus
launchConfigurationStatus = Maybe AppLaunchConfigurationStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:launchStatus:AppSummary' :: Maybe AppLaunchStatus
launchStatus = Maybe AppLaunchStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:appId:AppSummary' :: Maybe Text
appId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:name:AppSummary' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:statusMessage:AppSummary' :: Maybe Text
statusMessage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:latestReplicationTime:AppSummary' :: Maybe POSIX
latestReplicationTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:importedAppId:AppSummary' :: Maybe Text
importedAppId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:replicationStatus:AppSummary' :: Maybe AppReplicationStatus
replicationStatus = Maybe AppReplicationStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModified:AppSummary' :: Maybe POSIX
lastModified = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:description:AppSummary' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The creation time of the application.
appSummary_creationTime :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_creationTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> AppSummary -> f AppSummary
appSummary_creationTime = (AppSummary -> Maybe POSIX)
-> (AppSummary -> Maybe POSIX -> AppSummary)
-> Lens AppSummary AppSummary (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX)) -> AppSummary -> f AppSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> AppSummary
-> f AppSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The number of servers present in the application.
appSummary_totalServers :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Int)
appSummary_totalServers :: (Maybe Int -> f (Maybe Int)) -> AppSummary -> f AppSummary
appSummary_totalServers = (AppSummary -> Maybe Int)
-> (AppSummary -> Maybe Int -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Int) (Maybe Int)
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)

-- | Status of the application.
appSummary_status :: Lens.Lens' AppSummary (Prelude.Maybe AppStatus)
appSummary_status :: (Maybe AppStatus -> f (Maybe AppStatus))
-> AppSummary -> f AppSummary
appSummary_status = (AppSummary -> Maybe AppStatus)
-> (AppSummary -> Maybe AppStatus -> AppSummary)
-> Lens AppSummary AppSummary (Maybe AppStatus) (Maybe AppStatus)
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)

-- | Details about the latest launch of the application.
appSummary_launchDetails :: Lens.Lens' AppSummary (Prelude.Maybe LaunchDetails)
appSummary_launchDetails :: (Maybe LaunchDetails -> f (Maybe LaunchDetails))
-> AppSummary -> f AppSummary
appSummary_launchDetails = (AppSummary -> Maybe LaunchDetails)
-> (AppSummary -> Maybe LaunchDetails -> AppSummary)
-> Lens
     AppSummary AppSummary (Maybe LaunchDetails) (Maybe 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)

-- | A message related to the launch status of the application.
appSummary_launchStatusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_launchStatusMessage :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_launchStatusMessage = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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)

-- | Status of the replication configuration.
appSummary_replicationConfigurationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppReplicationConfigurationStatus)
appSummary_replicationConfigurationStatus :: (Maybe AppReplicationConfigurationStatus
 -> f (Maybe AppReplicationConfigurationStatus))
-> AppSummary -> f AppSummary
appSummary_replicationConfigurationStatus = (AppSummary -> Maybe AppReplicationConfigurationStatus)
-> (AppSummary
    -> Maybe AppReplicationConfigurationStatus -> AppSummary)
-> Lens
     AppSummary
     AppSummary
     (Maybe AppReplicationConfigurationStatus)
     (Maybe AppReplicationConfigurationStatus)
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)

-- | A message related to the replication status of the application.
appSummary_replicationStatusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_replicationStatusMessage :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_replicationStatusMessage = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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 number of server groups present in the application.
appSummary_totalServerGroups :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Int)
appSummary_totalServerGroups :: (Maybe Int -> f (Maybe Int)) -> AppSummary -> f AppSummary
appSummary_totalServerGroups = (AppSummary -> Maybe Int)
-> (AppSummary -> Maybe Int -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Int) (Maybe Int)
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 name of the service role in the customer\'s account used by AWS SMS.
appSummary_roleName :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_roleName :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_roleName = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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 launch configuration.
appSummary_launchConfigurationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppLaunchConfigurationStatus)
appSummary_launchConfigurationStatus :: (Maybe AppLaunchConfigurationStatus
 -> f (Maybe AppLaunchConfigurationStatus))
-> AppSummary -> f AppSummary
appSummary_launchConfigurationStatus = (AppSummary -> Maybe AppLaunchConfigurationStatus)
-> (AppSummary -> Maybe AppLaunchConfigurationStatus -> AppSummary)
-> Lens
     AppSummary
     AppSummary
     (Maybe AppLaunchConfigurationStatus)
     (Maybe AppLaunchConfigurationStatus)
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)

-- | The launch status of the application.
appSummary_launchStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppLaunchStatus)
appSummary_launchStatus :: (Maybe AppLaunchStatus -> f (Maybe AppLaunchStatus))
-> AppSummary -> f AppSummary
appSummary_launchStatus = (AppSummary -> Maybe AppLaunchStatus)
-> (AppSummary -> Maybe AppLaunchStatus -> AppSummary)
-> Lens
     AppSummary
     AppSummary
     (Maybe AppLaunchStatus)
     (Maybe AppLaunchStatus)
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)

-- | The unique ID of the application.
appSummary_appId :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_appId :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_appId = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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 name of the application.
appSummary_name :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_name :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_name = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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)

-- | A message related to the status of the application
appSummary_statusMessage :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_statusMessage :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_statusMessage = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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 timestamp of the application\'s most recent successful replication.
appSummary_latestReplicationTime :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_latestReplicationTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> AppSummary -> f AppSummary
appSummary_latestReplicationTime = (AppSummary -> Maybe POSIX)
-> (AppSummary -> Maybe POSIX -> AppSummary)
-> Lens AppSummary AppSummary (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX)) -> AppSummary -> f AppSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> AppSummary
-> f AppSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The ID of the application.
appSummary_importedAppId :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_importedAppId :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_importedAppId = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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 replication status of the application.
appSummary_replicationStatus :: Lens.Lens' AppSummary (Prelude.Maybe AppReplicationStatus)
appSummary_replicationStatus :: (Maybe AppReplicationStatus -> f (Maybe AppReplicationStatus))
-> AppSummary -> f AppSummary
appSummary_replicationStatus = (AppSummary -> Maybe AppReplicationStatus)
-> (AppSummary -> Maybe AppReplicationStatus -> AppSummary)
-> Lens
     AppSummary
     AppSummary
     (Maybe AppReplicationStatus)
     (Maybe AppReplicationStatus)
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)

-- | The last modified time of the application.
appSummary_lastModified :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.UTCTime)
appSummary_lastModified :: (Maybe UTCTime -> f (Maybe UTCTime)) -> AppSummary -> f AppSummary
appSummary_lastModified = (AppSummary -> Maybe POSIX)
-> (AppSummary -> Maybe POSIX -> AppSummary)
-> Lens AppSummary AppSummary (Maybe POSIX) (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX)) -> AppSummary -> f AppSummary)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> AppSummary
-> f AppSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The description of the application.
appSummary_description :: Lens.Lens' AppSummary (Prelude.Maybe Prelude.Text)
appSummary_description :: (Maybe Text -> f (Maybe Text)) -> AppSummary -> f AppSummary
appSummary_description = (AppSummary -> Maybe Text)
-> (AppSummary -> Maybe Text -> AppSummary)
-> Lens AppSummary AppSummary (Maybe Text) (Maybe Text)
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)

instance Core.FromJSON AppSummary where
  parseJSON :: Value -> Parser AppSummary
parseJSON =
    String
-> (Object -> Parser AppSummary) -> Value -> Parser AppSummary
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"AppSummary"
      ( \Object
x ->
          Maybe POSIX
-> Maybe Int
-> Maybe AppStatus
-> Maybe LaunchDetails
-> Maybe Text
-> Maybe AppReplicationConfigurationStatus
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe AppLaunchConfigurationStatus
-> Maybe AppLaunchStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe AppReplicationStatus
-> Maybe POSIX
-> Maybe Text
-> AppSummary
AppSummary'
            (Maybe POSIX
 -> Maybe Int
 -> Maybe AppStatus
 -> Maybe LaunchDetails
 -> Maybe Text
 -> Maybe AppReplicationConfigurationStatus
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe AppLaunchConfigurationStatus
 -> Maybe AppLaunchStatus
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe AppReplicationStatus
 -> Maybe POSIX
 -> Maybe Text
 -> AppSummary)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Int
      -> Maybe AppStatus
      -> Maybe LaunchDetails
      -> Maybe Text
      -> Maybe AppReplicationConfigurationStatus
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"creationTime")
            Parser
  (Maybe Int
   -> Maybe AppStatus
   -> Maybe LaunchDetails
   -> Maybe Text
   -> Maybe AppReplicationConfigurationStatus
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Int)
-> Parser
     (Maybe AppStatus
      -> Maybe LaunchDetails
      -> Maybe Text
      -> Maybe AppReplicationConfigurationStatus
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"totalServers")
            Parser
  (Maybe AppStatus
   -> Maybe LaunchDetails
   -> Maybe Text
   -> Maybe AppReplicationConfigurationStatus
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe AppStatus)
-> Parser
     (Maybe LaunchDetails
      -> Maybe Text
      -> Maybe AppReplicationConfigurationStatus
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AppStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"status")
            Parser
  (Maybe LaunchDetails
   -> Maybe Text
   -> Maybe AppReplicationConfigurationStatus
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe LaunchDetails)
-> Parser
     (Maybe Text
      -> Maybe AppReplicationConfigurationStatus
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe LaunchDetails)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"launchDetails")
            Parser
  (Maybe Text
   -> Maybe AppReplicationConfigurationStatus
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe AppReplicationConfigurationStatus
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"launchStatusMessage")
            Parser
  (Maybe AppReplicationConfigurationStatus
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe AppReplicationConfigurationStatus)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AppReplicationConfigurationStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"replicationConfigurationStatus")
            Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"replicationStatusMessage")
            Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"totalServerGroups")
            Parser
  (Maybe Text
   -> Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe AppLaunchConfigurationStatus
      -> Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"roleName")
            Parser
  (Maybe AppLaunchConfigurationStatus
   -> Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe AppLaunchConfigurationStatus)
-> Parser
     (Maybe AppLaunchStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AppLaunchConfigurationStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"launchConfigurationStatus")
            Parser
  (Maybe AppLaunchStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe AppLaunchStatus)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AppLaunchStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"launchStatus")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"appId")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"name")
            Parser
  (Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"statusMessage")
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe AppReplicationStatus
      -> Maybe POSIX
      -> Maybe Text
      -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"latestReplicationTime")
            Parser
  (Maybe Text
   -> Maybe AppReplicationStatus
   -> Maybe POSIX
   -> Maybe Text
   -> AppSummary)
-> Parser (Maybe Text)
-> Parser
     (Maybe AppReplicationStatus
      -> Maybe POSIX -> Maybe Text -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"importedAppId")
            Parser
  (Maybe AppReplicationStatus
   -> Maybe POSIX -> Maybe Text -> AppSummary)
-> Parser (Maybe AppReplicationStatus)
-> Parser (Maybe POSIX -> Maybe Text -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AppReplicationStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"replicationStatus")
            Parser (Maybe POSIX -> Maybe Text -> AppSummary)
-> Parser (Maybe POSIX) -> Parser (Maybe Text -> AppSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"lastModified")
            Parser (Maybe Text -> AppSummary)
-> Parser (Maybe Text) -> Parser AppSummary
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"description")
      )

instance Prelude.Hashable AppSummary

instance Prelude.NFData AppSummary