{-# 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.ElasticBeanstalk.Types.PlatformSummary
-- 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.ElasticBeanstalk.Types.PlatformSummary where

import qualified Amazonka.Core as Core
import Amazonka.ElasticBeanstalk.Types.PlatformStatus
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Summary information about a platform version.
--
-- /See:/ 'newPlatformSummary' smart constructor.
data PlatformSummary = PlatformSummary'
  { -- | The platform branch to which the platform version belongs.
    PlatformSummary -> Maybe Text
platformBranchName :: Prelude.Maybe Prelude.Text,
    -- | The additions associated with the platform version.
    PlatformSummary -> Maybe [Text]
supportedAddonList :: Prelude.Maybe [Prelude.Text],
    -- | The category of platform version.
    PlatformSummary -> Maybe Text
platformCategory :: Prelude.Maybe Prelude.Text,
    -- | The state of the platform version\'s branch in its lifecycle.
    --
    -- Possible values: @beta@ | @supported@ | @deprecated@ | @retired@
    PlatformSummary -> Maybe Text
platformBranchLifecycleState :: Prelude.Maybe Prelude.Text,
    -- | The version string of the platform version.
    PlatformSummary -> Maybe Text
platformVersion :: Prelude.Maybe Prelude.Text,
    -- | The status of the platform version. You can create an environment from
    -- the platform version once it is ready.
    PlatformSummary -> Maybe PlatformStatus
platformStatus :: Prelude.Maybe PlatformStatus,
    -- | The state of the platform version in its lifecycle.
    --
    -- Possible values: @recommended@ | empty
    --
    -- If an empty value is returned, the platform version is supported but
    -- isn\'t the recommended one for its branch.
    PlatformSummary -> Maybe Text
platformLifecycleState :: Prelude.Maybe Prelude.Text,
    -- | The AWS account ID of the person who created the platform version.
    PlatformSummary -> Maybe Text
platformOwner :: Prelude.Maybe Prelude.Text,
    -- | The operating system used by the platform version.
    PlatformSummary -> Maybe Text
operatingSystemName :: Prelude.Maybe Prelude.Text,
    -- | The ARN of the platform version.
    PlatformSummary -> Maybe Text
platformArn :: Prelude.Maybe Prelude.Text,
    -- | The version of the operating system used by the platform version.
    PlatformSummary -> Maybe Text
operatingSystemVersion :: Prelude.Maybe Prelude.Text,
    -- | The tiers in which the platform version runs.
    PlatformSummary -> Maybe [Text]
supportedTierList :: Prelude.Maybe [Prelude.Text]
  }
  deriving (PlatformSummary -> PlatformSummary -> Bool
(PlatformSummary -> PlatformSummary -> Bool)
-> (PlatformSummary -> PlatformSummary -> Bool)
-> Eq PlatformSummary
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlatformSummary -> PlatformSummary -> Bool
$c/= :: PlatformSummary -> PlatformSummary -> Bool
== :: PlatformSummary -> PlatformSummary -> Bool
$c== :: PlatformSummary -> PlatformSummary -> Bool
Prelude.Eq, ReadPrec [PlatformSummary]
ReadPrec PlatformSummary
Int -> ReadS PlatformSummary
ReadS [PlatformSummary]
(Int -> ReadS PlatformSummary)
-> ReadS [PlatformSummary]
-> ReadPrec PlatformSummary
-> ReadPrec [PlatformSummary]
-> Read PlatformSummary
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PlatformSummary]
$creadListPrec :: ReadPrec [PlatformSummary]
readPrec :: ReadPrec PlatformSummary
$creadPrec :: ReadPrec PlatformSummary
readList :: ReadS [PlatformSummary]
$creadList :: ReadS [PlatformSummary]
readsPrec :: Int -> ReadS PlatformSummary
$creadsPrec :: Int -> ReadS PlatformSummary
Prelude.Read, Int -> PlatformSummary -> ShowS
[PlatformSummary] -> ShowS
PlatformSummary -> String
(Int -> PlatformSummary -> ShowS)
-> (PlatformSummary -> String)
-> ([PlatformSummary] -> ShowS)
-> Show PlatformSummary
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlatformSummary] -> ShowS
$cshowList :: [PlatformSummary] -> ShowS
show :: PlatformSummary -> String
$cshow :: PlatformSummary -> String
showsPrec :: Int -> PlatformSummary -> ShowS
$cshowsPrec :: Int -> PlatformSummary -> ShowS
Prelude.Show, (forall x. PlatformSummary -> Rep PlatformSummary x)
-> (forall x. Rep PlatformSummary x -> PlatformSummary)
-> Generic PlatformSummary
forall x. Rep PlatformSummary x -> PlatformSummary
forall x. PlatformSummary -> Rep PlatformSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PlatformSummary x -> PlatformSummary
$cfrom :: forall x. PlatformSummary -> Rep PlatformSummary x
Prelude.Generic)

