{-# 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.RDS.Types.DBProxyTargetGroup
-- 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.RDS.Types.DBProxyTargetGroup where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.RDS.Types.ConnectionPoolConfigurationInfo

-- | Represents a set of RDS DB instances, Aurora DB clusters, or both that a
-- proxy can connect to. Currently, each target group is associated with
-- exactly one RDS DB instance or Aurora DB cluster.
--
-- This data type is used as a response element in the
-- @DescribeDBProxyTargetGroups@ action.
--
-- /See:/ 'newDBProxyTargetGroup' smart constructor.
data DBProxyTargetGroup = DBProxyTargetGroup'
  { -- | The current status of this target group. A status of @available@ means
    -- the target group is correctly associated with a database. Other values
    -- indicate that you must wait for the target group to be ready, or take
    -- some action to resolve an issue.
    DBProxyTargetGroup -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The settings that determine the size and behavior of the connection pool
    -- for the target group.
    DBProxyTargetGroup -> Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig :: Prelude.Maybe ConnectionPoolConfigurationInfo,
    -- | The Amazon Resource Name (ARN) representing the target group.
    DBProxyTargetGroup -> Maybe Text
targetGroupArn :: Prelude.Maybe Prelude.Text,
    -- | The date and time when the target group was last updated.
    DBProxyTargetGroup -> Maybe ISO8601
updatedDate :: Prelude.Maybe Core.ISO8601,
    -- | The date and time when the target group was first created.
    DBProxyTargetGroup -> Maybe ISO8601
createdDate :: Prelude.Maybe Core.ISO8601,
    -- | The identifier for the RDS proxy associated with this target group.
    DBProxyTargetGroup -> Maybe Text
dbProxyName :: Prelude.Maybe Prelude.Text,
    -- | The identifier for the target group. This name must be unique for all
    -- target groups owned by your Amazon Web Services account in the specified
    -- Amazon Web Services Region.
    DBProxyTargetGroup -> Maybe Text
targetGroupName :: Prelude.Maybe Prelude.Text,
    -- | Whether this target group is the first one used for connection requests
    -- by the associated proxy. Because each proxy is currently associated with
    -- a single target group, currently this setting is always @true@.
    DBProxyTargetGroup -> Maybe Bool
isDefault :: Prelude.Maybe Prelude.Bool
  }
  deriving (DBProxyTargetGroup -> DBProxyTargetGroup -> Bool
(DBProxyTargetGroup -> DBProxyTargetGroup -> Bool)
-> (DBProxyTargetGroup -> DBProxyTargetGroup -> Bool)
-> Eq DBProxyTargetGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DBProxyTargetGroup -> DBProxyTargetGroup -> Bool
$c/= :: DBProxyTargetGroup -> DBProxyTargetGroup -> Bool
== :: DBProxyTargetGroup -> DBProxyTargetGroup -> Bool
$c== :: DBProxyTargetGroup -> DBProxyTargetGroup -> Bool
Prelude.Eq, ReadPrec [DBProxyTargetGroup]
ReadPrec DBProxyTargetGroup
Int -> ReadS DBProxyTargetGroup
ReadS [DBProxyTargetGroup]
(Int -> ReadS DBProxyTargetGroup)
-> ReadS [DBProxyTargetGroup]
-> ReadPrec DBProxyTargetGroup
-> ReadPrec [DBProxyTargetGroup]
-> Read DBProxyTargetGroup
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DBProxyTargetGroup]
$creadListPrec :: ReadPrec [DBProxyTargetGroup]
readPrec :: ReadPrec DBProxyTargetGroup
$creadPrec :: ReadPrec DBProxyTargetGroup
readList :: ReadS [DBProxyTargetGroup]
$creadList :: ReadS [DBProxyTargetGroup]
readsPrec :: Int -> ReadS DBProxyTargetGroup
$creadsPrec :: Int -> ReadS DBProxyTargetGroup
Prelude.Read, Int -> DBProxyTargetGroup -> ShowS
[DBProxyTargetGroup] -> ShowS
DBProxyTargetGroup -> String
(Int -> DBProxyTargetGroup -> ShowS)
-> (DBProxyTargetGroup -> String)
-> ([DBProxyTargetGroup] -> ShowS)
-> Show DBProxyTargetGroup
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DBProxyTargetGroup] -> ShowS
$cshowList :: [DBProxyTargetGroup] -> ShowS
show :: DBProxyTargetGroup -> String
$cshow :: DBProxyTargetGroup -> String
showsPrec :: Int -> DBProxyTargetGroup -> ShowS
$cshowsPrec :: Int -> DBProxyTargetGroup -> ShowS
Prelude.Show, (forall x. DBProxyTargetGroup -> Rep DBProxyTargetGroup x)
-> (forall x. Rep DBProxyTargetGroup x -> DBProxyTargetGroup)
-> Generic DBProxyTargetGroup
forall x. Rep DBProxyTargetGroup x -> DBProxyTargetGroup
forall x. DBProxyTargetGroup -> Rep DBProxyTargetGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DBProxyTargetGroup x -> DBProxyTargetGroup
$cfrom :: forall x. DBProxyTargetGroup -> Rep DBProxyTargetGroup x
Prelude.Generic)

-- |
-- Create a value of 'DBProxyTargetGroup' 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:
--
-- 'status', 'dbProxyTargetGroup_status' - The current status of this target group. A status of @available@ means
-- the target group is correctly associated with a database. Other values
-- indicate that you must wait for the target group to be ready, or take
-- some action to resolve an issue.
--
-- 'connectionPoolConfig', 'dbProxyTargetGroup_connectionPoolConfig' - The settings that determine the size and behavior of the connection pool
-- for the target group.
--
-- 'targetGroupArn', 'dbProxyTargetGroup_targetGroupArn' - The Amazon Resource Name (ARN) representing the target group.
--
-- 'updatedDate', 'dbProxyTargetGroup_updatedDate' - The date and time when the target group was last updated.
--
-- 'createdDate', 'dbProxyTargetGroup_createdDate' - The date and time when the target group was first created.
--
-- 'dbProxyName', 'dbProxyTargetGroup_dbProxyName' - The identifier for the RDS proxy associated with this target group.
--
-- 'targetGroupName', 'dbProxyTargetGroup_targetGroupName' - The identifier for the target group. This name must be unique for all
-- target groups owned by your Amazon Web Services account in the specified
-- Amazon Web Services Region.
--
-- 'isDefault', 'dbProxyTargetGroup_isDefault' - Whether this target group is the first one used for connection requests
-- by the associated proxy. Because each proxy is currently associated with
-- a single target group, currently this setting is always @true@.
newDBProxyTargetGroup ::
  DBProxyTargetGroup
newDBProxyTargetGroup :: DBProxyTargetGroup
newDBProxyTargetGroup =
  DBProxyTargetGroup' :: Maybe Text
-> Maybe ConnectionPoolConfigurationInfo
-> Maybe Text
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> DBProxyTargetGroup
DBProxyTargetGroup'
    { $sel:status:DBProxyTargetGroup' :: Maybe Text
status = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:connectionPoolConfig:DBProxyTargetGroup' :: Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig = Maybe ConnectionPoolConfigurationInfo
forall a. Maybe a
Prelude.Nothing,
      $sel:targetGroupArn:DBProxyTargetGroup' :: Maybe Text
targetGroupArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:updatedDate:DBProxyTargetGroup' :: Maybe ISO8601
updatedDate = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:createdDate:DBProxyTargetGroup' :: Maybe ISO8601
createdDate = Maybe ISO8601
forall a. Maybe a
Prelude.Nothing,
      $sel:dbProxyName:DBProxyTargetGroup' :: Maybe Text
dbProxyName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:targetGroupName:DBProxyTargetGroup' :: Maybe Text
targetGroupName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:isDefault:DBProxyTargetGroup' :: Maybe Bool
isDefault = Maybe Bool
forall a. Maybe a
Prelude.Nothing
    }

-- | The current status of this target group. A status of @available@ means
-- the target group is correctly associated with a database. Other values
-- indicate that you must wait for the target group to be ready, or take
-- some action to resolve an issue.
dbProxyTargetGroup_status :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.Text)
dbProxyTargetGroup_status :: (Maybe Text -> f (Maybe Text))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_status = (DBProxyTargetGroup -> Maybe Text)
-> (DBProxyTargetGroup -> Maybe Text -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup DBProxyTargetGroup (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe Text
status :: Maybe Text
$sel:status:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe Text
status} -> Maybe Text
status) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe Text
a -> DBProxyTargetGroup
s {$sel:status:DBProxyTargetGroup' :: Maybe Text
status = Maybe Text
a} :: DBProxyTargetGroup)

-- | The settings that determine the size and behavior of the connection pool
-- for the target group.
dbProxyTargetGroup_connectionPoolConfig :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe ConnectionPoolConfigurationInfo)
dbProxyTargetGroup_connectionPoolConfig :: (Maybe ConnectionPoolConfigurationInfo
 -> f (Maybe ConnectionPoolConfigurationInfo))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_connectionPoolConfig = (DBProxyTargetGroup -> Maybe ConnectionPoolConfigurationInfo)
-> (DBProxyTargetGroup
    -> Maybe ConnectionPoolConfigurationInfo -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup
     DBProxyTargetGroup
     (Maybe ConnectionPoolConfigurationInfo)
     (Maybe ConnectionPoolConfigurationInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig :: Maybe ConnectionPoolConfigurationInfo
$sel:connectionPoolConfig:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig} -> Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe ConnectionPoolConfigurationInfo
a -> DBProxyTargetGroup
s {$sel:connectionPoolConfig:DBProxyTargetGroup' :: Maybe ConnectionPoolConfigurationInfo
connectionPoolConfig = Maybe ConnectionPoolConfigurationInfo
a} :: DBProxyTargetGroup)

-- | The Amazon Resource Name (ARN) representing the target group.
dbProxyTargetGroup_targetGroupArn :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.Text)
dbProxyTargetGroup_targetGroupArn :: (Maybe Text -> f (Maybe Text))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_targetGroupArn = (DBProxyTargetGroup -> Maybe Text)
-> (DBProxyTargetGroup -> Maybe Text -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup DBProxyTargetGroup (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe Text
targetGroupArn :: Maybe Text
$sel:targetGroupArn:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe Text
targetGroupArn} -> Maybe Text
targetGroupArn) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe Text
a -> DBProxyTargetGroup
s {$sel:targetGroupArn:DBProxyTargetGroup' :: Maybe Text
targetGroupArn = Maybe Text
a} :: DBProxyTargetGroup)

-- | The date and time when the target group was last updated.
dbProxyTargetGroup_updatedDate :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.UTCTime)
dbProxyTargetGroup_updatedDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_updatedDate = (DBProxyTargetGroup -> Maybe ISO8601)
-> (DBProxyTargetGroup -> Maybe ISO8601 -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup
     DBProxyTargetGroup
     (Maybe ISO8601)
     (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe ISO8601
updatedDate :: Maybe ISO8601
$sel:updatedDate:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe ISO8601
updatedDate} -> Maybe ISO8601
updatedDate) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe ISO8601
a -> DBProxyTargetGroup
s {$sel:updatedDate:DBProxyTargetGroup' :: Maybe ISO8601
updatedDate = Maybe ISO8601
a} :: DBProxyTargetGroup) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> DBProxyTargetGroup -> f DBProxyTargetGroup)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBProxyTargetGroup
-> f DBProxyTargetGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (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 ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The date and time when the target group was first created.
dbProxyTargetGroup_createdDate :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.UTCTime)
dbProxyTargetGroup_createdDate :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_createdDate = (DBProxyTargetGroup -> Maybe ISO8601)
-> (DBProxyTargetGroup -> Maybe ISO8601 -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup
     DBProxyTargetGroup
     (Maybe ISO8601)
     (Maybe ISO8601)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe ISO8601
createdDate :: Maybe ISO8601
$sel:createdDate:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe ISO8601
createdDate} -> Maybe ISO8601
createdDate) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe ISO8601
a -> DBProxyTargetGroup
s {$sel:createdDate:DBProxyTargetGroup' :: Maybe ISO8601
createdDate = Maybe ISO8601
a} :: DBProxyTargetGroup) ((Maybe ISO8601 -> f (Maybe ISO8601))
 -> DBProxyTargetGroup -> f DBProxyTargetGroup)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe ISO8601 -> f (Maybe ISO8601))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DBProxyTargetGroup
-> f DBProxyTargetGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso ISO8601 ISO8601 UTCTime UTCTime
-> Iso
     (Maybe ISO8601) (Maybe ISO8601) (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 ISO8601 ISO8601 UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The identifier for the RDS proxy associated with this target group.
dbProxyTargetGroup_dbProxyName :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.Text)
dbProxyTargetGroup_dbProxyName :: (Maybe Text -> f (Maybe Text))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_dbProxyName = (DBProxyTargetGroup -> Maybe Text)
-> (DBProxyTargetGroup -> Maybe Text -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup DBProxyTargetGroup (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe Text
dbProxyName :: Maybe Text
$sel:dbProxyName:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe Text
dbProxyName} -> Maybe Text
dbProxyName) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe Text
a -> DBProxyTargetGroup
s {$sel:dbProxyName:DBProxyTargetGroup' :: Maybe Text
dbProxyName = Maybe Text
a} :: DBProxyTargetGroup)

-- | The identifier for the target group. This name must be unique for all
-- target groups owned by your Amazon Web Services account in the specified
-- Amazon Web Services Region.
dbProxyTargetGroup_targetGroupName :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.Text)
dbProxyTargetGroup_targetGroupName :: (Maybe Text -> f (Maybe Text))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_targetGroupName = (DBProxyTargetGroup -> Maybe Text)
-> (DBProxyTargetGroup -> Maybe Text -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup DBProxyTargetGroup (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe Text
targetGroupName :: Maybe Text
$sel:targetGroupName:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe Text
targetGroupName} -> Maybe Text
targetGroupName) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe Text
a -> DBProxyTargetGroup
s {$sel:targetGroupName:DBProxyTargetGroup' :: Maybe Text
targetGroupName = Maybe Text
a} :: DBProxyTargetGroup)

-- | Whether this target group is the first one used for connection requests
-- by the associated proxy. Because each proxy is currently associated with
-- a single target group, currently this setting is always @true@.
dbProxyTargetGroup_isDefault :: Lens.Lens' DBProxyTargetGroup (Prelude.Maybe Prelude.Bool)
dbProxyTargetGroup_isDefault :: (Maybe Bool -> f (Maybe Bool))
-> DBProxyTargetGroup -> f DBProxyTargetGroup
dbProxyTargetGroup_isDefault = (DBProxyTargetGroup -> Maybe Bool)
-> (DBProxyTargetGroup -> Maybe Bool -> DBProxyTargetGroup)
-> Lens
     DBProxyTargetGroup DBProxyTargetGroup (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DBProxyTargetGroup' {Maybe Bool
isDefault :: Maybe Bool
$sel:isDefault:DBProxyTargetGroup' :: DBProxyTargetGroup -> Maybe Bool
isDefault} -> Maybe Bool
isDefault) (\s :: DBProxyTargetGroup
s@DBProxyTargetGroup' {} Maybe Bool
a -> DBProxyTargetGroup
s {$sel:isDefault:DBProxyTargetGroup' :: Maybe Bool
isDefault = Maybe Bool
a} :: DBProxyTargetGroup)

instance Core.FromXML DBProxyTargetGroup where
  parseXML :: [Node] -> Either String DBProxyTargetGroup
parseXML [Node]
x =
    Maybe Text
-> Maybe ConnectionPoolConfigurationInfo
-> Maybe Text
-> Maybe ISO8601
-> Maybe ISO8601
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> DBProxyTargetGroup
DBProxyTargetGroup'
      (Maybe Text
 -> Maybe ConnectionPoolConfigurationInfo
 -> Maybe Text
 -> Maybe ISO8601
 -> Maybe ISO8601
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> DBProxyTargetGroup)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ConnectionPoolConfigurationInfo
      -> Maybe Text
      -> Maybe ISO8601
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> DBProxyTargetGroup)
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
"Status")
      Either
  String
  (Maybe ConnectionPoolConfigurationInfo
   -> Maybe Text
   -> Maybe ISO8601
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> DBProxyTargetGroup)
-> Either String (Maybe ConnectionPoolConfigurationInfo)
-> Either
     String
     (Maybe Text
      -> Maybe ISO8601
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> DBProxyTargetGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node]
-> Text -> Either String (Maybe ConnectionPoolConfigurationInfo)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"ConnectionPoolConfig")
      Either
  String
  (Maybe Text
   -> Maybe ISO8601
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> DBProxyTargetGroup)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe ISO8601
      -> Maybe ISO8601
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> DBProxyTargetGroup)
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
"TargetGroupArn")
      Either
  String
  (Maybe ISO8601
   -> Maybe ISO8601
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> DBProxyTargetGroup)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe ISO8601
      -> Maybe Text -> Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"UpdatedDate")
      Either
  String
  (Maybe ISO8601
   -> Maybe Text -> Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
-> Either String (Maybe ISO8601)
-> Either
     String
     (Maybe Text -> Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe ISO8601)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"CreatedDate")
      Either
  String
  (Maybe Text -> Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
-> Either String (Maybe Text)
-> Either String (Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
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
"DBProxyName")
      Either String (Maybe Text -> Maybe Bool -> DBProxyTargetGroup)
-> Either String (Maybe Text)
-> Either String (Maybe Bool -> DBProxyTargetGroup)
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
"TargetGroupName")
      Either String (Maybe Bool -> DBProxyTargetGroup)
-> Either String (Maybe Bool) -> Either String DBProxyTargetGroup
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe Bool)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"IsDefault")

instance Prelude.Hashable DBProxyTargetGroup

instance Prelude.NFData DBProxyTargetGroup