{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.DescribeDBInstanceAutomatedBackups
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Displays backups for both current and deleted instances. For example,
-- use this operation to find details about automated backups for
-- previously deleted instances. Current instances with retention periods
-- greater than zero (0) are returned for both the
-- @DescribeDBInstanceAutomatedBackups@ and @DescribeDBInstances@
-- operations.
--
-- All parameters are optional.
--
-- This operation returns paginated results.
module Amazonka.RDS.DescribeDBInstanceAutomatedBackups
  ( -- * Creating a Request
    DescribeDBInstanceAutomatedBackups (..),
    newDescribeDBInstanceAutomatedBackups,

    -- * Request Lenses
    describeDBInstanceAutomatedBackups_dbInstanceAutomatedBackupsArn,
    describeDBInstanceAutomatedBackups_dbInstanceIdentifier,
    describeDBInstanceAutomatedBackups_dbiResourceId,
    describeDBInstanceAutomatedBackups_filters,
    describeDBInstanceAutomatedBackups_marker,
    describeDBInstanceAutomatedBackups_maxRecords,

    -- * Destructuring the Response
    DescribeDBInstanceAutomatedBackupsResponse (..),
    newDescribeDBInstanceAutomatedBackupsResponse,

    -- * Response Lenses
    describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups,
    describeDBInstanceAutomatedBackupsResponse_marker,
    describeDBInstanceAutomatedBackupsResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.RDS.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Parameter input for DescribeDBInstanceAutomatedBackups.
--
-- /See:/ 'newDescribeDBInstanceAutomatedBackups' smart constructor.
data DescribeDBInstanceAutomatedBackups = DescribeDBInstanceAutomatedBackups'
  { -- | The Amazon Resource Name (ARN) of the replicated automated backups, for
    -- example,
    -- @arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
    --
    -- This setting doesn\'t apply to RDS Custom.
    DescribeDBInstanceAutomatedBackups -> Maybe Text
dbInstanceAutomatedBackupsArn :: Prelude.Maybe Prelude.Text,
    -- | (Optional) The user-supplied instance identifier. If this parameter is
    -- specified, it must match the identifier of an existing DB instance. It
    -- returns information from the specific DB instance\' automated backup.
    -- This parameter isn\'t case-sensitive.
    DescribeDBInstanceAutomatedBackups -> Maybe Text
dbInstanceIdentifier :: Prelude.Maybe Prelude.Text,
    -- | The resource ID of the DB instance that is the source of the automated
    -- backup. This parameter isn\'t case-sensitive.
    DescribeDBInstanceAutomatedBackups -> Maybe Text
dbiResourceId :: Prelude.Maybe Prelude.Text,
    -- | A filter that specifies which resources to return based on status.
    --
    -- Supported filters are the following:
    --
    -- -   @status@
    --
    --     -   @active@ - automated backups for current instances
    --
    --     -   @retained@ - automated backups for deleted instances and after
    --         backup replication is stopped
    --
    --     -   @creating@ - automated backups that are waiting for the first
    --         automated snapshot to be available
    --
    -- -   @db-instance-id@ - Accepts DB instance identifiers and Amazon
    --     Resource Names (ARNs). The results list includes only information
    --     about the DB instance automated backups identified by these ARNs.
    --
    -- -   @dbi-resource-id@ - Accepts DB resource identifiers and Amazon
    --     Resource Names (ARNs). The results list includes only information
    --     about the DB instance resources identified by these ARNs.
    --
    -- Returns all resources by default. The status for each resource is
    -- specified in the response.
    DescribeDBInstanceAutomatedBackups -> Maybe [Filter]
filters :: Prelude.Maybe [Filter],
    -- | The pagination token provided in the previous request. If this parameter
    -- is specified the response includes only records beyond the marker, up to
    -- @MaxRecords@.
    DescribeDBInstanceAutomatedBackups -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of records to include in the response. If more
    -- records exist than the specified @MaxRecords@ value, a pagination token
    -- called a marker is included in the response so that you can retrieve the
    -- remaining results.
    DescribeDBInstanceAutomatedBackups -> Maybe Int
maxRecords :: Prelude.Maybe Prelude.Int
  }
  deriving (DescribeDBInstanceAutomatedBackups
-> DescribeDBInstanceAutomatedBackups -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDBInstanceAutomatedBackups
-> DescribeDBInstanceAutomatedBackups -> Bool
$c/= :: DescribeDBInstanceAutomatedBackups
-> DescribeDBInstanceAutomatedBackups -> Bool
== :: DescribeDBInstanceAutomatedBackups
-> DescribeDBInstanceAutomatedBackups -> Bool
$c== :: DescribeDBInstanceAutomatedBackups
-> DescribeDBInstanceAutomatedBackups -> Bool
Prelude.Eq, ReadPrec [DescribeDBInstanceAutomatedBackups]
ReadPrec DescribeDBInstanceAutomatedBackups
Int -> ReadS DescribeDBInstanceAutomatedBackups
ReadS [DescribeDBInstanceAutomatedBackups]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDBInstanceAutomatedBackups]
$creadListPrec :: ReadPrec [DescribeDBInstanceAutomatedBackups]
readPrec :: ReadPrec DescribeDBInstanceAutomatedBackups
$creadPrec :: ReadPrec DescribeDBInstanceAutomatedBackups
readList :: ReadS [DescribeDBInstanceAutomatedBackups]
$creadList :: ReadS [DescribeDBInstanceAutomatedBackups]
readsPrec :: Int -> ReadS DescribeDBInstanceAutomatedBackups
$creadsPrec :: Int -> ReadS DescribeDBInstanceAutomatedBackups
Prelude.Read, Int -> DescribeDBInstanceAutomatedBackups -> ShowS
[DescribeDBInstanceAutomatedBackups] -> ShowS
DescribeDBInstanceAutomatedBackups -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDBInstanceAutomatedBackups] -> ShowS
$cshowList :: [DescribeDBInstanceAutomatedBackups] -> ShowS
show :: DescribeDBInstanceAutomatedBackups -> String
$cshow :: DescribeDBInstanceAutomatedBackups -> String
showsPrec :: Int -> DescribeDBInstanceAutomatedBackups -> ShowS
$cshowsPrec :: Int -> DescribeDBInstanceAutomatedBackups -> ShowS
Prelude.Show, forall x.
Rep DescribeDBInstanceAutomatedBackups x
-> DescribeDBInstanceAutomatedBackups
forall x.
DescribeDBInstanceAutomatedBackups
-> Rep DescribeDBInstanceAutomatedBackups x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDBInstanceAutomatedBackups x
-> DescribeDBInstanceAutomatedBackups
$cfrom :: forall x.
DescribeDBInstanceAutomatedBackups
-> Rep DescribeDBInstanceAutomatedBackups x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDBInstanceAutomatedBackups' 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:
--
-- 'dbInstanceAutomatedBackupsArn', 'describeDBInstanceAutomatedBackups_dbInstanceAutomatedBackupsArn' - The Amazon Resource Name (ARN) of the replicated automated backups, for
-- example,
-- @arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
--
-- This setting doesn\'t apply to RDS Custom.
--
-- 'dbInstanceIdentifier', 'describeDBInstanceAutomatedBackups_dbInstanceIdentifier' - (Optional) The user-supplied instance identifier. If this parameter is
-- specified, it must match the identifier of an existing DB instance. It
-- returns information from the specific DB instance\' automated backup.
-- This parameter isn\'t case-sensitive.
--
-- 'dbiResourceId', 'describeDBInstanceAutomatedBackups_dbiResourceId' - The resource ID of the DB instance that is the source of the automated
-- backup. This parameter isn\'t case-sensitive.
--
-- 'filters', 'describeDBInstanceAutomatedBackups_filters' - A filter that specifies which resources to return based on status.
--
-- Supported filters are the following:
--
-- -   @status@
--
--     -   @active@ - automated backups for current instances
--
--     -   @retained@ - automated backups for deleted instances and after
--         backup replication is stopped
--
--     -   @creating@ - automated backups that are waiting for the first
--         automated snapshot to be available
--
-- -   @db-instance-id@ - Accepts DB instance identifiers and Amazon
--     Resource Names (ARNs). The results list includes only information
--     about the DB instance automated backups identified by these ARNs.
--
-- -   @dbi-resource-id@ - Accepts DB resource identifiers and Amazon
--     Resource Names (ARNs). The results list includes only information
--     about the DB instance resources identified by these ARNs.
--
-- Returns all resources by default. The status for each resource is
-- specified in the response.
--
-- 'marker', 'describeDBInstanceAutomatedBackups_marker' - The pagination token provided in the previous request. If this parameter
-- is specified the response includes only records beyond the marker, up to
-- @MaxRecords@.
--
-- 'maxRecords', 'describeDBInstanceAutomatedBackups_maxRecords' - The maximum number of records to include in the response. If more
-- records exist than the specified @MaxRecords@ value, a pagination token
-- called a marker is included in the response so that you can retrieve the
-- remaining results.
newDescribeDBInstanceAutomatedBackups ::
  DescribeDBInstanceAutomatedBackups
newDescribeDBInstanceAutomatedBackups :: DescribeDBInstanceAutomatedBackups
newDescribeDBInstanceAutomatedBackups =
  DescribeDBInstanceAutomatedBackups'
    { $sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbInstanceAutomatedBackupsArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbInstanceIdentifier = forall a. Maybe a
Prelude.Nothing,
      $sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbiResourceId = forall a. Maybe a
Prelude.Nothing,
      $sel:filters:DescribeDBInstanceAutomatedBackups' :: Maybe [Filter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeDBInstanceAutomatedBackups' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: Maybe Int
maxRecords = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon Resource Name (ARN) of the replicated automated backups, for
-- example,
-- @arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE@.
--
-- This setting doesn\'t apply to RDS Custom.
describeDBInstanceAutomatedBackups_dbInstanceAutomatedBackupsArn :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe Prelude.Text)
describeDBInstanceAutomatedBackups_dbInstanceAutomatedBackupsArn :: Lens' DescribeDBInstanceAutomatedBackups (Maybe Text)
describeDBInstanceAutomatedBackups_dbInstanceAutomatedBackupsArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe Text
dbInstanceAutomatedBackupsArn :: Maybe Text
$sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
dbInstanceAutomatedBackupsArn} -> Maybe Text
dbInstanceAutomatedBackupsArn) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe Text
a -> DescribeDBInstanceAutomatedBackups
s {$sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbInstanceAutomatedBackupsArn = Maybe Text
a} :: DescribeDBInstanceAutomatedBackups)

