{-# 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.GetEarthObservationJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Get the details for a previously initiated Earth Observation job.
module Amazonka.SageMakerGeoSpatial.GetEarthObservationJob
  ( -- * Creating a Request
    GetEarthObservationJob (..),
    newGetEarthObservationJob,

    -- * Request Lenses
    getEarthObservationJob_arn,

    -- * Destructuring the Response
    GetEarthObservationJobResponse (..),
    newGetEarthObservationJobResponse,

    -- * Response Lenses
    getEarthObservationJobResponse_errorDetails,
    getEarthObservationJobResponse_executionRoleArn,
    getEarthObservationJobResponse_exportErrorDetails,
    getEarthObservationJobResponse_exportStatus,
    getEarthObservationJobResponse_kmsKeyId,
    getEarthObservationJobResponse_outputBands,
    getEarthObservationJobResponse_tags,
    getEarthObservationJobResponse_httpStatus,
    getEarthObservationJobResponse_arn,
    getEarthObservationJobResponse_creationTime,
    getEarthObservationJobResponse_durationInSeconds,
    getEarthObservationJobResponse_inputConfig,
    getEarthObservationJobResponse_jobConfig,
    getEarthObservationJobResponse_name,
    getEarthObservationJobResponse_status,
  )
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:/ 'newGetEarthObservationJob' smart constructor.
data GetEarthObservationJob = GetEarthObservationJob'
  { -- | The Amazon Resource Name (ARN) of the Earth Observation job.
    GetEarthObservationJob -> Text
arn :: Prelude.Text
  }
  deriving (GetEarthObservationJob -> GetEarthObservationJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetEarthObservationJob -> GetEarthObservationJob -> Bool
$c/= :: GetEarthObservationJob -> GetEarthObservationJob -> Bool
== :: GetEarthObservationJob -> GetEarthObservationJob -> Bool
$c== :: GetEarthObservationJob -> GetEarthObservationJob -> Bool
Prelude.Eq, ReadPrec [GetEarthObservationJob]
ReadPrec GetEarthObservationJob
Int -> ReadS GetEarthObservationJob
ReadS [GetEarthObservationJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetEarthObservationJob]
$creadListPrec :: ReadPrec [GetEarthObservationJob]
readPrec :: ReadPrec GetEarthObservationJob
$creadPrec :: ReadPrec GetEarthObservationJob
readList :: ReadS [GetEarthObservationJob]
$creadList :: ReadS [GetEarthObservationJob]
readsPrec :: Int -> ReadS GetEarthObservationJob
$creadsPrec :: Int -> ReadS GetEarthObservationJob
Prelude.Read, Int -> GetEarthObservationJob -> ShowS
[GetEarthObservationJob] -> ShowS
GetEarthObservationJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetEarthObservationJob] -> ShowS
$cshowList :: [GetEarthObservationJob] -> ShowS
show :: GetEarthObservationJob -> String
$cshow :: GetEarthObservationJob -> String
showsPrec :: Int -> GetEarthObservationJob -> ShowS
$cshowsPrec :: Int -> GetEarthObservationJob -> ShowS
Prelude.Show, forall x. Rep GetEarthObservationJob x -> GetEarthObservationJob
forall x. GetEarthObservationJob -> Rep GetEarthObservationJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetEarthObservationJob x -> GetEarthObservationJob
$cfrom :: forall x. GetEarthObservationJob -> Rep GetEarthObservationJob x
Prelude.Generic)

-- |
-- Create a value of 'GetEarthObservationJob' 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', 'getEarthObservationJob_arn' - The Amazon Resource Name (ARN) of the Earth Observation job.
newGetEarthObservationJob ::
  -- | 'arn'
  Prelude.Text ->
  GetEarthObservationJob
newGetEarthObservationJob :: Text -> GetEarthObservationJob
newGetEarthObservationJob Text
pArn_ =
  GetEarthObservationJob' {$sel:arn:GetEarthObservationJob' :: Text
arn = Text
pArn_}

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

instance Core.AWSRequest GetEarthObservationJob where
  type
    AWSResponse GetEarthObservationJob =
      GetEarthObservationJobResponse
  request :: (Service -> Service)
-> GetEarthObservationJob -> Request GetEarthObservationJob
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 GetEarthObservationJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetEarthObservationJob)))
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 EarthObservationJobErrorDetails
-> Maybe Text
-> Maybe ExportErrorDetails
-> Maybe EarthObservationJobExportStatus
-> Maybe Text
-> Maybe [OutputBand]
-> Maybe (HashMap Text Text)
-> Int
-> Text
-> POSIX
-> Int
-> InputConfigOutput
-> JobConfigInput
-> Text
-> EarthObservationJobStatus
-> GetEarthObservationJobResponse
GetEarthObservationJobResponse'
            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
"ErrorDetails")
            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
"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 (Maybe a)
Data..?> Key
"ExportErrorDetails")
            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
"KmsKeyId")
            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
"OutputBands" 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
"Tags" 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.<*> (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
"DurationInSeconds")
            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
"InputConfig")
            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
"JobConfig")
            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
"Name")
            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
"Status")
      )

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

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

instance Data.ToHeaders GetEarthObservationJob where
  toHeaders :: GetEarthObservationJob -> 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 GetEarthObservationJob where
  toPath :: GetEarthObservationJob -> ByteString
toPath GetEarthObservationJob' {Text
arn :: Text
$sel:arn:GetEarthObservationJob' :: GetEarthObservationJob -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/earth-observation-jobs/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
arn]

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

-- | /See:/ 'newGetEarthObservationJobResponse' smart constructor.
data GetEarthObservationJobResponse = GetEarthObservationJobResponse'
  { -- | Details about the errors generated during the Earth Observation job.
    GetEarthObservationJobResponse
-> Maybe EarthObservationJobErrorDetails
errorDetails :: Prelude.Maybe EarthObservationJobErrorDetails,
    -- | The Amazon Resource Name (ARN) of the IAM role that you specified for
    -- the job.
    GetEarthObservationJobResponse -> Maybe Text
executionRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Details about the errors generated during ExportEarthObservationJob.
    GetEarthObservationJobResponse -> Maybe ExportErrorDetails
exportErrorDetails :: Prelude.Maybe ExportErrorDetails,
    -- | The status of the Earth Observation job.
    GetEarthObservationJobResponse
-> Maybe EarthObservationJobExportStatus
exportStatus :: Prelude.Maybe EarthObservationJobExportStatus,
    -- | The Amazon Key Management Service (KMS) key ID for server-side
    -- encryption.
    GetEarthObservationJobResponse -> Maybe Text
kmsKeyId :: Prelude.Maybe Prelude.Text,
    GetEarthObservationJobResponse -> Maybe [OutputBand]
outputBands :: Prelude.Maybe [OutputBand],
    -- | Each tag consists of a key and a value.
    GetEarthObservationJobResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    GetEarthObservationJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The Amazon Resource Name (ARN) of the Earth Observation job.
    GetEarthObservationJobResponse -> Text
arn :: Prelude.Text,
    -- | The creation time of the initiated Earth Observation job.
    GetEarthObservationJobResponse -> POSIX
creationTime :: Data.POSIX,
    -- | The duration of Earth Observation job, in seconds.
    GetEarthObservationJobResponse -> Int
durationInSeconds :: Prelude.Int,
    -- | Input data for the Earth Observation job.
    GetEarthObservationJobResponse -> InputConfigOutput
inputConfig :: InputConfigOutput,
    -- | An object containing information about the job configuration.
    GetEarthObservationJobResponse -> JobConfigInput
jobConfig :: JobConfigInput,
    -- | The name of the Earth Observation job.
    GetEarthObservationJobResponse -> Text
name :: Prelude.Text,
    -- | The status of a previously initiated Earth Observation job.
    GetEarthObservationJobResponse -> EarthObservationJobStatus
status :: EarthObservationJobStatus
  }
  deriving (GetEarthObservationJobResponse
-> GetEarthObservationJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetEarthObservationJobResponse
-> GetEarthObservationJobResponse -> Bool
$c/= :: GetEarthObservationJobResponse
-> GetEarthObservationJobResponse -> Bool
== :: GetEarthObservationJobResponse
-> GetEarthObservationJobResponse -> Bool
$c== :: GetEarthObservationJobResponse
-> GetEarthObservationJobResponse -> Bool
Prelude.Eq, Int -> GetEarthObservationJobResponse -> ShowS
[GetEarthObservationJobResponse] -> ShowS
GetEarthObservationJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetEarthObservationJobResponse] -> ShowS
$cshowList :: [GetEarthObservationJobResponse] -> ShowS
show :: GetEarthObservationJobResponse -> String
$cshow :: GetEarthObservationJobResponse -> String
showsPrec :: Int -> GetEarthObservationJobResponse -> ShowS
$cshowsPrec :: Int -> GetEarthObservationJobResponse -> ShowS
Prelude.Show, forall x.
Rep GetEarthObservationJobResponse x
-> GetEarthObservationJobResponse
forall x.
GetEarthObservationJobResponse
-> Rep GetEarthObservationJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetEarthObservationJobResponse x
-> GetEarthObservationJobResponse
$cfrom :: forall x.
GetEarthObservationJobResponse
-> Rep GetEarthObservationJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetEarthObservationJobResponse' 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:
--
-- 'errorDetails', 'getEarthObservationJobResponse_errorDetails' - Details about the errors generated during the Earth Observation job.
--
-- 'executionRoleArn', 'getEarthObservationJobResponse_executionRoleArn' - The Amazon Resource Name (ARN) of the IAM role that you specified for
-- the job.
--
-- 'exportErrorDetails', 'getEarthObservationJobResponse_exportErrorDetails' - Details about the errors generated during ExportEarthObservationJob.
--
-- 'exportStatus', 'getEarthObservationJobResponse_exportStatus' - The status of the Earth Observation job.
--
-- 'kmsKeyId', 'getEarthObservationJobResponse_kmsKeyId' - The Amazon Key Management Service (KMS) key ID for server-side
-- encryption.
--
-- 'outputBands', 'getEarthObservationJobResponse_outputBands' -
--
-- 'tags', 'getEarthObservationJobResponse_tags' - Each tag consists of a key and a value.
--
-- 'httpStatus', 'getEarthObservationJobResponse_httpStatus' - The response's http status code.
--
-- 'arn', 'getEarthObservationJobResponse_arn' - The Amazon Resource Name (ARN) of the Earth Observation job.
--
-- 'creationTime', 'getEarthObservationJobResponse_creationTime' - The creation time of the initiated Earth Observation job.
--
-- 'durationInSeconds', 'getEarthObservationJobResponse_durationInSeconds' - The duration of Earth Observation job, in seconds.
--
-- 'inputConfig', 'getEarthObservationJobResponse_inputConfig' - Input data for the Earth Observation job.
--
-- 'jobConfig', 'getEarthObservationJobResponse_jobConfig' - An object containing information about the job configuration.
--
-- 'name', 'getEarthObservationJobResponse_name' - The name of the Earth Observation job.
--
-- 'status', 'getEarthObservationJobResponse_status' - The status of a previously initiated Earth Observation job.
newGetEarthObservationJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'arn'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'durationInSeconds'
  Prelude.Int ->
  -- | 'inputConfig'
  InputConfigOutput ->
  -- | 'jobConfig'
  JobConfigInput ->
  -- | 'name'
  Prelude.Text ->
  -- | 'status'
  EarthObservationJobStatus ->
  GetEarthObservationJobResponse
newGetEarthObservationJobResponse :: Int
-> Text
-> UTCTime
-> Int
-> InputConfigOutput
-> JobConfigInput
-> Text
-> EarthObservationJobStatus
-> GetEarthObservationJobResponse
newGetEarthObservationJobResponse
  Int
pHttpStatus_
  Text
pArn_
  UTCTime
pCreationTime_
  Int
pDurationInSeconds_
  InputConfigOutput
pInputConfig_
  JobConfigInput
pJobConfig_
  Text
pName_
  EarthObservationJobStatus
pStatus_ =
    GetEarthObservationJobResponse'
      { $sel:errorDetails:GetEarthObservationJobResponse' :: Maybe EarthObservationJobErrorDetails
errorDetails =
          forall a. Maybe a
Prelude.Nothing,
        $sel:executionRoleArn:GetEarthObservationJobResponse' :: Maybe Text
executionRoleArn = forall a. Maybe a
Prelude.Nothing,
        $sel:exportErrorDetails:GetEarthObservationJobResponse' :: Maybe ExportErrorDetails
exportErrorDetails = forall a. Maybe a
Prelude.Nothing,
        $sel:exportStatus:GetEarthObservationJobResponse' :: Maybe EarthObservationJobExportStatus
exportStatus = forall a. Maybe a
Prelude.Nothing,
        $sel:kmsKeyId:GetEarthObservationJobResponse' :: Maybe Text
kmsKeyId = forall a. Maybe a
Prelude.Nothing,
        $sel:outputBands:GetEarthObservationJobResponse' :: Maybe [OutputBand]
outputBands = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:GetEarthObservationJobResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:GetEarthObservationJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:arn:GetEarthObservationJobResponse' :: Text
arn = Text
pArn_,
        $sel:creationTime:GetEarthObservationJobResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:durationInSeconds:GetEarthObservationJobResponse' :: Int
durationInSeconds = Int
pDurationInSeconds_,
        $sel:inputConfig:GetEarthObservationJobResponse' :: InputConfigOutput
inputConfig = InputConfigOutput
pInputConfig_,
        $sel:jobConfig:GetEarthObservationJobResponse' :: JobConfigInput
jobConfig = JobConfigInput
pJobConfig_,
        $sel:name:GetEarthObservationJobResponse' :: Text
name = Text
pName_,
        $sel:status:GetEarthObservationJobResponse' :: EarthObservationJobStatus
status = EarthObservationJobStatus
pStatus_
      }

-- | Details about the errors generated during the Earth Observation job.
getEarthObservationJobResponse_errorDetails :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe EarthObservationJobErrorDetails)
getEarthObservationJobResponse_errorDetails :: Lens'
  GetEarthObservationJobResponse
  (Maybe EarthObservationJobErrorDetails)
getEarthObservationJobResponse_errorDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe EarthObservationJobErrorDetails
errorDetails :: Maybe EarthObservationJobErrorDetails
$sel:errorDetails:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse
-> Maybe EarthObservationJobErrorDetails
errorDetails} -> Maybe EarthObservationJobErrorDetails
errorDetails) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe EarthObservationJobErrorDetails
a -> GetEarthObservationJobResponse
s {$sel:errorDetails:GetEarthObservationJobResponse' :: Maybe EarthObservationJobErrorDetails
errorDetails = Maybe EarthObservationJobErrorDetails
a} :: GetEarthObservationJobResponse)

-- | The Amazon Resource Name (ARN) of the IAM role that you specified for
-- the job.
getEarthObservationJobResponse_executionRoleArn :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe Prelude.Text)
getEarthObservationJobResponse_executionRoleArn :: Lens' GetEarthObservationJobResponse (Maybe Text)
getEarthObservationJobResponse_executionRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe Text
executionRoleArn :: Maybe Text
$sel:executionRoleArn:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe Text
executionRoleArn} -> Maybe Text
executionRoleArn) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe Text
a -> GetEarthObservationJobResponse
s {$sel:executionRoleArn:GetEarthObservationJobResponse' :: Maybe Text
executionRoleArn = Maybe Text
a} :: GetEarthObservationJobResponse)

-- | Details about the errors generated during ExportEarthObservationJob.
getEarthObservationJobResponse_exportErrorDetails :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe ExportErrorDetails)
getEarthObservationJobResponse_exportErrorDetails :: Lens' GetEarthObservationJobResponse (Maybe ExportErrorDetails)
getEarthObservationJobResponse_exportErrorDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe ExportErrorDetails
exportErrorDetails :: Maybe ExportErrorDetails
$sel:exportErrorDetails:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe ExportErrorDetails
exportErrorDetails} -> Maybe ExportErrorDetails
exportErrorDetails) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe ExportErrorDetails
a -> GetEarthObservationJobResponse
s {$sel:exportErrorDetails:GetEarthObservationJobResponse' :: Maybe ExportErrorDetails
exportErrorDetails = Maybe ExportErrorDetails
a} :: GetEarthObservationJobResponse)

-- | The status of the Earth Observation job.
getEarthObservationJobResponse_exportStatus :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe EarthObservationJobExportStatus)
getEarthObservationJobResponse_exportStatus :: Lens'
  GetEarthObservationJobResponse
  (Maybe EarthObservationJobExportStatus)
getEarthObservationJobResponse_exportStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe EarthObservationJobExportStatus
exportStatus :: Maybe EarthObservationJobExportStatus
$sel:exportStatus:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse
-> Maybe EarthObservationJobExportStatus
exportStatus} -> Maybe EarthObservationJobExportStatus
exportStatus) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe EarthObservationJobExportStatus
a -> GetEarthObservationJobResponse
s {$sel:exportStatus:GetEarthObservationJobResponse' :: Maybe EarthObservationJobExportStatus
exportStatus = Maybe EarthObservationJobExportStatus
a} :: GetEarthObservationJobResponse)

-- | The Amazon Key Management Service (KMS) key ID for server-side
-- encryption.
getEarthObservationJobResponse_kmsKeyId :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe Prelude.Text)
getEarthObservationJobResponse_kmsKeyId :: Lens' GetEarthObservationJobResponse (Maybe Text)
getEarthObservationJobResponse_kmsKeyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe Text
kmsKeyId :: Maybe Text
$sel:kmsKeyId:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe Text
kmsKeyId} -> Maybe Text
kmsKeyId) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe Text
a -> GetEarthObservationJobResponse
s {$sel:kmsKeyId:GetEarthObservationJobResponse' :: Maybe Text
kmsKeyId = Maybe Text
a} :: GetEarthObservationJobResponse)

getEarthObservationJobResponse_outputBands :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe [OutputBand])
getEarthObservationJobResponse_outputBands :: Lens' GetEarthObservationJobResponse (Maybe [OutputBand])
getEarthObservationJobResponse_outputBands = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe [OutputBand]
outputBands :: Maybe [OutputBand]
$sel:outputBands:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe [OutputBand]
outputBands} -> Maybe [OutputBand]
outputBands) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe [OutputBand]
a -> GetEarthObservationJobResponse
s {$sel:outputBands:GetEarthObservationJobResponse' :: Maybe [OutputBand]
outputBands = Maybe [OutputBand]
a} :: GetEarthObservationJobResponse) 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

-- | Each tag consists of a key and a value.
getEarthObservationJobResponse_tags :: Lens.Lens' GetEarthObservationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
getEarthObservationJobResponse_tags :: Lens' GetEarthObservationJobResponse (Maybe (HashMap Text Text))
getEarthObservationJobResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Maybe (HashMap Text Text)
a -> GetEarthObservationJobResponse
s {$sel:tags:GetEarthObservationJobResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: GetEarthObservationJobResponse) 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 response's http status code.
getEarthObservationJobResponse_httpStatus :: Lens.Lens' GetEarthObservationJobResponse Prelude.Int
getEarthObservationJobResponse_httpStatus :: Lens' GetEarthObservationJobResponse Int
getEarthObservationJobResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Int
a -> GetEarthObservationJobResponse
s {$sel:httpStatus:GetEarthObservationJobResponse' :: Int
httpStatus = Int
a} :: GetEarthObservationJobResponse)

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

-- | The creation time of the initiated Earth Observation job.
getEarthObservationJobResponse_creationTime :: Lens.Lens' GetEarthObservationJobResponse Prelude.UTCTime
getEarthObservationJobResponse_creationTime :: Lens' GetEarthObservationJobResponse UTCTime
getEarthObservationJobResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} POSIX
a -> GetEarthObservationJobResponse
s {$sel:creationTime:GetEarthObservationJobResponse' :: POSIX
creationTime = POSIX
a} :: GetEarthObservationJobResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The duration of Earth Observation job, in seconds.
getEarthObservationJobResponse_durationInSeconds :: Lens.Lens' GetEarthObservationJobResponse Prelude.Int
getEarthObservationJobResponse_durationInSeconds :: Lens' GetEarthObservationJobResponse Int
getEarthObservationJobResponse_durationInSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Int
durationInSeconds :: Int
$sel:durationInSeconds:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Int
durationInSeconds} -> Int
durationInSeconds) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Int
a -> GetEarthObservationJobResponse
s {$sel:durationInSeconds:GetEarthObservationJobResponse' :: Int
durationInSeconds = Int
a} :: GetEarthObservationJobResponse)

-- | Input data for the Earth Observation job.
getEarthObservationJobResponse_inputConfig :: Lens.Lens' GetEarthObservationJobResponse InputConfigOutput
getEarthObservationJobResponse_inputConfig :: Lens' GetEarthObservationJobResponse InputConfigOutput
getEarthObservationJobResponse_inputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {InputConfigOutput
inputConfig :: InputConfigOutput
$sel:inputConfig:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> InputConfigOutput
inputConfig} -> InputConfigOutput
inputConfig) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} InputConfigOutput
a -> GetEarthObservationJobResponse
s {$sel:inputConfig:GetEarthObservationJobResponse' :: InputConfigOutput
inputConfig = InputConfigOutput
a} :: GetEarthObservationJobResponse)

-- | An object containing information about the job configuration.
getEarthObservationJobResponse_jobConfig :: Lens.Lens' GetEarthObservationJobResponse JobConfigInput
getEarthObservationJobResponse_jobConfig :: Lens' GetEarthObservationJobResponse JobConfigInput
getEarthObservationJobResponse_jobConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {JobConfigInput
jobConfig :: JobConfigInput
$sel:jobConfig:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> JobConfigInput
jobConfig} -> JobConfigInput
jobConfig) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} JobConfigInput
a -> GetEarthObservationJobResponse
s {$sel:jobConfig:GetEarthObservationJobResponse' :: JobConfigInput
jobConfig = JobConfigInput
a} :: GetEarthObservationJobResponse)

-- | The name of the Earth Observation job.
getEarthObservationJobResponse_name :: Lens.Lens' GetEarthObservationJobResponse Prelude.Text
getEarthObservationJobResponse_name :: Lens' GetEarthObservationJobResponse Text
getEarthObservationJobResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {Text
name :: Text
$sel:name:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Text
name} -> Text
name) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} Text
a -> GetEarthObservationJobResponse
s {$sel:name:GetEarthObservationJobResponse' :: Text
name = Text
a} :: GetEarthObservationJobResponse)

-- | The status of a previously initiated Earth Observation job.
getEarthObservationJobResponse_status :: Lens.Lens' GetEarthObservationJobResponse EarthObservationJobStatus
getEarthObservationJobResponse_status :: Lens' GetEarthObservationJobResponse EarthObservationJobStatus
getEarthObservationJobResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetEarthObservationJobResponse' {EarthObservationJobStatus
status :: EarthObservationJobStatus
$sel:status:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> EarthObservationJobStatus
status} -> EarthObservationJobStatus
status) (\s :: GetEarthObservationJobResponse
s@GetEarthObservationJobResponse' {} EarthObservationJobStatus
a -> GetEarthObservationJobResponse
s {$sel:status:GetEarthObservationJobResponse' :: EarthObservationJobStatus
status = EarthObservationJobStatus
a} :: GetEarthObservationJobResponse)

instance
  Prelude.NFData
    GetEarthObservationJobResponse
  where
  rnf :: GetEarthObservationJobResponse -> ()
rnf GetEarthObservationJobResponse' {Int
Maybe [OutputBand]
Maybe Text
Maybe (HashMap Text Text)
Maybe EarthObservationJobErrorDetails
Maybe EarthObservationJobExportStatus
Maybe ExportErrorDetails
Text
POSIX
EarthObservationJobStatus
InputConfigOutput
JobConfigInput
status :: EarthObservationJobStatus
name :: Text
jobConfig :: JobConfigInput
inputConfig :: InputConfigOutput
durationInSeconds :: Int
creationTime :: POSIX
arn :: Text
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
outputBands :: Maybe [OutputBand]
kmsKeyId :: Maybe Text
exportStatus :: Maybe EarthObservationJobExportStatus
exportErrorDetails :: Maybe ExportErrorDetails
executionRoleArn :: Maybe Text
errorDetails :: Maybe EarthObservationJobErrorDetails
$sel:status:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> EarthObservationJobStatus
$sel:name:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Text
$sel:jobConfig:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> JobConfigInput
$sel:inputConfig:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> InputConfigOutput
$sel:durationInSeconds:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Int
$sel:creationTime:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> POSIX
$sel:arn:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Text
$sel:httpStatus:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Int
$sel:tags:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe (HashMap Text Text)
$sel:outputBands:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe [OutputBand]
$sel:kmsKeyId:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe Text
$sel:exportStatus:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse
-> Maybe EarthObservationJobExportStatus
$sel:exportErrorDetails:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe ExportErrorDetails
$sel:executionRoleArn:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse -> Maybe Text
$sel:errorDetails:GetEarthObservationJobResponse' :: GetEarthObservationJobResponse
-> Maybe EarthObservationJobErrorDetails
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe EarthObservationJobErrorDetails
errorDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
executionRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExportErrorDetails
exportErrorDetails
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EarthObservationJobExportStatus
exportStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [OutputBand]
outputBands
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Int
durationInSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf InputConfigOutput
inputConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf JobConfigInput
jobConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf EarthObservationJobStatus
status