-- |
-- Create a value of 'PlatformSummary' 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:
--
-- 'platformBranchName', 'platformSummary_platformBranchName' - The platform branch to which the platform version belongs.
--
-- 'supportedAddonList', 'platformSummary_supportedAddonList' - The additions associated with the platform version.
--
-- 'platformCategory', 'platformSummary_platformCategory' - The category of platform version.
--
-- 'platformBranchLifecycleState', 'platformSummary_platformBranchLifecycleState' - The state of the platform version\'s branch in its lifecycle.
--
-- Possible values: @beta@ | @supported@ | @deprecated@ | @retired@
--
-- 'platformVersion', 'platformSummary_platformVersion' - The version string of the platform version.
--
-- 'platformStatus', 'platformSummary_platformStatus' - The status of the platform version. You can create an environment from
-- the platform version once it is ready.
--
-- 'platformLifecycleState', 'platformSummary_platformLifecycleState' - The state of the platform version in its lifecycle.
--
-- Possible values: @recommended@ | empty
--
-- If an empty value is returned, the platform version is supported but
-- isn\'t the recommended one for its branch.
--
-- 'platformOwner', 'platformSummary_platformOwner' - The AWS account ID of the person who created the platform version.
--
-- 'operatingSystemName', 'platformSummary_operatingSystemName' - The operating system used by the platform version.
--
-- 'platformArn', 'platformSummary_platformArn' - The ARN of the platform version.
--
-- 'operatingSystemVersion', 'platformSummary_operatingSystemVersion' - The version of the operating system used by the platform version.
--
-- 'supportedTierList', 'platformSummary_supportedTierList' - The tiers in which the platform version runs.
newPlatformSummary ::
  PlatformSummary
newPlatformSummary :: PlatformSummary
newPlatformSummary =
  PlatformSummary' :: Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PlatformStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> PlatformSummary
PlatformSummary'
    { $sel:platformBranchName:PlatformSummary' :: Maybe Text
platformBranchName =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:supportedAddonList:PlatformSummary' :: Maybe [Text]
supportedAddonList = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:platformCategory:PlatformSummary' :: Maybe Text
platformCategory = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:platformBranchLifecycleState:PlatformSummary' :: Maybe Text
platformBranchLifecycleState = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:platformVersion:PlatformSummary' :: Maybe Text
platformVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:platformStatus:PlatformSummary' :: Maybe PlatformStatus
platformStatus = Maybe PlatformStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:platformLifecycleState:PlatformSummary' :: Maybe Text
platformLifecycleState = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:platformOwner:PlatformSummary' :: Maybe Text
platformOwner = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:operatingSystemName:PlatformSummary' :: Maybe Text
operatingSystemName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:platformArn:PlatformSummary' :: Maybe Text
platformArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:operatingSystemVersion:PlatformSummary' :: Maybe Text
operatingSystemVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:supportedTierList:PlatformSummary' :: Maybe [Text]
supportedTierList = Maybe [Text]
forall a. Maybe a
Prelude.Nothing
    }

-- | The platform branch to which the platform version belongs.
platformSummary_platformBranchName :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformBranchName :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformBranchName = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformBranchName :: Maybe Text
$sel:platformBranchName:PlatformSummary' :: PlatformSummary -> Maybe Text
platformBranchName} -> Maybe Text
platformBranchName) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformBranchName:PlatformSummary' :: Maybe Text
platformBranchName = Maybe Text
a} :: PlatformSummary)

-- | The additions associated with the platform version.
platformSummary_supportedAddonList :: Lens.Lens' PlatformSummary (Prelude.Maybe [Prelude.Text])
platformSummary_supportedAddonList :: (Maybe [Text] -> f (Maybe [Text]))
-> PlatformSummary -> f PlatformSummary
platformSummary_supportedAddonList = (PlatformSummary -> Maybe [Text])
-> (PlatformSummary -> Maybe [Text] -> PlatformSummary)
-> Lens
     PlatformSummary PlatformSummary (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe [Text]
supportedAddonList :: Maybe [Text]
$sel:supportedAddonList:PlatformSummary' :: PlatformSummary -> Maybe [Text]
supportedAddonList} -> Maybe [Text]
supportedAddonList) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe [Text]
a -> PlatformSummary
s {$sel:supportedAddonList:PlatformSummary' :: Maybe [Text]
supportedAddonList = Maybe [Text]
a} :: PlatformSummary) ((Maybe [Text] -> f (Maybe [Text]))
 -> PlatformSummary -> f PlatformSummary)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> PlatformSummary
-> f PlatformSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The category of platform version.
platformSummary_platformCategory :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformCategory :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformCategory = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformCategory :: Maybe Text
$sel:platformCategory:PlatformSummary' :: PlatformSummary -> Maybe Text
platformCategory} -> Maybe Text
platformCategory) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformCategory:PlatformSummary' :: Maybe Text
platformCategory = Maybe Text
a} :: PlatformSummary)

-- | The state of the platform version\'s branch in its lifecycle.
--
-- Possible values: @beta@ | @supported@ | @deprecated@ | @retired@
platformSummary_platformBranchLifecycleState :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformBranchLifecycleState :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformBranchLifecycleState = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformBranchLifecycleState :: Maybe Text
$sel:platformBranchLifecycleState:PlatformSummary' :: PlatformSummary -> Maybe Text
platformBranchLifecycleState} -> Maybe Text
platformBranchLifecycleState) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformBranchLifecycleState:PlatformSummary' :: Maybe Text
platformBranchLifecycleState = Maybe Text
a} :: PlatformSummary)

-- | The version string of the platform version.
platformSummary_platformVersion :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformVersion :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformVersion = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformVersion :: Maybe Text
$sel:platformVersion:PlatformSummary' :: PlatformSummary -> Maybe Text
platformVersion} -> Maybe Text
platformVersion) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformVersion:PlatformSummary' :: Maybe Text
platformVersion = Maybe Text
a} :: PlatformSummary)

-- | The status of the platform version. You can create an environment from
-- the platform version once it is ready.
platformSummary_platformStatus :: Lens.Lens' PlatformSummary (Prelude.Maybe PlatformStatus)
platformSummary_platformStatus :: (Maybe PlatformStatus -> f (Maybe PlatformStatus))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformStatus = (PlatformSummary -> Maybe PlatformStatus)
-> (PlatformSummary -> Maybe PlatformStatus -> PlatformSummary)
-> Lens
     PlatformSummary
     PlatformSummary
     (Maybe PlatformStatus)
     (Maybe PlatformStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe PlatformStatus
platformStatus :: Maybe PlatformStatus
$sel:platformStatus:PlatformSummary' :: PlatformSummary -> Maybe PlatformStatus
platformStatus} -> Maybe PlatformStatus
platformStatus) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe PlatformStatus
a -> PlatformSummary
s {$sel:platformStatus:PlatformSummary' :: Maybe PlatformStatus
platformStatus = Maybe PlatformStatus
a} :: PlatformSummary)

-- | The state of the platform version in its lifecycle.
--
-- Possible values: @recommended@ | empty
--
-- If an empty value is returned, the platform version is supported but
-- isn\'t the recommended one for its branch.
platformSummary_platformLifecycleState :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformLifecycleState :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformLifecycleState = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformLifecycleState :: Maybe Text
$sel:platformLifecycleState:PlatformSummary' :: PlatformSummary -> Maybe Text
platformLifecycleState} -> Maybe Text
platformLifecycleState) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformLifecycleState:PlatformSummary' :: Maybe Text
platformLifecycleState = Maybe Text
a} :: PlatformSummary)

-- | The AWS account ID of the person who created the platform version.
platformSummary_platformOwner :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformOwner :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformOwner = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformOwner :: Maybe Text
$sel:platformOwner:PlatformSummary' :: PlatformSummary -> Maybe Text
platformOwner} -> Maybe Text
platformOwner) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformOwner:PlatformSummary' :: Maybe Text
platformOwner = Maybe Text
a} :: PlatformSummary)

-- | The operating system used by the platform version.
platformSummary_operatingSystemName :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_operatingSystemName :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_operatingSystemName = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
operatingSystemName :: Maybe Text
$sel:operatingSystemName:PlatformSummary' :: PlatformSummary -> Maybe Text
operatingSystemName} -> Maybe Text
operatingSystemName) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:operatingSystemName:PlatformSummary' :: Maybe Text
operatingSystemName = Maybe Text
a} :: PlatformSummary)

-- | The ARN of the platform version.
platformSummary_platformArn :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_platformArn :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_platformArn = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
platformArn :: Maybe Text
$sel:platformArn:PlatformSummary' :: PlatformSummary -> Maybe Text
platformArn} -> Maybe Text
platformArn) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:platformArn:PlatformSummary' :: Maybe Text
platformArn = Maybe Text
a} :: PlatformSummary)

-- | The version of the operating system used by the platform version.
platformSummary_operatingSystemVersion :: Lens.Lens' PlatformSummary (Prelude.Maybe Prelude.Text)
platformSummary_operatingSystemVersion :: (Maybe Text -> f (Maybe Text))
-> PlatformSummary -> f PlatformSummary
platformSummary_operatingSystemVersion = (PlatformSummary -> Maybe Text)
-> (PlatformSummary -> Maybe Text -> PlatformSummary)
-> Lens PlatformSummary PlatformSummary (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe Text
operatingSystemVersion :: Maybe Text
$sel:operatingSystemVersion:PlatformSummary' :: PlatformSummary -> Maybe Text
operatingSystemVersion} -> Maybe Text
operatingSystemVersion) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe Text
a -> PlatformSummary
s {$sel:operatingSystemVersion:PlatformSummary' :: Maybe Text
operatingSystemVersion = Maybe Text
a} :: PlatformSummary)

-- | The tiers in which the platform version runs.
platformSummary_supportedTierList :: Lens.Lens' PlatformSummary (Prelude.Maybe [Prelude.Text])
platformSummary_supportedTierList :: (Maybe [Text] -> f (Maybe [Text]))
-> PlatformSummary -> f PlatformSummary
platformSummary_supportedTierList = (PlatformSummary -> Maybe [Text])
-> (PlatformSummary -> Maybe [Text] -> PlatformSummary)
-> Lens
     PlatformSummary PlatformSummary (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PlatformSummary' {Maybe [Text]
supportedTierList :: Maybe [Text]
$sel:supportedTierList:PlatformSummary' :: PlatformSummary -> Maybe [Text]
supportedTierList} -> Maybe [Text]
supportedTierList) (\s :: PlatformSummary
s@PlatformSummary' {} Maybe [Text]
a -> PlatformSummary
s {$sel:supportedTierList:PlatformSummary' :: Maybe [Text]
supportedTierList = Maybe [Text]
a} :: PlatformSummary) ((Maybe [Text] -> f (Maybe [Text]))
 -> PlatformSummary -> f PlatformSummary)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> PlatformSummary
-> f PlatformSummary
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.FromXML PlatformSummary where
  parseXML :: [Node] -> Either String PlatformSummary
parseXML [Node]
x =
    Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PlatformStatus
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> PlatformSummary
PlatformSummary'
      (Maybe Text
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PlatformStatus
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [Text]
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PlatformStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformBranchName")
      Either
  String
  (Maybe [Text]
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PlatformStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe [Text])
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PlatformStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"SupportedAddonList"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Text]))
-> Either String (Maybe [Text])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"member")
                  )
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PlatformStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe PlatformStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformCategory")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe PlatformStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe PlatformStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformBranchLifecycleState")
      Either
  String
  (Maybe Text
   -> Maybe PlatformStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe PlatformStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformVersion")
      Either
  String
  (Maybe PlatformStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe PlatformStatus)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe PlatformStatus)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformStatus")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformLifecycleState")
      Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe [Text] -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformOwner")
      Either
  String
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe [Text] -> PlatformSummary)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text -> Maybe Text -> Maybe [Text] -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"OperatingSystemName")
      Either
  String
  (Maybe Text -> Maybe Text -> Maybe [Text] -> PlatformSummary)
-> Either String (Maybe Text)
-> Either String (Maybe Text -> Maybe [Text] -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"PlatformArn")
      Either String (Maybe Text -> Maybe [Text] -> PlatformSummary)
-> Either String (Maybe Text)
-> Either String (Maybe [Text] -> PlatformSummary)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Text)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"OperatingSystemVersion")
      Either String (Maybe [Text] -> PlatformSummary)
-> Either String (Maybe [Text]) -> Either String PlatformSummary
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x [Node] -> Text -> Either String (Maybe [Node])
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"SupportedTierList"
                      Either String (Maybe [Node]) -> [Node] -> Either String [Node]
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ [Node]
forall a. Monoid a => a
Prelude.mempty
                      Either String [Node]
-> ([Node] -> Either String (Maybe [Text]))
-> Either String (Maybe [Text])
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= ([Node] -> Either String [Text])
-> [Node] -> Either String (Maybe [Text])
forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (Text -> [Node] -> Either String [Text]
forall a. FromXML a => Text -> [Node] -> Either String [a]
Core.parseXMLList Text
"member")
                  )

instance Prelude.Hashable PlatformSummary

instance Prelude.NFData PlatformSummary