-- | (Optional) The user-supplied instance identifier. If this parameter is
-- specified, it must match the identifier of an existing DB instance. It
-- returns information from the specific DB instance\' automated backup.
-- This parameter isn\'t case-sensitive.
describeDBInstanceAutomatedBackups_dbInstanceIdentifier :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe Prelude.Text)
describeDBInstanceAutomatedBackups_dbInstanceIdentifier :: Lens' DescribeDBInstanceAutomatedBackups (Maybe Text)
describeDBInstanceAutomatedBackups_dbInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe Text
dbInstanceIdentifier :: Maybe Text
$sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
dbInstanceIdentifier} -> Maybe Text
dbInstanceIdentifier) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe Text
a -> DescribeDBInstanceAutomatedBackups
s {$sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbInstanceIdentifier = Maybe Text
a} :: DescribeDBInstanceAutomatedBackups)

-- | The resource ID of the DB instance that is the source of the automated
-- backup. This parameter isn\'t case-sensitive.
describeDBInstanceAutomatedBackups_dbiResourceId :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe Prelude.Text)
describeDBInstanceAutomatedBackups_dbiResourceId :: Lens' DescribeDBInstanceAutomatedBackups (Maybe Text)
describeDBInstanceAutomatedBackups_dbiResourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe Text
dbiResourceId :: Maybe Text
$sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
dbiResourceId} -> Maybe Text
dbiResourceId) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe Text
a -> DescribeDBInstanceAutomatedBackups
s {$sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: Maybe Text
dbiResourceId = Maybe Text
a} :: DescribeDBInstanceAutomatedBackups)

