packages feed

amazonka-sagemaker-geospatial-2.0: gen/Amazonka/SageMakerGeoSpatial/ExportVectorEnrichmentJob.hs

{-# 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.
    arn :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the IAM rolewith permission to upload
    -- to the location in OutputConfig.
    executionRoleArn :: Prelude.Text,
    -- | Output location information for exporting Vector Enrichment Job results.
    outputConfig :: ExportVectorEnrichmentJobOutputConfig
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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
  pArn_
  pExecutionRoleArn_
  pOutputConfig_ =
    ExportVectorEnrichmentJob'
      { arn = pArn_,
        executionRoleArn = pExecutionRoleArn_,
        outputConfig = pOutputConfig_
      }

-- | The Amazon Resource Name (ARN) of the Vector Enrichment job.
exportVectorEnrichmentJob_arn :: Lens.Lens' ExportVectorEnrichmentJob Prelude.Text
exportVectorEnrichmentJob_arn = Lens.lens (\ExportVectorEnrichmentJob' {arn} -> arn) (\s@ExportVectorEnrichmentJob' {} a -> s {arn = 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.lens (\ExportVectorEnrichmentJob' {executionRoleArn} -> executionRoleArn) (\s@ExportVectorEnrichmentJob' {} a -> s {executionRoleArn = a} :: ExportVectorEnrichmentJob)

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

instance Core.AWSRequest ExportVectorEnrichmentJob where
  type
    AWSResponse ExportVectorEnrichmentJob =
      ExportVectorEnrichmentJobResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          ExportVectorEnrichmentJobResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
            Prelude.<*> (x Data..:> "Arn")
            Prelude.<*> (x Data..:> "CreationTime")
            Prelude.<*> (x Data..:> "ExecutionRoleArn")
            Prelude.<*> (x Data..:> "ExportStatus")
            Prelude.<*> (x Data..:> "OutputConfig")
      )

instance Prelude.Hashable ExportVectorEnrichmentJob where
  hashWithSalt _salt ExportVectorEnrichmentJob' {..} =
    _salt
      `Prelude.hashWithSalt` arn
      `Prelude.hashWithSalt` executionRoleArn
      `Prelude.hashWithSalt` outputConfig

instance Prelude.NFData ExportVectorEnrichmentJob where
  rnf ExportVectorEnrichmentJob' {..} =
    Prelude.rnf arn
      `Prelude.seq` Prelude.rnf executionRoleArn
      `Prelude.seq` Prelude.rnf outputConfig

instance Data.ToHeaders ExportVectorEnrichmentJob where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON ExportVectorEnrichmentJob where
  toJSON ExportVectorEnrichmentJob' {..} =
    Data.object
      ( Prelude.catMaybes
          [ Prelude.Just ("Arn" Data..= arn),
            Prelude.Just
              ("ExecutionRoleArn" Data..= executionRoleArn),
            Prelude.Just ("OutputConfig" Data..= outputConfig)
          ]
      )

instance Data.ToPath ExportVectorEnrichmentJob where
  toPath =
    Prelude.const "/export-vector-enrichment-jobs"

instance Data.ToQuery ExportVectorEnrichmentJob where
  toQuery = Prelude.const Prelude.mempty

-- | /See:/ 'newExportVectorEnrichmentJobResponse' smart constructor.
data ExportVectorEnrichmentJobResponse = ExportVectorEnrichmentJobResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the Vector Enrichment job being
    -- exported.
    arn :: Prelude.Text,
    -- | The creation time.
    creationTime :: Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the IAM role with permission to upload
    -- to the location in OutputConfig.
    executionRoleArn :: Prelude.Text,
    -- | The status of the results the Vector Enrichment job being exported.
    exportStatus :: VectorEnrichmentJobExportStatus,
    -- | Output location information for exporting Vector Enrichment Job results.
    outputConfig :: ExportVectorEnrichmentJobOutputConfig
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, 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
  pHttpStatus_
  pArn_
  pCreationTime_
  pExecutionRoleArn_
  pExportStatus_
  pOutputConfig_ =
    ExportVectorEnrichmentJobResponse'
      { httpStatus =
          pHttpStatus_,
        arn = pArn_,
        creationTime =
          Data._Time Lens.# pCreationTime_,
        executionRoleArn = pExecutionRoleArn_,
        exportStatus = pExportStatus_,
        outputConfig = pOutputConfig_
      }

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

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

-- | The creation time.
exportVectorEnrichmentJobResponse_creationTime :: Lens.Lens' ExportVectorEnrichmentJobResponse Prelude.UTCTime
exportVectorEnrichmentJobResponse_creationTime = Lens.lens (\ExportVectorEnrichmentJobResponse' {creationTime} -> creationTime) (\s@ExportVectorEnrichmentJobResponse' {} a -> s {creationTime = a} :: ExportVectorEnrichmentJobResponse) Prelude.. 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.lens (\ExportVectorEnrichmentJobResponse' {executionRoleArn} -> executionRoleArn) (\s@ExportVectorEnrichmentJobResponse' {} a -> s {executionRoleArn = a} :: ExportVectorEnrichmentJobResponse)

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

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

instance
  Prelude.NFData
    ExportVectorEnrichmentJobResponse
  where
  rnf ExportVectorEnrichmentJobResponse' {..} =
    Prelude.rnf httpStatus
      `Prelude.seq` Prelude.rnf arn
      `Prelude.seq` Prelude.rnf creationTime
      `Prelude.seq` Prelude.rnf executionRoleArn
      `Prelude.seq` Prelude.rnf exportStatus
      `Prelude.seq` Prelude.rnf outputConfig