{-# 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.DescribeDBLogFiles
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of DB log files for the DB instance.
--
-- This command doesn\'t apply to RDS Custom.
--
-- This operation returns paginated results.
module Amazonka.RDS.DescribeDBLogFiles
  ( -- * Creating a Request
    DescribeDBLogFiles (..),
    newDescribeDBLogFiles,

    -- * Request Lenses
    describeDBLogFiles_fileLastWritten,
    describeDBLogFiles_fileSize,
    describeDBLogFiles_filenameContains,
    describeDBLogFiles_filters,
    describeDBLogFiles_marker,
    describeDBLogFiles_maxRecords,
    describeDBLogFiles_dbInstanceIdentifier,

    -- * Destructuring the Response
    DescribeDBLogFilesResponse (..),
    newDescribeDBLogFilesResponse,

    -- * Response Lenses
    describeDBLogFilesResponse_describeDBLogFiles,
    describeDBLogFilesResponse_marker,
    describeDBLogFilesResponse_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

-- |
--
-- /See:/ 'newDescribeDBLogFiles' smart constructor.
data DescribeDBLogFiles = DescribeDBLogFiles'
  { -- | Filters the available log files for files written since the specified
    -- date, in POSIX timestamp format with milliseconds.
    DescribeDBLogFiles -> Maybe Integer
fileLastWritten :: Prelude.Maybe Prelude.Integer,
    -- | Filters the available log files for files larger than the specified
    -- size.
    DescribeDBLogFiles -> Maybe Integer
fileSize :: Prelude.Maybe Prelude.Integer,
    -- | Filters the available log files for log file names that contain the
    -- specified string.
    DescribeDBLogFiles -> Maybe Text
filenameContains :: Prelude.Maybe Prelude.Text,
    -- | This parameter isn\'t currently supported.
    DescribeDBLogFiles -> 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.
    DescribeDBLogFiles -> 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 you can retrieve the
    -- remaining results.
    DescribeDBLogFiles -> Maybe Int
maxRecords :: Prelude.Maybe Prelude.Int,
    -- | The customer-assigned name of the DB instance that contains the log
    -- files you want to list.
    --
    -- Constraints:
    --
    -- -   Must match the identifier of an existing DBInstance.
    DescribeDBLogFiles -> Text
dbInstanceIdentifier :: Prelude.Text
  }
  deriving (DescribeDBLogFiles -> DescribeDBLogFiles -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDBLogFiles -> DescribeDBLogFiles -> Bool
$c/= :: DescribeDBLogFiles -> DescribeDBLogFiles -> Bool
== :: DescribeDBLogFiles -> DescribeDBLogFiles -> Bool
$c== :: DescribeDBLogFiles -> DescribeDBLogFiles -> Bool
Prelude.Eq, ReadPrec [DescribeDBLogFiles]
ReadPrec DescribeDBLogFiles
Int -> ReadS DescribeDBLogFiles
ReadS [DescribeDBLogFiles]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDBLogFiles]
$creadListPrec :: ReadPrec [DescribeDBLogFiles]
readPrec :: ReadPrec DescribeDBLogFiles
$creadPrec :: ReadPrec DescribeDBLogFiles
readList :: ReadS [DescribeDBLogFiles]
$creadList :: ReadS [DescribeDBLogFiles]
readsPrec :: Int -> ReadS DescribeDBLogFiles
$creadsPrec :: Int -> ReadS DescribeDBLogFiles
Prelude.Read, Int -> DescribeDBLogFiles -> ShowS
[DescribeDBLogFiles] -> ShowS
DescribeDBLogFiles -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDBLogFiles] -> ShowS
$cshowList :: [DescribeDBLogFiles] -> ShowS
show :: DescribeDBLogFiles -> String
$cshow :: DescribeDBLogFiles -> String
showsPrec :: Int -> DescribeDBLogFiles -> ShowS
$cshowsPrec :: Int -> DescribeDBLogFiles -> ShowS
Prelude.Show, forall x. Rep DescribeDBLogFiles x -> DescribeDBLogFiles
forall x. DescribeDBLogFiles -> Rep DescribeDBLogFiles x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeDBLogFiles x -> DescribeDBLogFiles
$cfrom :: forall x. DescribeDBLogFiles -> Rep DescribeDBLogFiles x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDBLogFiles' 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:
--
-- 'fileLastWritten', 'describeDBLogFiles_fileLastWritten' - Filters the available log files for files written since the specified
-- date, in POSIX timestamp format with milliseconds.
--
-- 'fileSize', 'describeDBLogFiles_fileSize' - Filters the available log files for files larger than the specified
-- size.
--
-- 'filenameContains', 'describeDBLogFiles_filenameContains' - Filters the available log files for log file names that contain the
-- specified string.
--
-- 'filters', 'describeDBLogFiles_filters' - This parameter isn\'t currently supported.
--
-- 'marker', 'describeDBLogFiles_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', 'describeDBLogFiles_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 you can retrieve the
-- remaining results.
--
-- 'dbInstanceIdentifier', 'describeDBLogFiles_dbInstanceIdentifier' - The customer-assigned name of the DB instance that contains the log
-- files you want to list.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBInstance.
newDescribeDBLogFiles ::
  -- | 'dbInstanceIdentifier'
  Prelude.Text ->
  DescribeDBLogFiles
newDescribeDBLogFiles :: Text -> DescribeDBLogFiles
newDescribeDBLogFiles Text
pDBInstanceIdentifier_ =
  DescribeDBLogFiles'
    { $sel:fileLastWritten:DescribeDBLogFiles' :: Maybe Integer
fileLastWritten =
        forall a. Maybe a
Prelude.Nothing,
      $sel:fileSize:DescribeDBLogFiles' :: Maybe Integer
fileSize = forall a. Maybe a
Prelude.Nothing,
      $sel:filenameContains:DescribeDBLogFiles' :: Maybe Text
filenameContains = forall a. Maybe a
Prelude.Nothing,
      $sel:filters:DescribeDBLogFiles' :: Maybe [Filter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeDBLogFiles' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRecords:DescribeDBLogFiles' :: Maybe Int
maxRecords = forall a. Maybe a
Prelude.Nothing,
      $sel:dbInstanceIdentifier:DescribeDBLogFiles' :: Text
dbInstanceIdentifier = Text
pDBInstanceIdentifier_
    }

-- | Filters the available log files for files written since the specified
-- date, in POSIX timestamp format with milliseconds.
describeDBLogFiles_fileLastWritten :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe Prelude.Integer)
describeDBLogFiles_fileLastWritten :: Lens' DescribeDBLogFiles (Maybe Integer)
describeDBLogFiles_fileLastWritten = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe Integer
fileLastWritten :: Maybe Integer
$sel:fileLastWritten:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
fileLastWritten} -> Maybe Integer
fileLastWritten) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe Integer
a -> DescribeDBLogFiles
s {$sel:fileLastWritten:DescribeDBLogFiles' :: Maybe Integer
fileLastWritten = Maybe Integer
a} :: DescribeDBLogFiles)

-- | Filters the available log files for files larger than the specified
-- size.
describeDBLogFiles_fileSize :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe Prelude.Integer)
describeDBLogFiles_fileSize :: Lens' DescribeDBLogFiles (Maybe Integer)
describeDBLogFiles_fileSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe Integer
fileSize :: Maybe Integer
$sel:fileSize:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
fileSize} -> Maybe Integer
fileSize) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe Integer
a -> DescribeDBLogFiles
s {$sel:fileSize:DescribeDBLogFiles' :: Maybe Integer
fileSize = Maybe Integer
a} :: DescribeDBLogFiles)

-- | Filters the available log files for log file names that contain the
-- specified string.
describeDBLogFiles_filenameContains :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe Prelude.Text)
describeDBLogFiles_filenameContains :: Lens' DescribeDBLogFiles (Maybe Text)
describeDBLogFiles_filenameContains = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe Text
filenameContains :: Maybe Text
$sel:filenameContains:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
filenameContains} -> Maybe Text
filenameContains) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe Text
a -> DescribeDBLogFiles
s {$sel:filenameContains:DescribeDBLogFiles' :: Maybe Text
filenameContains = Maybe Text
a} :: DescribeDBLogFiles)

-- | This parameter isn\'t currently supported.
describeDBLogFiles_filters :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe [Filter])
describeDBLogFiles_filters :: Lens' DescribeDBLogFiles (Maybe [Filter])
describeDBLogFiles_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe [Filter]
filters :: Maybe [Filter]
$sel:filters:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe [Filter]
filters} -> Maybe [Filter]
filters) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe [Filter]
a -> DescribeDBLogFiles
s {$sel:filters:DescribeDBLogFiles' :: Maybe [Filter]
filters = Maybe [Filter]
a} :: DescribeDBLogFiles) 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.
describeDBLogFiles_marker :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe Prelude.Text)
describeDBLogFiles_marker :: Lens' DescribeDBLogFiles (Maybe Text)
describeDBLogFiles_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe Text
a -> DescribeDBLogFiles
s {$sel:marker:DescribeDBLogFiles' :: Maybe Text
marker = Maybe Text
a} :: DescribeDBLogFiles)

-- | 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 you can retrieve the
-- remaining results.
describeDBLogFiles_maxRecords :: Lens.Lens' DescribeDBLogFiles (Prelude.Maybe Prelude.Int)
describeDBLogFiles_maxRecords :: Lens' DescribeDBLogFiles (Maybe Int)
describeDBLogFiles_maxRecords = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Maybe Int
maxRecords :: Maybe Int
$sel:maxRecords:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Int
maxRecords} -> Maybe Int
maxRecords) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Maybe Int
a -> DescribeDBLogFiles
s {$sel:maxRecords:DescribeDBLogFiles' :: Maybe Int
maxRecords = Maybe Int
a} :: DescribeDBLogFiles)

-- | The customer-assigned name of the DB instance that contains the log
-- files you want to list.
--
-- Constraints:
--
-- -   Must match the identifier of an existing DBInstance.
describeDBLogFiles_dbInstanceIdentifier :: Lens.Lens' DescribeDBLogFiles Prelude.Text
describeDBLogFiles_dbInstanceIdentifier :: Lens' DescribeDBLogFiles Text
describeDBLogFiles_dbInstanceIdentifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFiles' {Text
dbInstanceIdentifier :: Text
$sel:dbInstanceIdentifier:DescribeDBLogFiles' :: DescribeDBLogFiles -> Text
dbInstanceIdentifier} -> Text
dbInstanceIdentifier) (\s :: DescribeDBLogFiles
s@DescribeDBLogFiles' {} Text
a -> DescribeDBLogFiles
s {$sel:dbInstanceIdentifier:DescribeDBLogFiles' :: Text
dbInstanceIdentifier = Text
a} :: DescribeDBLogFiles)

instance Core.AWSPager DescribeDBLogFiles where
  page :: DescribeDBLogFiles
-> AWSResponse DescribeDBLogFiles -> Maybe DescribeDBLogFiles
page DescribeDBLogFiles
rq AWSResponse DescribeDBLogFiles
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse DescribeDBLogFiles
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDBLogFilesResponse (Maybe Text)
describeDBLogFilesResponse_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 DescribeDBLogFiles
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens'
  DescribeDBLogFilesResponse (Maybe [DescribeDBLogFilesDetails])
describeDBLogFilesResponse_describeDBLogFiles
            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.$ DescribeDBLogFiles
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' DescribeDBLogFiles (Maybe Text)
describeDBLogFiles_marker
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse DescribeDBLogFiles
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' DescribeDBLogFilesResponse (Maybe Text)
describeDBLogFilesResponse_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 DescribeDBLogFiles where
  type
    AWSResponse DescribeDBLogFiles =
      DescribeDBLogFilesResponse
  request :: (Service -> Service)
-> DescribeDBLogFiles -> Request DescribeDBLogFiles
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 DescribeDBLogFiles
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeDBLogFiles)))
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
"DescribeDBLogFilesResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [DescribeDBLogFilesDetails]
-> Maybe Text -> Int -> DescribeDBLogFilesResponse
DescribeDBLogFilesResponse'
            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
"DescribeDBLogFiles"
                            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
"DescribeDBLogFilesDetails")
                        )
            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 DescribeDBLogFiles where
  hashWithSalt :: Int -> DescribeDBLogFiles -> Int
hashWithSalt Int
_salt DescribeDBLogFiles' {Maybe Int
Maybe Integer
Maybe [Filter]
Maybe Text
Text
dbInstanceIdentifier :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
filenameContains :: Maybe Text
fileSize :: Maybe Integer
fileLastWritten :: Maybe Integer
$sel:dbInstanceIdentifier:DescribeDBLogFiles' :: DescribeDBLogFiles -> Text
$sel:maxRecords:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Int
$sel:marker:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:filters:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe [Filter]
$sel:filenameContains:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:fileSize:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
$sel:fileLastWritten:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
fileLastWritten
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
fileSize
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
filenameContains
      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
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
dbInstanceIdentifier

instance Prelude.NFData DescribeDBLogFiles where
  rnf :: DescribeDBLogFiles -> ()
rnf DescribeDBLogFiles' {Maybe Int
Maybe Integer
Maybe [Filter]
Maybe Text
Text
dbInstanceIdentifier :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
filenameContains :: Maybe Text
fileSize :: Maybe Integer
fileLastWritten :: Maybe Integer
$sel:dbInstanceIdentifier:DescribeDBLogFiles' :: DescribeDBLogFiles -> Text
$sel:maxRecords:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Int
$sel:marker:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:filters:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe [Filter]
$sel:filenameContains:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:fileSize:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
$sel:fileLastWritten:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
fileLastWritten
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
fileSize
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
filenameContains
      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
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
dbInstanceIdentifier

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

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

instance Data.ToQuery DescribeDBLogFiles where
  toQuery :: DescribeDBLogFiles -> QueryString
toQuery DescribeDBLogFiles' {Maybe Int
Maybe Integer
Maybe [Filter]
Maybe Text
Text
dbInstanceIdentifier :: Text
maxRecords :: Maybe Int
marker :: Maybe Text
filters :: Maybe [Filter]
filenameContains :: Maybe Text
fileSize :: Maybe Integer
fileLastWritten :: Maybe Integer
$sel:dbInstanceIdentifier:DescribeDBLogFiles' :: DescribeDBLogFiles -> Text
$sel:maxRecords:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Int
$sel:marker:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:filters:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe [Filter]
$sel:filenameContains:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Text
$sel:fileSize:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
$sel:fileLastWritten:DescribeDBLogFiles' :: DescribeDBLogFiles -> Maybe Integer
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"DescribeDBLogFiles" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2014-10-31" :: Prelude.ByteString),
        ByteString
"FileLastWritten" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Integer
fileLastWritten,
        ByteString
"FileSize" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Integer
fileSize,
        ByteString
"FilenameContains" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
filenameContains,
        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,
        ByteString
"DBInstanceIdentifier" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
dbInstanceIdentifier
      ]

-- | The response from a call to @DescribeDBLogFiles@.
--
-- /See:/ 'newDescribeDBLogFilesResponse' smart constructor.
data DescribeDBLogFilesResponse = DescribeDBLogFilesResponse'
  { -- | The DB log files returned.
    DescribeDBLogFilesResponse -> Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles :: Prelude.Maybe [DescribeDBLogFilesDetails],
    -- | A pagination token that can be used in a later @DescribeDBLogFiles@
    -- request.
    DescribeDBLogFilesResponse -> Maybe Text
marker :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeDBLogFilesResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeDBLogFilesResponse -> DescribeDBLogFilesResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeDBLogFilesResponse -> DescribeDBLogFilesResponse -> Bool
$c/= :: DescribeDBLogFilesResponse -> DescribeDBLogFilesResponse -> Bool
== :: DescribeDBLogFilesResponse -> DescribeDBLogFilesResponse -> Bool
$c== :: DescribeDBLogFilesResponse -> DescribeDBLogFilesResponse -> Bool
Prelude.Eq, ReadPrec [DescribeDBLogFilesResponse]
ReadPrec DescribeDBLogFilesResponse
Int -> ReadS DescribeDBLogFilesResponse
ReadS [DescribeDBLogFilesResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeDBLogFilesResponse]
$creadListPrec :: ReadPrec [DescribeDBLogFilesResponse]
readPrec :: ReadPrec DescribeDBLogFilesResponse
$creadPrec :: ReadPrec DescribeDBLogFilesResponse
readList :: ReadS [DescribeDBLogFilesResponse]
$creadList :: ReadS [DescribeDBLogFilesResponse]
readsPrec :: Int -> ReadS DescribeDBLogFilesResponse
$creadsPrec :: Int -> ReadS DescribeDBLogFilesResponse
Prelude.Read, Int -> DescribeDBLogFilesResponse -> ShowS
[DescribeDBLogFilesResponse] -> ShowS
DescribeDBLogFilesResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeDBLogFilesResponse] -> ShowS
$cshowList :: [DescribeDBLogFilesResponse] -> ShowS
show :: DescribeDBLogFilesResponse -> String
$cshow :: DescribeDBLogFilesResponse -> String
showsPrec :: Int -> DescribeDBLogFilesResponse -> ShowS
$cshowsPrec :: Int -> DescribeDBLogFilesResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeDBLogFilesResponse x -> DescribeDBLogFilesResponse
forall x.
DescribeDBLogFilesResponse -> Rep DescribeDBLogFilesResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeDBLogFilesResponse x -> DescribeDBLogFilesResponse
$cfrom :: forall x.
DescribeDBLogFilesResponse -> Rep DescribeDBLogFilesResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeDBLogFilesResponse' 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:
--
-- 'describeDBLogFiles', 'describeDBLogFilesResponse_describeDBLogFiles' - The DB log files returned.
--
-- 'marker', 'describeDBLogFilesResponse_marker' - A pagination token that can be used in a later @DescribeDBLogFiles@
-- request.
--
-- 'httpStatus', 'describeDBLogFilesResponse_httpStatus' - The response's http status code.
newDescribeDBLogFilesResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeDBLogFilesResponse
newDescribeDBLogFilesResponse :: Int -> DescribeDBLogFilesResponse
newDescribeDBLogFilesResponse Int
pHttpStatus_ =
  DescribeDBLogFilesResponse'
    { $sel:describeDBLogFiles:DescribeDBLogFilesResponse' :: Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles =
        forall a. Maybe a
Prelude.Nothing,
      $sel:marker:DescribeDBLogFilesResponse' :: Maybe Text
marker = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeDBLogFilesResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The DB log files returned.
describeDBLogFilesResponse_describeDBLogFiles :: Lens.Lens' DescribeDBLogFilesResponse (Prelude.Maybe [DescribeDBLogFilesDetails])
describeDBLogFilesResponse_describeDBLogFiles :: Lens'
  DescribeDBLogFilesResponse (Maybe [DescribeDBLogFilesDetails])
describeDBLogFilesResponse_describeDBLogFiles = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFilesResponse' {Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles :: Maybe [DescribeDBLogFilesDetails]
$sel:describeDBLogFiles:DescribeDBLogFilesResponse' :: DescribeDBLogFilesResponse -> Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles} -> Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles) (\s :: DescribeDBLogFilesResponse
s@DescribeDBLogFilesResponse' {} Maybe [DescribeDBLogFilesDetails]
a -> DescribeDBLogFilesResponse
s {$sel:describeDBLogFiles:DescribeDBLogFilesResponse' :: Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles = Maybe [DescribeDBLogFilesDetails]
a} :: DescribeDBLogFilesResponse) 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

-- | A pagination token that can be used in a later @DescribeDBLogFiles@
-- request.
describeDBLogFilesResponse_marker :: Lens.Lens' DescribeDBLogFilesResponse (Prelude.Maybe Prelude.Text)
describeDBLogFilesResponse_marker :: Lens' DescribeDBLogFilesResponse (Maybe Text)
describeDBLogFilesResponse_marker = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeDBLogFilesResponse' {Maybe Text
marker :: Maybe Text
$sel:marker:DescribeDBLogFilesResponse' :: DescribeDBLogFilesResponse -> Maybe Text
marker} -> Maybe Text
marker) (\s :: DescribeDBLogFilesResponse
s@DescribeDBLogFilesResponse' {} Maybe Text
a -> DescribeDBLogFilesResponse
s {$sel:marker:DescribeDBLogFilesResponse' :: Maybe Text
marker = Maybe Text
a} :: DescribeDBLogFilesResponse)

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

instance Prelude.NFData DescribeDBLogFilesResponse where
  rnf :: DescribeDBLogFilesResponse -> ()
rnf DescribeDBLogFilesResponse' {Int
Maybe [DescribeDBLogFilesDetails]
Maybe Text
httpStatus :: Int
marker :: Maybe Text
describeDBLogFiles :: Maybe [DescribeDBLogFilesDetails]
$sel:httpStatus:DescribeDBLogFilesResponse' :: DescribeDBLogFilesResponse -> Int
$sel:marker:DescribeDBLogFilesResponse' :: DescribeDBLogFilesResponse -> Maybe Text
$sel:describeDBLogFiles:DescribeDBLogFilesResponse' :: DescribeDBLogFilesResponse -> Maybe [DescribeDBLogFilesDetails]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [DescribeDBLogFilesDetails]
describeDBLogFiles
      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