-- | A filter that specifies which resources to return based on status.
--
-- Supported filters are the following:
--
-- -   @status@
--
--     -   @active@ - automated backups for current instances
--
--     -   @retained@ - automated backups for deleted instances and after
--         backup replication is stopped
--
--     -   @creating@ - automated backups that are waiting for the first
--         automated snapshot to be available
--
-- -   @db-instance-id@ - Accepts DB instance identifiers and Amazon
--     Resource Names (ARNs). The results list includes only information
--     about the DB instance automated backups identified by these ARNs.
--
-- -   @dbi-resource-id@ - Accepts DB resource identifiers and Amazon
--     Resource Names (ARNs). The results list includes only information
--     about the DB instance resources identified by these ARNs.
--
-- Returns all resources by default. The status for each resource is
-- specified in the response.
describeDBInstanceAutomatedBackups_filters :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe [Filter])
describeDBInstanceAutomatedBackups_filters :: Lens' DescribeDBInstanceAutomatedBackups (Maybe [Filter])
describeDBInstanceAutomatedBackups_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe [Filter]
filters :: Maybe [Filter]
$sel:filters:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe [Filter]
filters} -> Maybe [Filter]
filters) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe [Filter]
a -> DescribeDBInstanceAutomatedBackups
s {$sel:filters:DescribeDBInstanceAutomatedBackups' :: Maybe [Filter]
filters = Maybe [Filter]
a} :: DescribeDBInstanceAutomatedBackups) 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 pagination token provided in the previous request. If this parameter
-- is specified the response includes only records beyond the marker, up to
-- @MaxRecords@.
describeDBInstanceAutomatedBackups_marker :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe Prelude.Text)
describeDBInstanceAutomatedBackups_marker :: Lens' DescribeDBInstanceAutomatedBackups (Maybe Text)
describeDBInstanceAutomatedBackups_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe Text
a -> DescribeDBInstanceAutomatedBackups
s {$sel:marker:DescribeDBInstanceAutomatedBackups' :: Maybe Text
marker = Maybe Text
a} :: DescribeDBInstanceAutomatedBackups)

-- | The maximum number of records to include in the response. If more
-- records exist than the specified @MaxRecords@ value, a pagination token
-- called a marker is included in the response so that you can retrieve the
-- remaining results.
describeDBInstanceAutomatedBackups_maxRecords :: Lens.Lens' DescribeDBInstanceAutomatedBackups (Prelude.Maybe Prelude.Int)
describeDBInstanceAutomatedBackups_maxRecords :: Lens' DescribeDBInstanceAutomatedBackups (Maybe Int)
describeDBInstanceAutomatedBackups_maxRecords = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackups' {Maybe Int
maxRecords :: Maybe Int
$sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Int
maxRecords} -> Maybe Int
maxRecords) (\s :: DescribeDBInstanceAutomatedBackups
s@DescribeDBInstanceAutomatedBackups' {} Maybe Int
a -> DescribeDBInstanceAutomatedBackups
s {$sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: Maybe Int
maxRecords = Maybe Int
a} :: DescribeDBInstanceAutomatedBackups)

instance
  Core.AWSPager
    DescribeDBInstanceAutomatedBackups
  where
  page :: DescribeDBInstanceAutomatedBackups
-> AWSResponse DescribeDBInstanceAutomatedBackups
-> Maybe DescribeDBInstanceAutomatedBackups
page DescribeDBInstanceAutomatedBackups
rq AWSResponse DescribeDBInstanceAutomatedBackups
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDBInstanceAutomatedBackups
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDBInstanceAutomatedBackupsResponse (Maybe Text)
describeDBInstanceAutomatedBackupsResponse_marker
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDBInstanceAutomatedBackups
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeDBInstanceAutomatedBackupsResponse
  (Maybe [DBInstanceAutomatedBackup])
describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ DescribeDBInstanceAutomatedBackups
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeDBInstanceAutomatedBackups (Maybe Text)
describeDBInstanceAutomatedBackups_marker
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeDBInstanceAutomatedBackups
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDBInstanceAutomatedBackupsResponse (Maybe Text)
describeDBInstanceAutomatedBackupsResponse_marker
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance
  Core.AWSRequest
    DescribeDBInstanceAutomatedBackups
  where
  type
    AWSResponse DescribeDBInstanceAutomatedBackups =
      DescribeDBInstanceAutomatedBackupsResponse
  request :: (Service -> Service)
-> DescribeDBInstanceAutomatedBackups
-> Request DescribeDBInstanceAutomatedBackups
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeDBInstanceAutomatedBackups
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeDBInstanceAutomatedBackups)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"DescribeDBInstanceAutomatedBackupsResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [DBInstanceAutomatedBackup]
-> Maybe Text -> Int -> DescribeDBInstanceAutomatedBackupsResponse
DescribeDBInstanceAutomatedBackupsResponse'
            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
"DBInstanceAutomatedBackups"
                            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
"DBInstanceAutomatedBackup")
                        )
            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
"Marker")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DescribeDBInstanceAutomatedBackups
  where
  hashWithSalt :: Int -> DescribeDBInstanceAutomatedBackups -> Int
hashWithSalt
    Int
_salt
    DescribeDBInstanceAutomatedBackups' {Maybe Int
Maybe [Filter]
Maybe Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
dbiResourceId :: Maybe Text
dbInstanceIdentifier :: Maybe Text
dbInstanceAutomatedBackupsArn :: Maybe Text
$sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Int
$sel:marker:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:filters:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe [Filter]
$sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbInstanceAutomatedBackupsArn
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbInstanceIdentifier
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dbiResourceId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Filter]
filters
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
marker
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxRecords

instance
  Prelude.NFData
    DescribeDBInstanceAutomatedBackups
  where
  rnf :: DescribeDBInstanceAutomatedBackups -> ()
rnf DescribeDBInstanceAutomatedBackups' {Maybe Int
Maybe [Filter]
Maybe Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
dbiResourceId :: Maybe Text
dbInstanceIdentifier :: Maybe Text
dbInstanceAutomatedBackupsArn :: Maybe Text
$sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Int
$sel:marker:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:filters:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe [Filter]
$sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbInstanceAutomatedBackupsArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbInstanceIdentifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dbiResourceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Filter]
filters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxRecords

instance
  Data.ToHeaders
    DescribeDBInstanceAutomatedBackups
  where
  toHeaders :: DescribeDBInstanceAutomatedBackups -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance
  Data.ToPath
    DescribeDBInstanceAutomatedBackups
  where
  toPath :: DescribeDBInstanceAutomatedBackups -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance
  Data.ToQuery
    DescribeDBInstanceAutomatedBackups
  where
  toQuery :: DescribeDBInstanceAutomatedBackups -> QueryString
toQuery DescribeDBInstanceAutomatedBackups' {Maybe Int
Maybe [Filter]
Maybe Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
dbiResourceId :: Maybe Text
dbInstanceIdentifier :: Maybe Text
dbInstanceAutomatedBackupsArn :: Maybe Text
$sel:maxRecords:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Int
$sel:marker:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:filters:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe [Filter]
$sel:dbiResourceId:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceIdentifier:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
$sel:dbInstanceAutomatedBackupsArn:DescribeDBInstanceAutomatedBackups' :: DescribeDBInstanceAutomatedBackups -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"DescribeDBInstanceAutomatedBackups" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2014-10-31" :: Prelude.ByteString),
        ByteString
"DBInstanceAutomatedBackupsArn"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbInstanceAutomatedBackupsArn,
        ByteString
"DBInstanceIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbInstanceIdentifier,
        ByteString
"DbiResourceId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
dbiResourceId,
        ByteString
"Filters"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: forall a. ToQuery a => a -> QueryString
Data.toQuery
            (forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"Filter" forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Filter]
filters),
        ByteString
"Marker" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
marker,
        ByteString
"MaxRecords" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Int
maxRecords
      ]

-- | Contains the result of a successful invocation of the
-- @DescribeDBInstanceAutomatedBackups@ action.
--
-- /See:/ 'newDescribeDBInstanceAutomatedBackupsResponse' smart constructor.
data DescribeDBInstanceAutomatedBackupsResponse = DescribeDBInstanceAutomatedBackupsResponse'
  { -- | A list of @DBInstanceAutomatedBackup@ instances.
    DescribeDBInstanceAutomatedBackupsResponse
-> Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups :: Prelude.Maybe [DBInstanceAutomatedBackup],
    -- | An optional pagination token provided by a previous request. If this
    -- parameter is specified, the response includes only records beyond the
    -- marker, up to the value specified by @MaxRecords@.
    DescribeDBInstanceAutomatedBackupsResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeDBInstanceAutomatedBackupsResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeDBInstanceAutomatedBackupsResponse
-> DescribeDBInstanceAutomatedBackupsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDBInstanceAutomatedBackupsResponse
-> DescribeDBInstanceAutomatedBackupsResponse -> Bool
$c/= :: DescribeDBInstanceAutomatedBackupsResponse
-> DescribeDBInstanceAutomatedBackupsResponse -> Bool
== :: DescribeDBInstanceAutomatedBackupsResponse
-> DescribeDBInstanceAutomatedBackupsResponse -> Bool
$c== :: DescribeDBInstanceAutomatedBackupsResponse
-> DescribeDBInstanceAutomatedBackupsResponse -> Bool
Prelude.Eq, ReadPrec [DescribeDBInstanceAutomatedBackupsResponse]
ReadPrec DescribeDBInstanceAutomatedBackupsResponse
Int -> ReadS DescribeDBInstanceAutomatedBackupsResponse
ReadS [DescribeDBInstanceAutomatedBackupsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDBInstanceAutomatedBackupsResponse]
$creadListPrec :: ReadPrec [DescribeDBInstanceAutomatedBackupsResponse]
readPrec :: ReadPrec DescribeDBInstanceAutomatedBackupsResponse
$creadPrec :: ReadPrec DescribeDBInstanceAutomatedBackupsResponse
readList :: ReadS [DescribeDBInstanceAutomatedBackupsResponse]
$creadList :: ReadS [DescribeDBInstanceAutomatedBackupsResponse]
readsPrec :: Int -> ReadS DescribeDBInstanceAutomatedBackupsResponse
$creadsPrec :: Int -> ReadS DescribeDBInstanceAutomatedBackupsResponse
Prelude.Read, Int -> DescribeDBInstanceAutomatedBackupsResponse -> ShowS
[DescribeDBInstanceAutomatedBackupsResponse] -> ShowS
DescribeDBInstanceAutomatedBackupsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDBInstanceAutomatedBackupsResponse] -> ShowS
$cshowList :: [DescribeDBInstanceAutomatedBackupsResponse] -> ShowS
show :: DescribeDBInstanceAutomatedBackupsResponse -> String
$cshow :: DescribeDBInstanceAutomatedBackupsResponse -> String
showsPrec :: Int -> DescribeDBInstanceAutomatedBackupsResponse -> ShowS
$cshowsPrec :: Int -> DescribeDBInstanceAutomatedBackupsResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDBInstanceAutomatedBackupsResponse x
-> DescribeDBInstanceAutomatedBackupsResponse
forall x.
DescribeDBInstanceAutomatedBackupsResponse
-> Rep DescribeDBInstanceAutomatedBackupsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDBInstanceAutomatedBackupsResponse x
-> DescribeDBInstanceAutomatedBackupsResponse
$cfrom :: forall x.
DescribeDBInstanceAutomatedBackupsResponse
-> Rep DescribeDBInstanceAutomatedBackupsResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDBInstanceAutomatedBackupsResponse' 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:
--
-- 'dbInstanceAutomatedBackups', 'describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups' - A list of @DBInstanceAutomatedBackup@ instances.
--
-- 'marker', 'describeDBInstanceAutomatedBackupsResponse_marker' - An optional pagination token provided by a previous request. If this
-- parameter is specified, the response includes only records beyond the
-- marker, up to the value specified by @MaxRecords@.
--
-- 'httpStatus', 'describeDBInstanceAutomatedBackupsResponse_httpStatus' - The response's http status code.
newDescribeDBInstanceAutomatedBackupsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeDBInstanceAutomatedBackupsResponse
newDescribeDBInstanceAutomatedBackupsResponse :: Int -> DescribeDBInstanceAutomatedBackupsResponse
newDescribeDBInstanceAutomatedBackupsResponse
  Int
