{-# 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.LexV2Models.DescribeExport
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about a specific export.
module Amazonka.LexV2Models.DescribeExport
  ( -- * Creating a Request
    DescribeExport (..),
    newDescribeExport,

    -- * Request Lenses
    describeExport_exportId,

    -- * Destructuring the Response
    DescribeExportResponse (..),
    newDescribeExportResponse,

    -- * Response Lenses
    describeExportResponse_creationDateTime,
    describeExportResponse_downloadUrl,
    describeExportResponse_exportId,
    describeExportResponse_exportStatus,
    describeExportResponse_failureReasons,
    describeExportResponse_fileFormat,
    describeExportResponse_lastUpdatedDateTime,
    describeExportResponse_resourceSpecification,
    describeExportResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeExport' smart constructor.
data DescribeExport = DescribeExport'
  { -- | The unique identifier of the export to describe.
    DescribeExport -> Text
exportId :: Prelude.Text
  }
  deriving (DescribeExport -> DescribeExport -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExport -> DescribeExport -> Bool
$c/= :: DescribeExport -> DescribeExport -> Bool
== :: DescribeExport -> DescribeExport -> Bool
$c== :: DescribeExport -> DescribeExport -> Bool
Prelude.Eq, ReadPrec [DescribeExport]
ReadPrec DescribeExport
Int -> ReadS DescribeExport
ReadS [DescribeExport]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeExport]
$creadListPrec :: ReadPrec [DescribeExport]
readPrec :: ReadPrec DescribeExport
$creadPrec :: ReadPrec DescribeExport
readList :: ReadS [DescribeExport]
$creadList :: ReadS [DescribeExport]
readsPrec :: Int -> ReadS DescribeExport
$creadsPrec :: Int -> ReadS DescribeExport
Prelude.Read, Int -> DescribeExport -> ShowS
[DescribeExport] -> ShowS
DescribeExport -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExport] -> ShowS
$cshowList :: [DescribeExport] -> ShowS
show :: DescribeExport -> String
$cshow :: DescribeExport -> String
showsPrec :: Int -> DescribeExport -> ShowS
$cshowsPrec :: Int -> DescribeExport -> ShowS
Prelude.Show, forall x. Rep DescribeExport x -> DescribeExport
forall x. DescribeExport -> Rep DescribeExport x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeExport x -> DescribeExport
$cfrom :: forall x. DescribeExport -> Rep DescribeExport x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExport' 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:
--
-- 'exportId', 'describeExport_exportId' - The unique identifier of the export to describe.
newDescribeExport ::
  -- | 'exportId'
  Prelude.Text ->
  DescribeExport
newDescribeExport :: Text -> DescribeExport
newDescribeExport Text
pExportId_ =
  DescribeExport' {$sel:exportId:DescribeExport' :: Text
exportId = Text
pExportId_}

-- | The unique identifier of the export to describe.
describeExport_exportId :: Lens.Lens' DescribeExport Prelude.Text
describeExport_exportId :: Lens' DescribeExport Text
describeExport_exportId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExport' {Text
exportId :: Text
$sel:exportId:DescribeExport' :: DescribeExport -> Text
exportId} -> Text
exportId) (\s :: DescribeExport
s@DescribeExport' {} Text
a -> DescribeExport
s {$sel:exportId:DescribeExport' :: Text
exportId = Text
a} :: DescribeExport)

instance Core.AWSRequest DescribeExport where
  type
    AWSResponse DescribeExport =
      DescribeExportResponse
  request :: (Service -> Service) -> DescribeExport -> Request DescribeExport
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeExport
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeExport)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe ExportStatus
-> Maybe [Text]
-> Maybe ImportExportFileFormat
-> Maybe POSIX
-> Maybe ExportResourceSpecification
-> Int
-> DescribeExportResponse
DescribeExportResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"creationDateTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"downloadUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"exportId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"exportStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"failureReasons" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"fileFormat")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"lastUpdatedDateTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"resourceSpecification")
            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 DescribeExport where
  hashWithSalt :: Int -> DescribeExport -> Int
hashWithSalt Int
_salt DescribeExport' {Text
exportId :: Text
$sel:exportId:DescribeExport' :: DescribeExport -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
exportId

instance Prelude.NFData DescribeExport where
  rnf :: DescribeExport -> ()
rnf DescribeExport' {Text
exportId :: Text
$sel:exportId:DescribeExport' :: DescribeExport -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
exportId

instance Data.ToHeaders DescribeExport where
  toHeaders :: DescribeExport -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeExport where
  toPath :: DescribeExport -> ByteString
toPath DescribeExport' {Text
exportId :: Text
$sel:exportId:DescribeExport' :: DescribeExport -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/exports/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
exportId, ByteString
"/"]

instance Data.ToQuery DescribeExport where
  toQuery :: DescribeExport -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDescribeExportResponse' smart constructor.
data DescribeExportResponse = DescribeExportResponse'
  { -- | The date and time that the export was created.
    DescribeExportResponse -> Maybe POSIX
creationDateTime :: Prelude.Maybe Data.POSIX,
    -- | A pre-signed S3 URL that points to the bot or bot locale archive. The
    -- URL is only available for 5 minutes after calling the @DescribeExport@
    -- operation.
    DescribeExportResponse -> Maybe Text
downloadUrl :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier of the described export.
    DescribeExportResponse -> Maybe Text
exportId :: Prelude.Maybe Prelude.Text,
    -- | The status of the export. When the status is @Complete@ the export
    -- archive file is available for download.
    DescribeExportResponse -> Maybe ExportStatus
exportStatus :: Prelude.Maybe ExportStatus,
    -- | If the @exportStatus@ is failed, contains one or more reasons why the
    -- export could not be completed.
    DescribeExportResponse -> Maybe [Text]
failureReasons :: Prelude.Maybe [Prelude.Text],
    -- | The file format used in the files that describe the resource.
    DescribeExportResponse -> Maybe ImportExportFileFormat
fileFormat :: Prelude.Maybe ImportExportFileFormat,
    -- | The last date and time that the export was updated.
    DescribeExportResponse -> Maybe POSIX
lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,
    -- | The bot, bot ID, and optional locale ID of the exported bot or bot
    -- locale.
    DescribeExportResponse -> Maybe ExportResourceSpecification
resourceSpecification :: Prelude.Maybe ExportResourceSpecification,
    -- | The response's http status code.
    DescribeExportResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeExportResponse -> DescribeExportResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeExportResponse -> DescribeExportResponse -> Bool
$c/= :: DescribeExportResponse -> DescribeExportResponse -> Bool
== :: DescribeExportResponse -> DescribeExportResponse -> Bool
$c== :: DescribeExportResponse -> DescribeExportResponse -> Bool
Prelude.Eq, ReadPrec [DescribeExportResponse]
ReadPrec DescribeExportResponse
Int -> ReadS DescribeExportResponse
ReadS [DescribeExportResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeExportResponse]
$creadListPrec :: ReadPrec [DescribeExportResponse]
readPrec :: ReadPrec DescribeExportResponse
$creadPrec :: ReadPrec DescribeExportResponse
readList :: ReadS [DescribeExportResponse]
$creadList :: ReadS [DescribeExportResponse]
readsPrec :: Int -> ReadS DescribeExportResponse
$creadsPrec :: Int -> ReadS DescribeExportResponse
Prelude.Read, Int -> DescribeExportResponse -> ShowS
[DescribeExportResponse] -> ShowS
DescribeExportResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeExportResponse] -> ShowS
$cshowList :: [DescribeExportResponse] -> ShowS
show :: DescribeExportResponse -> String
$cshow :: DescribeExportResponse -> String
showsPrec :: Int -> DescribeExportResponse -> ShowS
$cshowsPrec :: Int -> DescribeExportResponse -> ShowS
Prelude.Show, forall x. Rep DescribeExportResponse x -> DescribeExportResponse
forall x. DescribeExportResponse -> Rep DescribeExportResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeExportResponse x -> DescribeExportResponse
$cfrom :: forall x. DescribeExportResponse -> Rep DescribeExportResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeExportResponse' 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:
--
-- 'creationDateTime', 'describeExportResponse_creationDateTime' - The date and time that the export was created.
--
-- 'downloadUrl', 'describeExportResponse_downloadUrl' - A pre-signed S3 URL that points to the bot or bot locale archive. The
-- URL is only available for 5 minutes after calling the @DescribeExport@
-- operation.
--
-- 'exportId', 'describeExportResponse_exportId' - The unique identifier of the described export.
--
-- 'exportStatus', 'describeExportResponse_exportStatus' - The status of the export. When the status is @Complete@ the export
-- archive file is available for download.
--
-- 'failureReasons', 'describeExportResponse_failureReasons' - If the @exportStatus@ is failed, contains one or more reasons why the
-- export could not be completed.
--
-- 'fileFormat', 'describeExportResponse_fileFormat' - The file format used in the files that describe the resource.
--
-- 'lastUpdatedDateTime', 'describeExportResponse_lastUpdatedDateTime' - The last date and time that the export was updated.
--
-- 'resourceSpecification', 'describeExportResponse_resourceSpecification' - The bot, bot ID, and optional locale ID of the exported bot or bot
-- locale.
--
-- 'httpStatus', 'describeExportResponse_httpStatus' - The response's http status code.
newDescribeExportResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeExportResponse
newDescribeExportResponse :: Int -> DescribeExportResponse
newDescribeExportResponse Int
pHttpStatus_ =
  DescribeExportResponse'
    { $sel:creationDateTime:DescribeExportResponse' :: Maybe POSIX
creationDateTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:downloadUrl:DescribeExportResponse' :: Maybe Text
downloadUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:exportId:DescribeExportResponse' :: Maybe Text
exportId = forall a. Maybe a
Prelude.Nothing,
      $sel:exportStatus:DescribeExportResponse' :: Maybe ExportStatus
exportStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReasons:DescribeExportResponse' :: Maybe [Text]
failureReasons = forall a. Maybe a
Prelude.Nothing,
      $sel:fileFormat:DescribeExportResponse' :: Maybe ImportExportFileFormat
fileFormat = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedDateTime:DescribeExportResponse' :: Maybe POSIX
lastUpdatedDateTime = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceSpecification:DescribeExportResponse' :: Maybe ExportResourceSpecification
resourceSpecification = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeExportResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The date and time that the export was created.
describeExportResponse_creationDateTime :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.UTCTime)
describeExportResponse_creationDateTime :: Lens' DescribeExportResponse (Maybe UTCTime)
describeExportResponse_creationDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe POSIX
creationDateTime :: Maybe POSIX
$sel:creationDateTime:DescribeExportResponse' :: DescribeExportResponse -> Maybe POSIX
creationDateTime} -> Maybe POSIX
creationDateTime) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe POSIX
a -> DescribeExportResponse
s {$sel:creationDateTime:DescribeExportResponse' :: Maybe POSIX
creationDateTime = Maybe POSIX
a} :: DescribeExportResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A pre-signed S3 URL that points to the bot or bot locale archive. The
-- URL is only available for 5 minutes after calling the @DescribeExport@
-- operation.
describeExportResponse_downloadUrl :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.Text)
describeExportResponse_downloadUrl :: Lens' DescribeExportResponse (Maybe Text)
describeExportResponse_downloadUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe Text
downloadUrl :: Maybe Text
$sel:downloadUrl:DescribeExportResponse' :: DescribeExportResponse -> Maybe Text
downloadUrl} -> Maybe Text
downloadUrl) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe Text
a -> DescribeExportResponse
s {$sel:downloadUrl:DescribeExportResponse' :: Maybe Text
downloadUrl = Maybe Text
a} :: DescribeExportResponse)

-- | The unique identifier of the described export.
describeExportResponse_exportId :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.Text)
describeExportResponse_exportId :: Lens' DescribeExportResponse (Maybe Text)
describeExportResponse_exportId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe Text
exportId :: Maybe Text
$sel:exportId:DescribeExportResponse' :: DescribeExportResponse -> Maybe Text
exportId} -> Maybe Text
exportId) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe Text
a -> DescribeExportResponse
s {$sel:exportId:DescribeExportResponse' :: Maybe Text
exportId = Maybe Text
a} :: DescribeExportResponse)

-- | The status of the export. When the status is @Complete@ the export
-- archive file is available for download.
describeExportResponse_exportStatus :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ExportStatus)
describeExportResponse_exportStatus :: Lens' DescribeExportResponse (Maybe ExportStatus)
describeExportResponse_exportStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe ExportStatus
exportStatus :: Maybe ExportStatus
$sel:exportStatus:DescribeExportResponse' :: DescribeExportResponse -> Maybe ExportStatus
exportStatus} -> Maybe ExportStatus
exportStatus) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe ExportStatus
a -> DescribeExportResponse
s {$sel:exportStatus:DescribeExportResponse' :: Maybe ExportStatus
exportStatus = Maybe ExportStatus
a} :: DescribeExportResponse)

-- | If the @exportStatus@ is failed, contains one or more reasons why the
-- export could not be completed.
describeExportResponse_failureReasons :: Lens.Lens' DescribeExportResponse (Prelude.Maybe [Prelude.Text])
describeExportResponse_failureReasons :: Lens' DescribeExportResponse (Maybe [Text])
describeExportResponse_failureReasons = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe [Text]
failureReasons :: Maybe [Text]
$sel:failureReasons:DescribeExportResponse' :: DescribeExportResponse -> Maybe [Text]
failureReasons} -> Maybe [Text]
failureReasons) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe [Text]
a -> DescribeExportResponse
s {$sel:failureReasons:DescribeExportResponse' :: Maybe [Text]
failureReasons = Maybe [Text]
a} :: DescribeExportResponse) 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 file format used in the files that describe the resource.
describeExportResponse_fileFormat :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ImportExportFileFormat)
describeExportResponse_fileFormat :: Lens' DescribeExportResponse (Maybe ImportExportFileFormat)
describeExportResponse_fileFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe ImportExportFileFormat
fileFormat :: Maybe ImportExportFileFormat
$sel:fileFormat:DescribeExportResponse' :: DescribeExportResponse -> Maybe ImportExportFileFormat
fileFormat} -> Maybe ImportExportFileFormat
fileFormat) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe ImportExportFileFormat
a -> DescribeExportResponse
s {$sel:fileFormat:DescribeExportResponse' :: Maybe ImportExportFileFormat
fileFormat = Maybe ImportExportFileFormat
a} :: DescribeExportResponse)

-- | The last date and time that the export was updated.
describeExportResponse_lastUpdatedDateTime :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.UTCTime)
describeExportResponse_lastUpdatedDateTime :: Lens' DescribeExportResponse (Maybe UTCTime)
describeExportResponse_lastUpdatedDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe POSIX
lastUpdatedDateTime :: Maybe POSIX
$sel:lastUpdatedDateTime:DescribeExportResponse' :: DescribeExportResponse -> Maybe POSIX
lastUpdatedDateTime} -> Maybe POSIX
lastUpdatedDateTime) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe POSIX
a -> DescribeExportResponse
s {$sel:lastUpdatedDateTime:DescribeExportResponse' :: Maybe POSIX
lastUpdatedDateTime = Maybe POSIX
a} :: DescribeExportResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The bot, bot ID, and optional locale ID of the exported bot or bot
-- locale.
describeExportResponse_resourceSpecification :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ExportResourceSpecification)
describeExportResponse_resourceSpecification :: Lens' DescribeExportResponse (Maybe ExportResourceSpecification)
describeExportResponse_resourceSpecification = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeExportResponse' {Maybe ExportResourceSpecification
resourceSpecification :: Maybe ExportResourceSpecification
$sel:resourceSpecification:DescribeExportResponse' :: DescribeExportResponse -> Maybe ExportResourceSpecification
resourceSpecification} -> Maybe ExportResourceSpecification
resourceSpecification) (\s :: DescribeExportResponse
s@DescribeExportResponse' {} Maybe ExportResourceSpecification
a -> DescribeExportResponse
s {$sel:resourceSpecification:DescribeExportResponse' :: Maybe ExportResourceSpecification
resourceSpecification = Maybe ExportResourceSpecification
a} :: DescribeExportResponse)

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

instance Prelude.NFData DescribeExportResponse where
  rnf :: DescribeExportResponse -> ()
rnf DescribeExportResponse' {Int
Maybe [Text]
Maybe Text
Maybe POSIX
Maybe ExportResourceSpecification
Maybe ExportStatus
Maybe ImportExportFileFormat
httpStatus :: Int
resourceSpecification :: Maybe ExportResourceSpecification
lastUpdatedDateTime :: Maybe POSIX
fileFormat :: Maybe ImportExportFileFormat
failureReasons :: Maybe [Text]
exportStatus :: Maybe ExportStatus
exportId :: Maybe Text
downloadUrl :: Maybe Text
creationDateTime :: Maybe POSIX
$sel:httpStatus:DescribeExportResponse' :: DescribeExportResponse -> Int
$sel:resourceSpecification:DescribeExportResponse' :: DescribeExportResponse -> Maybe ExportResourceSpecification
$sel:lastUpdatedDateTime:DescribeExportResponse' :: DescribeExportResponse -> Maybe POSIX
$sel:fileFormat:DescribeExportResponse' :: DescribeExportResponse -> Maybe ImportExportFileFormat
$sel:failureReasons:DescribeExportResponse' :: DescribeExportResponse -> Maybe [Text]
$sel:exportStatus:DescribeExportResponse' :: DescribeExportResponse -> Maybe ExportStatus
$sel:exportId:DescribeExportResponse' :: DescribeExportResponse -> Maybe Text
$sel:downloadUrl:DescribeExportResponse' :: DescribeExportResponse -> Maybe Text
$sel:creationDateTime:DescribeExportResponse' :: DescribeExportResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
downloadUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
exportId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportStatus
exportStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
failureReasons
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImportExportFileFormat
fileFormat
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastUpdatedDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportResourceSpecification
resourceSpecification
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus