packages feed

amazonka-omics-2.0: gen/Amazonka/Omics/GetVariantImportJob.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.GetVariantImportJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about a variant import job.
module Amazonka.Omics.GetVariantImportJob
  ( -- * Creating a Request
    GetVariantImportJob (..),
    newGetVariantImportJob,

    -- * Request Lenses
    getVariantImportJob_jobId,

    -- * Destructuring the Response
    GetVariantImportJobResponse (..),
    newGetVariantImportJobResponse,

    -- * Response Lenses
    getVariantImportJobResponse_completionTime,
    getVariantImportJobResponse_httpStatus,
    getVariantImportJobResponse_creationTime,
    getVariantImportJobResponse_destinationName,
    getVariantImportJobResponse_id,
    getVariantImportJobResponse_items,
    getVariantImportJobResponse_roleArn,
    getVariantImportJobResponse_runLeftNormalization,
    getVariantImportJobResponse_status,
    getVariantImportJobResponse_statusMessage,
    getVariantImportJobResponse_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:/ 'newGetVariantImportJob' smart constructor.
data GetVariantImportJob = GetVariantImportJob'
  { -- | The job\'s ID.
    jobId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

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

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

instance Core.AWSRequest GetVariantImportJob where
  type
    AWSResponse GetVariantImportJob =
      GetVariantImportJobResponse
  request overrides =
    Request.get (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          GetVariantImportJobResponse'
            Prelude.<$> (x Data..?> "completionTime")
            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
            Prelude.<*> (x Data..:> "creationTime")
            Prelude.<*> (x Data..:> "destinationName")
            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 GetVariantImportJob where
  hashWithSalt _salt GetVariantImportJob' {..} =
    _salt `Prelude.hashWithSalt` jobId

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

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

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

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

-- | /See:/ 'newGetVariantImportJobResponse' smart constructor.
data GetVariantImportJobResponse = GetVariantImportJobResponse'
  { -- | When the job completed.
    completionTime :: Prelude.Maybe Data.ISO8601,
    -- | The response's http status code.
    httpStatus :: Prelude.Int,
    -- | When the job was created.
    creationTime :: Data.ISO8601,
    -- | The job\'s destination variant store.
    destinationName :: Prelude.Text,
    -- | The job\'s ID.
    id :: Prelude.Text,
    -- | The job\'s items.
    items :: Prelude.NonEmpty VariantImportItemDetail,
    -- | 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 'GetVariantImportJobResponse' 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:
--
-- 'completionTime', 'getVariantImportJobResponse_completionTime' - When the job completed.
--
-- 'httpStatus', 'getVariantImportJobResponse_httpStatus' - The response's http status code.
--
-- 'creationTime', 'getVariantImportJobResponse_creationTime' - When the job was created.
--
-- 'destinationName', 'getVariantImportJobResponse_destinationName' - The job\'s destination variant store.
--
-- 'id', 'getVariantImportJobResponse_id' - The job\'s ID.
--
-- 'items', 'getVariantImportJobResponse_items' - The job\'s items.
--
-- 'roleArn', 'getVariantImportJobResponse_roleArn' - The job\'s service role ARN.
--
-- 'runLeftNormalization', 'getVariantImportJobResponse_runLeftNormalization' - The job\'s left normalization setting.
--
-- 'status', 'getVariantImportJobResponse_status' - The job\'s status.
--
-- 'statusMessage', 'getVariantImportJobResponse_statusMessage' - The job\'s status message.
--
-- 'updateTime', 'getVariantImportJobResponse_updateTime' - When the job was updated.
newGetVariantImportJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'destinationName'
  Prelude.Text ->
  -- | 'id'
  Prelude.Text ->
  -- | 'items'
  Prelude.NonEmpty VariantImportItemDetail ->
  -- | 'roleArn'
  Prelude.Text ->
  -- | 'runLeftNormalization'
  Prelude.Bool ->
  -- | 'status'
  JobStatus ->
  -- | 'statusMessage'
  Prelude.Text ->
  -- | 'updateTime'
  Prelude.UTCTime ->
  GetVariantImportJobResponse
newGetVariantImportJobResponse
  pHttpStatus_
  pCreationTime_
  pDestinationName_
  pId_
  pItems_
  pRoleArn_
  pRunLeftNormalization_
  pStatus_
  pStatusMessage_
  pUpdateTime_ =
    GetVariantImportJobResponse'
      { completionTime =
          Prelude.Nothing,
        httpStatus = pHttpStatus_,
        creationTime =
          Data._Time Lens.# pCreationTime_,
        destinationName = pDestinationName_,
        id = pId_,
        items = Lens.coerced Lens.# pItems_,
        roleArn = pRoleArn_,
        runLeftNormalization = pRunLeftNormalization_,
        status = pStatus_,
        statusMessage = pStatusMessage_,
        updateTime = Data._Time Lens.# pUpdateTime_
      }

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

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

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

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

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

-- | The job\'s items.
getVariantImportJobResponse_items :: Lens.Lens' GetVariantImportJobResponse (Prelude.NonEmpty VariantImportItemDetail)
getVariantImportJobResponse_items = Lens.lens (\GetVariantImportJobResponse' {items} -> items) (\s@GetVariantImportJobResponse' {} a -> s {items = a} :: GetVariantImportJobResponse) Prelude.. Lens.coerced

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

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

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

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

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

instance Prelude.NFData GetVariantImportJobResponse where
  rnf GetVariantImportJobResponse' {..} =
    Prelude.rnf completionTime
      `Prelude.seq` Prelude.rnf httpStatus
      `Prelude.seq` Prelude.rnf creationTime
      `Prelude.seq` Prelude.rnf destinationName
      `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