pHttpStatus_ =
    DescribeDBInstanceAutomatedBackupsResponse'
      { $sel:dbInstanceAutomatedBackups:DescribeDBInstanceAutomatedBackupsResponse' :: Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups =
          forall a. Maybe a
Prelude.Nothing,
        $sel:marker:DescribeDBInstanceAutomatedBackupsResponse' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeDBInstanceAutomatedBackupsResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | A list of @DBInstanceAutomatedBackup@ instances.
describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups :: Lens.Lens' DescribeDBInstanceAutomatedBackupsResponse (Prelude.Maybe [DBInstanceAutomatedBackup])
describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups :: Lens'
  DescribeDBInstanceAutomatedBackupsResponse
  (Maybe [DBInstanceAutomatedBackup])
describeDBInstanceAutomatedBackupsResponse_dbInstanceAutomatedBackups = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackupsResponse' {Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups :: Maybe [DBInstanceAutomatedBackup]
$sel:dbInstanceAutomatedBackups:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse
-> Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups} -> Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups) (\s :: DescribeDBInstanceAutomatedBackupsResponse
s@DescribeDBInstanceAutomatedBackupsResponse' {} Maybe [DBInstanceAutomatedBackup]
a -> DescribeDBInstanceAutomatedBackupsResponse
s {$sel:dbInstanceAutomatedBackups:DescribeDBInstanceAutomatedBackupsResponse' :: Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups = Maybe [DBInstanceAutomatedBackup]
a} :: DescribeDBInstanceAutomatedBackupsResponse) 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

-- | An optional pagination token provided by a previous request. If this
-- parameter is specified, the response includes only records beyond the
-- marker, up to the value specified by @MaxRecords@.
describeDBInstanceAutomatedBackupsResponse_marker :: Lens.Lens' DescribeDBInstanceAutomatedBackupsResponse (Prelude.Maybe Prelude.Text)
describeDBInstanceAutomatedBackupsResponse_marker :: Lens' DescribeDBInstanceAutomatedBackupsResponse (Maybe Text)
describeDBInstanceAutomatedBackupsResponse_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackupsResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeDBInstanceAutomatedBackupsResponse
s@DescribeDBInstanceAutomatedBackupsResponse' {} Maybe Text
a -> DescribeDBInstanceAutomatedBackupsResponse
s {$sel:marker:DescribeDBInstanceAutomatedBackupsResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeDBInstanceAutomatedBackupsResponse)

-- | The response's http status code.
describeDBInstanceAutomatedBackupsResponse_httpStatus :: Lens.Lens' DescribeDBInstanceAutomatedBackupsResponse Prelude.Int
describeDBInstanceAutomatedBackupsResponse_httpStatus :: Lens' DescribeDBInstanceAutomatedBackupsResponse Int
describeDBInstanceAutomatedBackupsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBInstanceAutomatedBackupsResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeDBInstanceAutomatedBackupsResponse
s@DescribeDBInstanceAutomatedBackupsResponse' {} Int
a -> DescribeDBInstanceAutomatedBackupsResponse
s {$sel:httpStatus:DescribeDBInstanceAutomatedBackupsResponse' :: Int
httpStatus = Int
a} :: DescribeDBInstanceAutomatedBackupsResponse)

instance
  Prelude.NFData
    DescribeDBInstanceAutomatedBackupsResponse
  where
  rnf :: DescribeDBInstanceAutomatedBackupsResponse -> ()
rnf DescribeDBInstanceAutomatedBackupsResponse' {Int
Maybe [DBInstanceAutomatedBackup]
Maybe Text
httpStatus :: Int
marker :: Maybe Text
dbInstanceAutomatedBackups :: Maybe [DBInstanceAutomatedBackup]
$sel:httpStatus:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse -> Int
$sel:marker:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse -> Maybe Text
$sel:dbInstanceAutomatedBackups:DescribeDBInstanceAutomatedBackupsResponse' :: DescribeDBInstanceAutomatedBackupsResponse
-> Maybe [DBInstanceAutomatedBackup]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [DBInstanceAutomatedBackup]
dbInstanceAutomatedBackups
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
marker
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus