packages feed

amazonka-omics-2.0: gen/Amazonka/Omics/GetAnnotationImportJob.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.Omics.GetAnnotationImportJob
-- 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 an annotation import job.
module Amazonka.Omics.GetAnnotationImportJob
  ( -- * Creating a Request
    GetAnnotationImportJob (..),
    newGetAnnotationImportJob,

    -- * Request Lenses
    getAnnotationImportJob_jobId,

    -- * Destructuring the Response
    GetAnnotationImportJobResponse (..),
    newGetAnnotationImportJobResponse,

    -- * Response Lenses
    getAnnotationImportJobResponse_httpStatus,
    getAnnotationImportJobResponse_completionTime,
    getAnnotationImportJobResponse_creationTime,
    getAnnotationImportJobResponse_destinationName,
    getAnnotationImportJobResponse_formatOptions,
    getAnnotationImportJobResponse_id,
    getAnnotationImportJobResponse_items,
    getAnnotationImportJobResponse_roleArn,
    getAnnotationImportJobResponse_runLeftNormalization,
    getAnnotationImportJobResponse_status,
    getAnnotationImportJobResponse_statusMessage,
    getAnnotationImportJobResponse_updateTime,
  )
where

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

-- | /See:/ 'newGetAnnotationImportJob' smart constructor.
data GetAnnotationImportJob = GetAnnotationImportJob'
  { -- | The job\'s ID.
    jobId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'GetAnnotationImportJob' 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:
--
-- 'jobId', 'getAnnotationImportJob_jobId' - The job\'s ID.
newGetAnnotationImportJob ::
  -- | 'jobId'
  Prelude.Text ->
  GetAnnotationImportJob
newGetAnnotationImportJob pJobId_ =
  GetAnnotationImportJob' {jobId = pJobId_}

-- | The job\'s ID.
getAnnotationImportJob_jobId :: Lens.Lens' GetAnnotationImportJob Prelude.Text
getAnnotationImportJob_jobId = Lens.lens (\GetAnnotationImportJob' {jobId} -> jobId) (\s@GetAnnotationImportJob' {} a -> s {jobId = a} :: GetAnnotationImportJob)

instance Core.AWSRequest GetAnnotationImportJob where
  type
    AWSResponse GetAnnotationImportJob =
      GetAnnotationImportJobResponse
  request overrides =
    Request.get (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          GetAnnotationImportJobResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
            Prelude.<*> (x Data..:> "completionTime")
            Prelude.<*> (x Data..:> "creationTime")
            Prelude.<*> (x Data..:> "destinationName")
            Prelude.<*> (x Data..:> "formatOptions")
            Prelude.<*> (x Data..:> "id")
            Prelude.<*> (x Data..:> "items")
            Prelude.<*> (x Data..:> "roleArn")
            Prelude.<*> (x Data..:> "runLeftNormalization")
            Prelude.<*> (x Data..:> "status")
            Prelude.<*> (x Data..:> "statusMessage")
            Prelude.<*> (x Data..:> "updateTime")
      )

instance Prelude.Hashable GetAnnotationImportJob where
  hashWithSalt _salt GetAnnotationImportJob' {..} =
    _salt `Prelude.hashWithSalt` jobId

instance Prelude.NFData GetAnnotationImportJob where
  rnf GetAnnotationImportJob' {..} = Prelude.rnf jobId

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

instance Data.ToPath GetAnnotationImportJob where
  toPath GetAnnotationImportJob' {..} =
    Prelude.mconcat
      ["/import/annotation/", Data.toBS jobId]

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

-- | /See:/ 'newGetAnnotationImportJobResponse' smart constructor.
data GetAnnotationImportJobResponse = GetAnnotationImportJobResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int,
    -- | When the job completed.
    completionTime :: Data.ISO8601,
    -- | When the job was created.
    creationTime :: Data.ISO8601,
    -- | The job\'s destination annotation store.
    destinationName :: Prelude.Text,
    formatOptions :: FormatOptions,
    -- | The job\'s ID.
    id :: Prelude.Text,
    -- | The job\'s imported items.
    items :: Prelude.NonEmpty AnnotationImportItemDetail,
    -- | The job\'s service role ARN.
    roleArn :: Prelude.Text,
    -- | The job\'s left normalization setting.
    runLeftNormalization :: Prelude.Bool,
    -- | The job\'s status.
    status :: JobStatus,
    -- | The job\'s status message.
    statusMessage :: Prelude.Text,
    -- | When the job was updated.
    updateTime :: Data.ISO8601
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'GetAnnotationImportJobResponse' 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', 'getAnnotationImportJobResponse_httpStatus' - The response's http status code.
--
-- 'completionTime', 'getAnnotationImportJobResponse_completionTime' - When the job completed.
--
-- 'creationTime', 'getAnnotationImportJobResponse_creationTime' - When the job was created.
--
-- 'destinationName', 'getAnnotationImportJobResponse_destinationName' - The job\'s destination annotation store.
--
-- 'formatOptions', 'getAnnotationImportJobResponse_formatOptions' - Undocumented member.
--
-- 'id', 'getAnnotationImportJobResponse_id' - The job\'s ID.
--
-- 'items', 'getAnnotationImportJobResponse_items' - The job\'s imported items.
--
-- 'roleArn', 'getAnnotationImportJobResponse_roleArn' - The job\'s service role ARN.
--
-- 'runLeftNormalization', 'getAnnotationImportJobResponse_runLeftNormalization' - The job\'s left normalization setting.
--
-- 'status', 'getAnnotationImportJobResponse_status' - The job\'s status.
--
-- 'statusMessage', 'getAnnotationImportJobResponse_statusMessage' - The job\'s status message.
--
-- 'updateTime', 'getAnnotationImportJobResponse_updateTime' - When the job was updated.
newGetAnnotationImportJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'completionTime'
  Prelude.UTCTime ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'destinationName'
  Prelude.Text ->
  -- | 'formatOptions'
  FormatOptions ->
  -- | 'id'
  Prelude.Text ->
  -- | 'items'
  Prelude.NonEmpty AnnotationImportItemDetail ->
  -- | 'roleArn'
  Prelude.Text ->
  -- | 'runLeftNormalization'
  Prelude.Bool ->
  -- | 'status'
  JobStatus ->
  -- | 'statusMessage'
  Prelude.Text ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  GetAnnotationImportJobResponse
newGetAnnotationImportJobResponse
  pHttpStatus_
  pCompletionTime_
  pCreationTime_
  pDestinationName_
  pFormatOptions_
  pId_
  pItems_
  pRoleArn_
  pRunLeftNormalization_
  pStatus_
  pStatusMessage_
  pUpdateTime_ =
    GetAnnotationImportJobResponse'
      { httpStatus =
          pHttpStatus_,
        completionTime =
          Data._Time Lens.# pCompletionTime_,
        creationTime =
          Data._Time Lens.# pCreationTime_,
        destinationName = pDestinationName_,
        formatOptions = pFormatOptions_,
        id = pId_,
        items = Lens.coerced Lens.# pItems_,
        roleArn = pRoleArn_,
        runLeftNormalization =
          pRunLeftNormalization_,
        status = pStatus_,
        statusMessage = pStatusMessage_,
        updateTime = Data._Time Lens.# pUpdateTime_
      }

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

-- | When the job completed.
getAnnotationImportJobResponse_completionTime :: Lens.Lens' GetAnnotationImportJobResponse Prelude.UTCTime
getAnnotationImportJobResponse_completionTime = Lens.lens (\GetAnnotationImportJobResponse' {completionTime} -> completionTime) (\s@GetAnnotationImportJobResponse' {} a -> s {completionTime = a} :: GetAnnotationImportJobResponse) Prelude.. Data._Time

-- | When the job was created.
getAnnotationImportJobResponse_creationTime :: Lens.Lens' GetAnnotationImportJobResponse Prelude.UTCTime
getAnnotationImportJobResponse_creationTime = Lens.lens (\GetAnnotationImportJobResponse' {creationTime} -> creationTime) (\s@GetAnnotationImportJobResponse' {} a -> s {creationTime = a} :: GetAnnotationImportJobResponse) Prelude.. Data._Time

-- | The job\'s destination annotation store.
getAnnotationImportJobResponse_destinationName :: Lens.Lens' GetAnnotationImportJobResponse Prelude.Text
getAnnotationImportJobResponse_destinationName = Lens.lens (\GetAnnotationImportJobResponse' {destinationName} -> destinationName) (\s@GetAnnotationImportJobResponse' {} a -> s {destinationName = a} :: GetAnnotationImportJobResponse)

-- | Undocumented member.
getAnnotationImportJobResponse_formatOptions :: Lens.Lens' GetAnnotationImportJobResponse FormatOptions
getAnnotationImportJobResponse_formatOptions = Lens.lens (\GetAnnotationImportJobResponse' {formatOptions} -> formatOptions) (\s@GetAnnotationImportJobResponse' {} a -> s {formatOptions = a} :: GetAnnotationImportJobResponse)

-- | The job\'s ID.
getAnnotationImportJobResponse_id :: Lens.Lens' GetAnnotationImportJobResponse Prelude.Text
getAnnotationImportJobResponse_id = Lens.lens (\GetAnnotationImportJobResponse' {id} -> id) (\s@GetAnnotationImportJobResponse' {} a -> s {id = a} :: GetAnnotationImportJobResponse)

-- | The job\'s imported items.
getAnnotationImportJobResponse_items :: Lens.Lens' GetAnnotationImportJobResponse (Prelude.NonEmpty AnnotationImportItemDetail)
getAnnotationImportJobResponse_items = Lens.lens (\GetAnnotationImportJobResponse' {items} -> items) (\s@GetAnnotationImportJobResponse' {} a -> s {items = a} :: GetAnnotationImportJobResponse) Prelude.. Lens.coerced

-- | The job\'s service role ARN.
getAnnotationImportJobResponse_roleArn :: Lens.Lens' GetAnnotationImportJobResponse Prelude.Text
getAnnotationImportJobResponse_roleArn = Lens.lens (\GetAnnotationImportJobResponse' {roleArn} -> roleArn) (\s@GetAnnotationImportJobResponse' {} a -> s {roleArn = a} :: GetAnnotationImportJobResponse)

-- | The job\'s left normalization setting.
getAnnotationImportJobResponse_runLeftNormalization :: Lens.Lens' GetAnnotationImportJobResponse Prelude.Bool
getAnnotationImportJobResponse_runLeftNormalization = Lens.lens (\GetAnnotationImportJobResponse' {runLeftNormalization} -> runLeftNormalization) (\s@GetAnnotationImportJobResponse' {} a -> s {runLeftNormalization = a} :: GetAnnotationImportJobResponse)

-- | The job\'s status.
getAnnotationImportJobResponse_status :: Lens.Lens' GetAnnotationImportJobResponse JobStatus
getAnnotationImportJobResponse_status = Lens.lens (\GetAnnotationImportJobResponse' {status} -> status) (\s@GetAnnotationImportJobResponse' {} a -> s {status = a} :: GetAnnotationImportJobResponse)

-- | The job\'s status message.
getAnnotationImportJobResponse_statusMessage :: Lens.Lens' GetAnnotationImportJobResponse Prelude.Text
getAnnotationImportJobResponse_statusMessage = Lens.lens (\GetAnnotationImportJobResponse' {statusMessage} -> statusMessage) (\s@GetAnnotationImportJobResponse' {} a -> s {statusMessage = a} :: GetAnnotationImportJobResponse)

-- | When the job was updated.
getAnnotationImportJobResponse_updateTime :: Lens.Lens' GetAnnotationImportJobResponse Prelude.UTCTime
getAnnotationImportJobResponse_updateTime = Lens.lens (\GetAnnotationImportJobResponse' {updateTime} -> updateTime) (\s@GetAnnotationImportJobResponse' {} a -> s {updateTime = a} :: GetAnnotationImportJobResponse) Prelude.. Data._Time

instance
  Prelude.NFData
    GetAnnotationImportJobResponse
  where
  rnf GetAnnotationImportJobResponse' {..} =
    Prelude.rnf httpStatus
      `Prelude.seq` Prelude.rnf completionTime
      `Prelude.seq` Prelude.rnf creationTime
      `Prelude.seq` Prelude.rnf destinationName
      `Prelude.seq` Prelude.rnf formatOptions
      `Prelude.seq` Prelude.rnf id
      `Prelude.seq` Prelude.rnf items
      `Prelude.seq` Prelude.rnf roleArn
      `Prelude.seq` Prelude.rnf runLeftNormalization
      `Prelude.seq` Prelude.rnf status
      `Prelude.seq` Prelude.rnf statusMessage
      `Prelude.seq` Prelude.rnf updateTime