{-# 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.SageMakerGeoSpatial.ExportVectorEnrichmentJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Use this operation to copy results of a Vector Enrichment job to an S3
-- location.
module Amazonka.SageMakerGeoSpatial.ExportVectorEnrichmentJob
  ( -- * Creating a Request
    ExportVectorEnrichmentJob (..),
    newExportVectorEnrichmentJob,

    -- * Request Lenses
    exportVectorEnrichmentJob_arn,
    exportVectorEnrichmentJob_executionRoleArn,
    exportVectorEnrichmentJob_outputConfig,

    -- * Destructuring the Response
    ExportVectorEnrichmentJobResponse (..),
    newExportVectorEnrichmentJobResponse,

    -- * Response Lenses
    exportVectorEnrichmentJobResponse_httpStatus,
    exportVectorEnrichmentJobResponse_arn,
    exportVectorEnrichmentJobResponse_creationTime,
    exportVectorEnrichmentJobResponse_executionRoleArn,
    exportVectorEnrichmentJobResponse_exportStatus,
    exportVectorEnrichmentJobResponse_outputConfig,
  )
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SageMakerGeoSpatial.Types

-- | /See:/ 'newExportVectorEnrichmentJob' smart constructor.
data ExportVectorEnrichmentJob = ExportVectorEnrichmentJob'
  { -- | The Amazon Resource Name (ARN) of the Vector Enrichment job.
    ExportVectorEnrichmentJob -> Text
arn :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the IAM rolewith permission to upload
    -- to the location in OutputConfig.
    ExportVectorEnrichmentJob -> Text
executionRoleArn :: Prelude.Text,
    -- | Output location information for exporting Vector Enrichment Job results.
    ExportVectorEnrichmentJob -> ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
  }
  deriving (ExportVectorEnrichmentJob -> ExportVectorEnrichmentJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJob -> Bool
$c/= :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJob -> Bool
== :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJob -> Bool
$c== :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJob -> Bool
Prelude.Eq, ReadPrec [ExportVectorEnrichmentJob]
ReadPrec ExportVectorEnrichmentJob
Int -> ReadS ExportVectorEnrichmentJob
ReadS [ExportVectorEnrichmentJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ExportVectorEnrichmentJob]
$creadListPrec :: ReadPrec [ExportVectorEnrichmentJob]
readPrec :: ReadPrec ExportVectorEnrichmentJob
$creadPrec :: ReadPrec ExportVectorEnrichmentJob
readList :: ReadS [ExportVectorEnrichmentJob]
$creadList :: ReadS [ExportVectorEnrichmentJob]
readsPrec :: Int -> ReadS ExportVectorEnrichmentJob
$creadsPrec :: Int -> ReadS ExportVectorEnrichmentJob
Prelude.Read, Int -> ExportVectorEnrichmentJob -> ShowS
[ExportVectorEnrichmentJob] -> ShowS
ExportVectorEnrichmentJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExportVectorEnrichmentJob] -> ShowS
$cshowList :: [ExportVectorEnrichmentJob] -> ShowS
show :: ExportVectorEnrichmentJob -> String
$cshow :: ExportVectorEnrichmentJob -> String
showsPrec :: Int -> ExportVectorEnrichmentJob -> ShowS
$cshowsPrec :: Int -> ExportVectorEnrichmentJob -> ShowS
Prelude.Show, forall x.
Rep ExportVectorEnrichmentJob x -> ExportVectorEnrichmentJob
forall x.
ExportVectorEnrichmentJob -> Rep ExportVectorEnrichmentJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ExportVectorEnrichmentJob x -> ExportVectorEnrichmentJob
$cfrom :: forall x.
ExportVectorEnrichmentJob -> Rep ExportVectorEnrichmentJob x
Prelude.Generic)

-- |
-- Create a value of 'ExportVectorEnrichmentJob' 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:
--
-- 'arn', 'exportVectorEnrichmentJob_arn' - The Amazon Resource Name (ARN) of the Vector Enrichment job.
--
-- 'executionRoleArn', 'exportVectorEnrichmentJob_executionRoleArn' - The Amazon Resource Name (ARN) of the IAM rolewith permission to upload
-- to the location in OutputConfig.
--
-- 'outputConfig', 'exportVectorEnrichmentJob_outputConfig' - Output location information for exporting Vector Enrichment Job results.
newExportVectorEnrichmentJob ::
  -- | 'arn'
  Prelude.Text ->
  -- | 'executionRoleArn'
  Prelude.Text ->
  -- | 'outputConfig'
  ExportVectorEnrichmentJobOutputConfig ->
  ExportVectorEnrichmentJob
