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

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ElasticBeanstalk.Types.AutoScalingGroup
import Amazonka.ElasticBeanstalk.Types.Instance
import Amazonka.ElasticBeanstalk.Types.LaunchConfiguration
import Amazonka.ElasticBeanstalk.Types.LaunchTemplate
import Amazonka.ElasticBeanstalk.Types.LoadBalancer
import Amazonka.ElasticBeanstalk.Types.Queue
import Amazonka.ElasticBeanstalk.Types.Trigger
import qualified Amazonka.Prelude as Prelude

-- | Describes the AWS resources in use by this environment. This data is
-- live.
--
-- /See:/ 'newEnvironmentResourceDescription' smart constructor.
data EnvironmentResourceDescription = EnvironmentResourceDescription'
  { -- | The @AutoScalingGroups@ used by this environment.
    EnvironmentResourceDescription -> Maybe [AutoScalingGroup]
autoScalingGroups :: Prelude.Maybe [AutoScalingGroup],
    -- | The name of the environment.
    EnvironmentResourceDescription -> Maybe Text
environmentName :: Prelude.Maybe Prelude.Text,
    -- | The Amazon EC2 instances used by this environment.
    EnvironmentResourceDescription -> Maybe [Instance]
instances :: Prelude.Maybe [Instance],
    -- | The Auto Scaling launch configurations in use by this environment.
    EnvironmentResourceDescription -> Maybe [LaunchConfiguration]
launchConfigurations :: Prelude.Maybe [LaunchConfiguration],
    -- | The Amazon EC2 launch templates in use by this environment.
    EnvironmentResourceDescription -> Maybe [LaunchTemplate]
launchTemplates :: Prelude.Maybe [LaunchTemplate],
    -- | The LoadBalancers in use by this environment.
    EnvironmentResourceDescription -> Maybe [LoadBalancer]
loadBalancers :: Prelude.Maybe [LoadBalancer],
    -- | The queues used by this environment.
    EnvironmentResourceDescription -> Maybe [Queue]
queues :: Prelude.Maybe [Queue],
    -- | The @AutoScaling@ triggers in use by this environment.
    EnvironmentResourceDescription -> Maybe [Trigger]
triggers :: Prelude.Maybe [Trigger]
  }
  deriving (EnvironmentResourceDescription
-> EnvironmentResourceDescription -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EnvironmentResourceDescription
-> EnvironmentResourceDescription -> Bool
$c/= :: EnvironmentResourceDescription
-> EnvironmentResourceDescription -> Bool
== :: EnvironmentResourceDescription
-> EnvironmentResourceDescription -> Bool
$c== :: EnvironmentResourceDescription
-> EnvironmentResourceDescription -> Bool
Prelude.Eq, ReadPrec [EnvironmentResourceDescription]
ReadPrec EnvironmentResourceDescription
Int -> ReadS EnvironmentResourceDescription
ReadS [EnvironmentResourceDescription]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EnvironmentResourceDescription]
$creadListPrec :: ReadPrec [EnvironmentResourceDescription]
readPrec :: ReadPrec EnvironmentResourceDescription
$creadPrec :: ReadPrec EnvironmentResourceDescription
readList :: ReadS [EnvironmentResourceDescription]
$creadList :: ReadS [EnvironmentResourceDescription]
readsPrec :: Int -> ReadS EnvironmentResourceDescription
$creadsPrec :: Int -> ReadS EnvironmentResourceDescription
Prelude.Read, Int -> EnvironmentResourceDescription -> ShowS
[EnvironmentResourceDescription] -> ShowS
EnvironmentResourceDescription -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EnvironmentResourceDescription] -> ShowS
$cshowList :: [EnvironmentResourceDescription] -> ShowS
show :: EnvironmentResourceDescription -> String
$cshow :: EnvironmentResourceDescription -> String
showsPrec :: Int -> EnvironmentResourceDescription -> ShowS
$cshowsPrec :: Int -> EnvironmentResourceDescription -> ShowS
Prelude.Show, forall x.
Rep EnvironmentResourceDescription x
-> EnvironmentResourceDescription
forall x.
EnvironmentResourceDescription
-> Rep EnvironmentResourceDescription x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EnvironmentResourceDescription x
-> EnvironmentResourceDescription
$cfrom :: forall x.
EnvironmentResourceDescription
-> Rep EnvironmentResourceDescription x
Prelude.Generic)

-- |
-- Create a value of 'EnvironmentResourceDescription' 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:
--
-- 'autoScalingGroups', 'environmentResourceDescription_autoScalingGroups' - The @AutoScalingGroups@ used by this environment.
--
-- 'environmentName', 'environmentResourceDescription_environmentName' - The name of the environment.
--
-- 'instances', 'environmentResourceDescription_instances' - The Amazon EC2 instances used by this environment.
--
-- 'launchConfigurations', 'environmentResourceDescription_launchConfigurations' - The Auto Scaling launch configurations in use by this environment.
--
-- 'launchTemplates', 'environmentResourceDescription_launchTemplates' - The Amazon EC2 launch templates in use by this environment.
--
-- 'loadBalancers', 'environmentResourceDescription_loadBalancers' - The LoadBalancers in use by this environment.
--
-- 'queues', 'environmentResourceDescription_queues' - The queues used by this environment.
--
-- 'triggers', 'environmentResourceDescription_triggers' - The @AutoScaling@ triggers in use by this environment.
newEnvironmentResourceDescription ::
  EnvironmentResourceDescription
newEnvironmentResourceDescription :: EnvironmentResourceDescription
newEnvironmentResourceDescription =
  EnvironmentResourceDescription'
    { $sel:autoScalingGroups:EnvironmentResourceDescription' :: Maybe [AutoScalingGroup]
autoScalingGroups =
        forall a. Maybe a
Prelude.Nothing,
      $sel:environmentName:EnvironmentResourceDescription' :: Maybe Text
environmentName = forall a. Maybe a
Prelude.Nothing,
      $sel:instances:EnvironmentResourceDescription' :: Maybe [Instance]
instances = forall a. Maybe a
Prelude.Nothing,
      $sel:launchConfigurations:EnvironmentResourceDescription' :: Maybe [LaunchConfiguration]
launchConfigurations = forall a. Maybe a
Prelude.Nothing,
      $sel:launchTemplates:EnvironmentResourceDescription' :: Maybe [LaunchTemplate]
launchTemplates = forall a. Maybe a
Prelude.Nothing,
      $sel:loadBalancers:EnvironmentResourceDescription' :: Maybe [LoadBalancer]
loadBalancers = forall a. Maybe a
Prelude.Nothing,
      $sel:queues:EnvironmentResourceDescription' :: Maybe [Queue]
queues = forall a. Maybe a
Prelude.Nothing,
      $sel:triggers:EnvironmentResourceDescription' :: Maybe [Trigger]
triggers = forall a. Maybe a
Prelude.Nothing
    }

-- | The @AutoScalingGroups@ used by this environment.
environmentResourceDescription_autoScalingGroups :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [AutoScalingGroup])
environmentResourceDescription_autoScalingGroups :: Lens' EnvironmentResourceDescription (Maybe [AutoScalingGroup])
environmentResourceDescription_autoScalingGroups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [AutoScalingGroup]
autoScalingGroups :: Maybe [AutoScalingGroup]
$sel:autoScalingGroups:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [AutoScalingGroup]
autoScalingGroups} -> Maybe [AutoScalingGroup]
autoScalingGroups) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [AutoScalingGroup]
a -> EnvironmentResourceDescription
s {$sel:autoScalingGroups:EnvironmentResourceDescription' :: Maybe [AutoScalingGroup]
autoScalingGroups = Maybe [AutoScalingGroup]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

-- | The Amazon EC2 instances used by this environment.
environmentResourceDescription_instances :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [Instance])
environmentResourceDescription_instances :: Lens' EnvironmentResourceDescription (Maybe [Instance])
environmentResourceDescription_instances = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [Instance]
instances :: Maybe [Instance]
$sel:instances:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Instance]
instances} -> Maybe [Instance]
instances) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [Instance]
a -> EnvironmentResourceDescription
s {$sel:instances:EnvironmentResourceDescription' :: Maybe [Instance]
instances = Maybe [Instance]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Auto Scaling launch configurations in use by this environment.
environmentResourceDescription_launchConfigurations :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [LaunchConfiguration])
environmentResourceDescription_launchConfigurations :: Lens' EnvironmentResourceDescription (Maybe [LaunchConfiguration])
environmentResourceDescription_launchConfigurations = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [LaunchConfiguration]
launchConfigurations :: Maybe [LaunchConfiguration]
$sel:launchConfigurations:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchConfiguration]
launchConfigurations} -> Maybe [LaunchConfiguration]
launchConfigurations) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [LaunchConfiguration]
a -> EnvironmentResourceDescription
s {$sel:launchConfigurations:EnvironmentResourceDescription' :: Maybe [LaunchConfiguration]
launchConfigurations = Maybe [LaunchConfiguration]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon EC2 launch templates in use by this environment.
environmentResourceDescription_launchTemplates :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [LaunchTemplate])
environmentResourceDescription_launchTemplates :: Lens' EnvironmentResourceDescription (Maybe [LaunchTemplate])
environmentResourceDescription_launchTemplates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [LaunchTemplate]
launchTemplates :: Maybe [LaunchTemplate]
$sel:launchTemplates:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchTemplate]
launchTemplates} -> Maybe [LaunchTemplate]
launchTemplates) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [LaunchTemplate]
a -> EnvironmentResourceDescription
s {$sel:launchTemplates:EnvironmentResourceDescription' :: Maybe [LaunchTemplate]
launchTemplates = Maybe [LaunchTemplate]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The LoadBalancers in use by this environment.
environmentResourceDescription_loadBalancers :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [LoadBalancer])
environmentResourceDescription_loadBalancers :: Lens' EnvironmentResourceDescription (Maybe [LoadBalancer])
environmentResourceDescription_loadBalancers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [LoadBalancer]
loadBalancers :: Maybe [LoadBalancer]
$sel:loadBalancers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LoadBalancer]
loadBalancers} -> Maybe [LoadBalancer]
loadBalancers) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [LoadBalancer]
a -> EnvironmentResourceDescription
s {$sel:loadBalancers:EnvironmentResourceDescription' :: Maybe [LoadBalancer]
loadBalancers = Maybe [LoadBalancer]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The queues used by this environment.
environmentResourceDescription_queues :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [Queue])
environmentResourceDescription_queues :: Lens' EnvironmentResourceDescription (Maybe [Queue])
environmentResourceDescription_queues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [Queue]
queues :: Maybe [Queue]
$sel:queues:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Queue]
queues} -> Maybe [Queue]
queues) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [Queue]
a -> EnvironmentResourceDescription
s {$sel:queues:EnvironmentResourceDescription' :: Maybe [Queue]
queues = Maybe [Queue]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The @AutoScaling@ triggers in use by this environment.
environmentResourceDescription_triggers :: Lens.Lens' EnvironmentResourceDescription (Prelude.Maybe [Trigger])
environmentResourceDescription_triggers :: Lens' EnvironmentResourceDescription (Maybe [Trigger])
environmentResourceDescription_triggers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EnvironmentResourceDescription' {Maybe [Trigger]
triggers :: Maybe [Trigger]
$sel:triggers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Trigger]
triggers} -> Maybe [Trigger]
triggers) (\s :: EnvironmentResourceDescription
s@EnvironmentResourceDescription' {} Maybe [Trigger]
a -> EnvironmentResourceDescription
s {$sel:triggers:EnvironmentResourceDescription' :: Maybe [Trigger]
triggers = Maybe [Trigger]
a} :: EnvironmentResourceDescription) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Data.FromXML EnvironmentResourceDescription where
  parseXML :: [Node] -> Either String EnvironmentResourceDescription
parseXML [Node]
x =
    Maybe [AutoScalingGroup]
-> Maybe Text
-> Maybe [Instance]
-> Maybe [LaunchConfiguration]
-> Maybe [LaunchTemplate]
-> Maybe [LoadBalancer]
-> Maybe [Queue]
-> Maybe [Trigger]
-> EnvironmentResourceDescription
EnvironmentResourceDescription'
      forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AutoScalingGroups"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"EnvironmentName")
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Instances"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"LaunchConfigurations"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"LaunchTemplates"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"LoadBalancers"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Queues"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )
      forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( [Node]
x
                      forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Triggers"
                      forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                      forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                  )

instance
  Prelude.Hashable
    EnvironmentResourceDescription
  where
  hashWithSalt :: Int -> EnvironmentResourceDescription -> Int
hashWithSalt
    Int
_salt
    EnvironmentResourceDescription' {Maybe [AutoScalingGroup]
Maybe [Instance]
Maybe [LaunchConfiguration]
Maybe [LaunchTemplate]
Maybe [LoadBalancer]
Maybe [Queue]
Maybe [Trigger]
Maybe Text
triggers :: Maybe [Trigger]
queues :: Maybe [Queue]
loadBalancers :: Maybe [LoadBalancer]
launchTemplates :: Maybe [LaunchTemplate]
launchConfigurations :: Maybe [LaunchConfiguration]
instances :: Maybe [Instance]
environmentName :: Maybe Text
autoScalingGroups :: Maybe [AutoScalingGroup]
$sel:triggers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Trigger]
$sel:queues:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Queue]
$sel:loadBalancers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LoadBalancer]
$sel:launchTemplates:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchTemplate]
$sel:launchConfigurations:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchConfiguration]
$sel:instances:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Instance]
$sel:environmentName:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe Text
$sel:autoScalingGroups:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [AutoScalingGroup]
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [AutoScalingGroup]
autoScalingGroups
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
environmentName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Instance]
instances
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchConfiguration]
launchConfigurations
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LaunchTemplate]
launchTemplates
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [LoadBalancer]
loadBalancers
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Queue]
queues
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Trigger]
triggers

instance
  Prelude.NFData
    EnvironmentResourceDescription
  where
  rnf :: EnvironmentResourceDescription -> ()
rnf EnvironmentResourceDescription' {Maybe [AutoScalingGroup]
Maybe [Instance]
Maybe [LaunchConfiguration]
Maybe [LaunchTemplate]
Maybe [LoadBalancer]
Maybe [Queue]
Maybe [Trigger]
Maybe Text
triggers :: Maybe [Trigger]
queues :: Maybe [Queue]
loadBalancers :: Maybe [LoadBalancer]
launchTemplates :: Maybe [LaunchTemplate]
launchConfigurations :: Maybe [LaunchConfiguration]
instances :: Maybe [Instance]
environmentName :: Maybe Text
autoScalingGroups :: Maybe [AutoScalingGroup]
$sel:triggers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Trigger]
$sel:queues:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Queue]
$sel:loadBalancers:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LoadBalancer]
$sel:launchTemplates:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchTemplate]
$sel:launchConfigurations:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [LaunchConfiguration]
$sel:instances:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [Instance]
$sel:environmentName:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe Text
$sel:autoScalingGroups:EnvironmentResourceDescription' :: EnvironmentResourceDescription -> Maybe [AutoScalingGroup]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [AutoScalingGroup]
autoScalingGroups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
environmentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Instance]
instances
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [LaunchConfiguration]
launchConfigurations
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [LaunchTemplate]
launchTemplates
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [LoadBalancer]
loadBalancers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Queue]
queues
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Trigger]
triggers