newExportVectorEnrichmentJob :: Text
-> Text
-> ExportVectorEnrichmentJobOutputConfig
-> ExportVectorEnrichmentJob
newExportVectorEnrichmentJob
  Text
pArn_
  Text
pExecutionRoleArn_
  ExportVectorEnrichmentJobOutputConfig
pOutputConfig_ =
    ExportVectorEnrichmentJob'
      { $sel:arn:ExportVectorEnrichmentJob' :: Text
arn = Text
pArn_,
        $sel:executionRoleArn:ExportVectorEnrichmentJob' :: Text
executionRoleArn = Text
pExecutionRoleArn_,
        $sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJobOutputConfig
outputConfig = ExportVectorEnrichmentJobOutputConfig
pOutputConfig_
      }

-- | The Amazon Resource Name (ARN) of the Vector Enrichment job.
exportVectorEnrichmentJob_arn :: Lens.Lens' ExportVectorEnrichmentJob Prelude.Text
exportVectorEnrichmentJob_arn :: Lens' ExportVectorEnrichmentJob Text
exportVectorEnrichmentJob_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJob' {Text
arn :: Text
$sel:arn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
arn} -> Text
arn) (\s :: ExportVectorEnrichmentJob
s@ExportVectorEnrichmentJob' {} Text
a -> ExportVectorEnrichmentJob
s {$sel:arn:ExportVectorEnrichmentJob' :: Text
arn = Text
a} :: ExportVectorEnrichmentJob)

-- | The Amazon Resource Name (ARN) of the IAM rolewith permission to upload
-- to the location in OutputConfig.
exportVectorEnrichmentJob_executionRoleArn :: Lens.Lens' ExportVectorEnrichmentJob Prelude.Text
exportVectorEnrichmentJob_executionRoleArn :: Lens' ExportVectorEnrichmentJob Text
exportVectorEnrichmentJob_executionRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJob' {Text
executionRoleArn :: Text
$sel:executionRoleArn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
executionRoleArn} -> Text
executionRoleArn) (\s :: ExportVectorEnrichmentJob
s@ExportVectorEnrichmentJob' {} Text
a -> ExportVectorEnrichmentJob
s {$sel:executionRoleArn:ExportVectorEnrichmentJob' :: Text
executionRoleArn = Text
a} :: ExportVectorEnrichmentJob)

-- | Output location information for exporting Vector Enrichment Job results.
exportVectorEnrichmentJob_outputConfig :: Lens.Lens' ExportVectorEnrichmentJob ExportVectorEnrichmentJobOutputConfig
exportVectorEnrichmentJob_outputConfig :: Lens'
  ExportVectorEnrichmentJob ExportVectorEnrichmentJobOutputConfig
exportVectorEnrichmentJob_outputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJob' {ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
$sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJobOutputConfig
outputConfig} -> ExportVectorEnrichmentJobOutputConfig
outputConfig) (\s :: ExportVectorEnrichmentJob
s@ExportVectorEnrichmentJob' {} ExportVectorEnrichmentJobOutputConfig
a -> ExportVectorEnrichmentJob
s {$sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJobOutputConfig
outputConfig = ExportVectorEnrichmentJobOutputConfig
a} :: ExportVectorEnrichmentJob)

instance Core.AWSRequest ExportVectorEnrichmentJob where
  type
    AWSResponse ExportVectorEnrichmentJob =
      ExportVectorEnrichmentJobResponse
  request :: (Service -> Service)
-> ExportVectorEnrichmentJob -> Request ExportVectorEnrichmentJob
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ExportVectorEnrichmentJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ExportVectorEnrichmentJob)))
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 ->
          Int
-> Text
-> POSIX
-> Text
-> VectorEnrichmentJobExportStatus
-> ExportVectorEnrichmentJobOutputConfig
-> ExportVectorEnrichmentJobResponse
ExportVectorEnrichmentJobResponse'
            forall (f :: * -> *) a b. Functor 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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ExecutionRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String 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 a
Data..:> Key
"OutputConfig")
      )

instance Prelude.Hashable ExportVectorEnrichmentJob where
  hashWithSalt :: Int -> ExportVectorEnrichmentJob -> Int
hashWithSalt Int
_salt ExportVectorEnrichmentJob' {Text
ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
executionRoleArn :: Text
arn :: Text
$sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJobOutputConfig
$sel:executionRoleArn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
$sel:arn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
executionRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExportVectorEnrichmentJobOutputConfig
outputConfig

instance Prelude.NFData ExportVectorEnrichmentJob where
  rnf :: ExportVectorEnrichmentJob -> ()
rnf ExportVectorEnrichmentJob' {Text
ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
executionRoleArn :: Text
arn :: Text
$sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJobOutputConfig
$sel:executionRoleArn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
$sel:arn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
executionRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExportVectorEnrichmentJobOutputConfig
outputConfig

instance Data.ToHeaders ExportVectorEnrichmentJob where
  toHeaders :: ExportVectorEnrichmentJob -> 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.ToJSON ExportVectorEnrichmentJob where
  toJSON :: ExportVectorEnrichmentJob -> Value
toJSON ExportVectorEnrichmentJob' {Text
ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
executionRoleArn :: Text
arn :: Text
$sel:outputConfig:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> ExportVectorEnrichmentJobOutputConfig
$sel:executionRoleArn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
$sel:arn:ExportVectorEnrichmentJob' :: ExportVectorEnrichmentJob -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just (Key
"Arn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
arn),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ExecutionRoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
executionRoleArn),
            forall a. a -> Maybe a
Prelude.Just (Key
"OutputConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ExportVectorEnrichmentJobOutputConfig
outputConfig)
          ]
      )

instance Data.ToPath ExportVectorEnrichmentJob where
  toPath :: ExportVectorEnrichmentJob -> ByteString
toPath =
    forall a b. a -> b -> a
Prelude.const ByteString
"/export-vector-enrichment-jobs"

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

-- | /See:/ 'newExportVectorEnrichmentJobResponse' smart constructor.
data ExportVectorEnrichmentJobResponse = ExportVectorEnrichmentJobResponse'
  { -- | The response's http status code.
    ExportVectorEnrichmentJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the Vector Enrichment job being
    -- exported.
    ExportVectorEnrichmentJobResponse -> Text
arn :: Prelude.Text,
    -- | The creation time.
    ExportVectorEnrichmentJobResponse -> POSIX
creationTime :: Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the IAM role with permission to upload
    -- to the location in OutputConfig.
    ExportVectorEnrichmentJobResponse -> Text
executionRoleArn :: Prelude.Text,
    -- | The status of the results the Vector Enrichment job being exported.
    ExportVectorEnrichmentJobResponse
-> VectorEnrichmentJobExportStatus
exportStatus :: VectorEnrichmentJobExportStatus,
    -- | Output location information for exporting Vector Enrichment Job results.
    ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
  }
  deriving (ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobResponse -> Bool
$c/= :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobResponse -> Bool
== :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobResponse -> Bool
$c== :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobResponse -> Bool
Prelude.Eq, ReadPrec [ExportVectorEnrichmentJobResponse]
ReadPrec ExportVectorEnrichmentJobResponse
Int -> ReadS ExportVectorEnrichmentJobResponse
ReadS [ExportVectorEnrichmentJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ExportVectorEnrichmentJobResponse]
$creadListPrec :: ReadPrec [ExportVectorEnrichmentJobResponse]
readPrec :: ReadPrec ExportVectorEnrichmentJobResponse
$creadPrec :: ReadPrec ExportVectorEnrichmentJobResponse
readList :: ReadS [ExportVectorEnrichmentJobResponse]
$creadList :: ReadS [ExportVectorEnrichmentJobResponse]
readsPrec :: Int -> ReadS ExportVectorEnrichmentJobResponse
$creadsPrec :: Int -> ReadS ExportVectorEnrichmentJobResponse
Prelude.Read, Int -> ExportVectorEnrichmentJobResponse -> ShowS
[ExportVectorEnrichmentJobResponse] -> ShowS
ExportVectorEnrichmentJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ExportVectorEnrichmentJobResponse] -> ShowS
$cshowList :: [ExportVectorEnrichmentJobResponse] -> ShowS
show :: ExportVectorEnrichmentJobResponse -> String
$cshow :: ExportVectorEnrichmentJobResponse -> String
showsPrec :: Int -> ExportVectorEnrichmentJobResponse -> ShowS
$cshowsPrec :: Int -> ExportVectorEnrichmentJobResponse -> ShowS
Prelude.Show, forall x.
Rep ExportVectorEnrichmentJobResponse x
-> ExportVectorEnrichmentJobResponse
forall x.
ExportVectorEnrichmentJobResponse
-> Rep ExportVectorEnrichmentJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ExportVectorEnrichmentJobResponse x
-> ExportVectorEnrichmentJobResponse
$cfrom :: forall x.
ExportVectorEnrichmentJobResponse
-> Rep ExportVectorEnrichmentJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'ExportVectorEnrichmentJobResponse' 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:
--
-- 'httpStatus', 'exportVectorEnrichmentJobResponse_httpStatus' - The response's http status code.
--
-- 'arn', 'exportVectorEnrichmentJobResponse_arn' - The Amazon Resource Name (ARN) of the Vector Enrichment job being
-- exported.
--
-- 'creationTime', 'exportVectorEnrichmentJobResponse_creationTime' - The creation time.
--
-- 'executionRoleArn', 'exportVectorEnrichmentJobResponse_executionRoleArn' - The Amazon Resource Name (ARN) of the IAM role with permission to upload
-- to the location in OutputConfig.
--
-- 'exportStatus', 'exportVectorEnrichmentJobResponse_exportStatus' - The status of the results the Vector Enrichment job being exported.
--
-- 'outputConfig', 'exportVectorEnrichmentJobResponse_outputConfig' - Output location information for exporting Vector Enrichment Job results.
newExportVectorEnrichmentJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'executionRoleArn'
  Prelude.Text ->
  -- | 'exportStatus'
  VectorEnrichmentJobExportStatus ->
  -- | 'outputConfig'
  ExportVectorEnrichmentJobOutputConfig ->
  ExportVectorEnrichmentJobResponse
newExportVectorEnrichmentJobResponse :: Int
-> Text
-> UTCTime
-> Text
-> VectorEnrichmentJobExportStatus
-> ExportVectorEnrichmentJobOutputConfig
-> ExportVectorEnrichmentJobResponse
newExportVectorEnrichmentJobResponse
  Int
pHttpStatus_
  Text
pArn_
  UTCTime
pCreationTime_
  Text
pExecutionRoleArn_
  VectorEnrichmentJobExportStatus
pExportStatus_
  ExportVectorEnrichmentJobOutputConfig
pOutputConfig_ =
    ExportVectorEnrichmentJobResponse'
      { $sel:httpStatus:ExportVectorEnrichmentJobResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:arn:ExportVectorEnrichmentJobResponse' :: Text
arn = Text
pArn_,
        $sel:creationTime:ExportVectorEnrichmentJobResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:executionRoleArn:ExportVectorEnrichmentJobResponse' :: Text
executionRoleArn = Text
pExecutionRoleArn_,
        $sel:exportStatus:ExportVectorEnrichmentJobResponse' :: VectorEnrichmentJobExportStatus
exportStatus = VectorEnrichmentJobExportStatus
pExportStatus_,
        $sel:outputConfig:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobOutputConfig
outputConfig = ExportVectorEnrichmentJobOutputConfig
pOutputConfig_
      }

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

-- | The Amazon Resource Name (ARN) of the Vector Enrichment job being
-- exported.
exportVectorEnrichmentJobResponse_arn :: Lens.Lens' ExportVectorEnrichmentJobResponse Prelude.Text
exportVectorEnrichmentJobResponse_arn :: Lens' ExportVectorEnrichmentJobResponse Text
exportVectorEnrichmentJobResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJobResponse' {Text
arn :: Text
$sel:arn:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> Text
arn} -> Text
arn) (\s :: ExportVectorEnrichmentJobResponse
s@ExportVectorEnrichmentJobResponse' {} Text
a -> ExportVectorEnrichmentJobResponse
s {$sel:arn:ExportVectorEnrichmentJobResponse' :: Text
arn = Text
a} :: ExportVectorEnrichmentJobResponse)

-- | The creation time.
exportVectorEnrichmentJobResponse_creationTime :: Lens.Lens' ExportVectorEnrichmentJobResponse Prelude.UTCTime
exportVectorEnrichmentJobResponse_creationTime :: Lens' ExportVectorEnrichmentJobResponse UTCTime
exportVectorEnrichmentJobResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJobResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: ExportVectorEnrichmentJobResponse
s@ExportVectorEnrichmentJobResponse' {} POSIX
a -> ExportVectorEnrichmentJobResponse
s {$sel:creationTime:ExportVectorEnrichmentJobResponse' :: POSIX
creationTime = POSIX
a} :: ExportVectorEnrichmentJobResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the IAM role with permission to upload
-- to the location in OutputConfig.
exportVectorEnrichmentJobResponse_executionRoleArn :: Lens.Lens' ExportVectorEnrichmentJobResponse Prelude.Text
exportVectorEnrichmentJobResponse_executionRoleArn :: Lens' ExportVectorEnrichmentJobResponse Text
exportVectorEnrichmentJobResponse_executionRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJobResponse' {Text
executionRoleArn :: Text
$sel:executionRoleArn:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> Text
executionRoleArn} -> Text
executionRoleArn) (\s :: ExportVectorEnrichmentJobResponse
s@ExportVectorEnrichmentJobResponse' {} Text
a -> ExportVectorEnrichmentJobResponse
s {$sel:executionRoleArn:ExportVectorEnrichmentJobResponse' :: Text
executionRoleArn = Text
a} :: ExportVectorEnrichmentJobResponse)

-- | The status of the results the Vector Enrichment job being exported.
exportVectorEnrichmentJobResponse_exportStatus :: Lens.Lens' ExportVectorEnrichmentJobResponse VectorEnrichmentJobExportStatus
exportVectorEnrichmentJobResponse_exportStatus :: Lens'
  ExportVectorEnrichmentJobResponse VectorEnrichmentJobExportStatus
exportVectorEnrichmentJobResponse_exportStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJobResponse' {VectorEnrichmentJobExportStatus
exportStatus :: VectorEnrichmentJobExportStatus
$sel:exportStatus:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse
-> VectorEnrichmentJobExportStatus
exportStatus} -> VectorEnrichmentJobExportStatus
exportStatus) (\s :: ExportVectorEnrichmentJobResponse
s@ExportVectorEnrichmentJobResponse' {} VectorEnrichmentJobExportStatus
a -> ExportVectorEnrichmentJobResponse
s {$sel:exportStatus:ExportVectorEnrichmentJobResponse' :: VectorEnrichmentJobExportStatus
exportStatus = VectorEnrichmentJobExportStatus
a} :: ExportVectorEnrichmentJobResponse)

-- | Output location information for exporting Vector Enrichment Job results.
exportVectorEnrichmentJobResponse_outputConfig :: Lens.Lens' ExportVectorEnrichmentJobResponse ExportVectorEnrichmentJobOutputConfig
exportVectorEnrichmentJobResponse_outputConfig :: Lens'
  ExportVectorEnrichmentJobResponse
  ExportVectorEnrichmentJobOutputConfig
exportVectorEnrichmentJobResponse_outputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ExportVectorEnrichmentJobResponse' {ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
$sel:outputConfig:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobOutputConfig
outputConfig} -> ExportVectorEnrichmentJobOutputConfig
outputConfig) (\s :: ExportVectorEnrichmentJobResponse
s@ExportVectorEnrichmentJobResponse' {} ExportVectorEnrichmentJobOutputConfig
a -> ExportVectorEnrichmentJobResponse
s {$sel:outputConfig:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobOutputConfig
outputConfig = ExportVectorEnrichmentJobOutputConfig
a} :: ExportVectorEnrichmentJobResponse)

instance
  Prelude.NFData
    ExportVectorEnrichmentJobResponse
  where
  rnf :: ExportVectorEnrichmentJobResponse -> ()
rnf ExportVectorEnrichmentJobResponse' {Int
Text
POSIX
VectorEnrichmentJobExportStatus
ExportVectorEnrichmentJobOutputConfig
outputConfig :: ExportVectorEnrichmentJobOutputConfig
exportStatus :: VectorEnrichmentJobExportStatus
executionRoleArn :: Text
creationTime :: POSIX
arn :: Text
httpStatus :: Int
$sel:outputConfig:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse
-> ExportVectorEnrichmentJobOutputConfig
$sel:exportStatus:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse
-> VectorEnrichmentJobExportStatus
$sel:executionRoleArn:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> Text
$sel:creationTime:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> POSIX
$sel:arn:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> Text
$sel:httpStatus:ExportVectorEnrichmentJobResponse' :: ExportVectorEnrichmentJobResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
executionRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf VectorEnrichmentJobExportStatus
exportStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExportVectorEnrichmentJobOutputConfig
outputConfig