amazonka-omics-2.0: gen/Amazonka/Omics/StartReadSetImportJob.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.StartReadSetImportJob
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Starts a read set import job.
module Amazonka.Omics.StartReadSetImportJob
( -- * Creating a Request
StartReadSetImportJob (..),
newStartReadSetImportJob,
-- * Request Lenses
startReadSetImportJob_clientToken,
startReadSetImportJob_roleArn,
startReadSetImportJob_sequenceStoreId,
startReadSetImportJob_sources,
-- * Destructuring the Response
StartReadSetImportJobResponse (..),
newStartReadSetImportJobResponse,
-- * Response Lenses
startReadSetImportJobResponse_httpStatus,
startReadSetImportJobResponse_creationTime,
startReadSetImportJobResponse_id,
startReadSetImportJobResponse_roleArn,
startReadSetImportJobResponse_sequenceStoreId,
startReadSetImportJobResponse_status,
)
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:/ 'newStartReadSetImportJob' smart constructor.
data StartReadSetImportJob = StartReadSetImportJob'
{ -- | To ensure that jobs don\'t run multiple times, specify a unique token
-- for each job.
clientToken :: Prelude.Maybe Prelude.Text,
-- | A service role for the job.
roleArn :: Prelude.Text,
-- | The read set\'s sequence store ID.
sequenceStoreId :: Prelude.Text,
-- | Source files to import.
sources :: Prelude.NonEmpty StartReadSetImportJobSourceItem
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'StartReadSetImportJob' 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:
--
-- 'clientToken', 'startReadSetImportJob_clientToken' - To ensure that jobs don\'t run multiple times, specify a unique token
-- for each job.
--
-- 'roleArn', 'startReadSetImportJob_roleArn' - A service role for the job.
--
-- 'sequenceStoreId', 'startReadSetImportJob_sequenceStoreId' - The read set\'s sequence store ID.
--
-- 'sources', 'startReadSetImportJob_sources' - Source files to import.
newStartReadSetImportJob ::
-- | 'roleArn'
Prelude.Text ->
-- | 'sequenceStoreId'
Prelude.Text ->
-- | 'sources'
Prelude.NonEmpty StartReadSetImportJobSourceItem ->
StartReadSetImportJob
newStartReadSetImportJob
pRoleArn_
pSequenceStoreId_
pSources_ =
StartReadSetImportJob'
{ clientToken =
Prelude.Nothing,
roleArn = pRoleArn_,
sequenceStoreId = pSequenceStoreId_,
sources = Lens.coerced Lens.# pSources_
}
-- | To ensure that jobs don\'t run multiple times, specify a unique token
-- for each job.
startReadSetImportJob_clientToken :: Lens.Lens' StartReadSetImportJob (Prelude.Maybe Prelude.Text)
startReadSetImportJob_clientToken = Lens.lens (\StartReadSetImportJob' {clientToken} -> clientToken) (\s@StartReadSetImportJob' {} a -> s {clientToken = a} :: StartReadSetImportJob)
-- | A service role for the job.
startReadSetImportJob_roleArn :: Lens.Lens' StartReadSetImportJob Prelude.Text
startReadSetImportJob_roleArn = Lens.lens (\StartReadSetImportJob' {roleArn} -> roleArn) (\s@StartReadSetImportJob' {} a -> s {roleArn = a} :: StartReadSetImportJob)
-- | The read set\'s sequence store ID.
startReadSetImportJob_sequenceStoreId :: Lens.Lens' StartReadSetImportJob Prelude.Text
startReadSetImportJob_sequenceStoreId = Lens.lens (\StartReadSetImportJob' {sequenceStoreId} -> sequenceStoreId) (\s@StartReadSetImportJob' {} a -> s {sequenceStoreId = a} :: StartReadSetImportJob)
-- | Source files to import.
startReadSetImportJob_sources :: Lens.Lens' StartReadSetImportJob (Prelude.NonEmpty StartReadSetImportJobSourceItem)
startReadSetImportJob_sources = Lens.lens (\StartReadSetImportJob' {sources} -> sources) (\s@StartReadSetImportJob' {} a -> s {sources = a} :: StartReadSetImportJob) Prelude.. Lens.coerced
instance Core.AWSRequest StartReadSetImportJob where
type
AWSResponse StartReadSetImportJob =
StartReadSetImportJobResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
StartReadSetImportJobResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "creationTime")
Prelude.<*> (x Data..:> "id")
Prelude.<*> (x Data..:> "roleArn")
Prelude.<*> (x Data..:> "sequenceStoreId")
Prelude.<*> (x Data..:> "status")
)
instance Prelude.Hashable StartReadSetImportJob where
hashWithSalt _salt StartReadSetImportJob' {..} =
_salt
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` roleArn
`Prelude.hashWithSalt` sequenceStoreId
`Prelude.hashWithSalt` sources
instance Prelude.NFData StartReadSetImportJob where
rnf StartReadSetImportJob' {..} =
Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf roleArn
`Prelude.seq` Prelude.rnf sequenceStoreId
`Prelude.seq` Prelude.rnf sources
instance Data.ToHeaders StartReadSetImportJob where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON StartReadSetImportJob where
toJSON StartReadSetImportJob' {..} =
Data.object
( Prelude.catMaybes
[ ("clientToken" Data..=) Prelude.<$> clientToken,
Prelude.Just ("roleArn" Data..= roleArn),
Prelude.Just ("sources" Data..= sources)
]
)
instance Data.ToPath StartReadSetImportJob where
toPath StartReadSetImportJob' {..} =
Prelude.mconcat
[ "/sequencestore/",
Data.toBS sequenceStoreId,
"/importjob"
]
instance Data.ToQuery StartReadSetImportJob where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newStartReadSetImportJobResponse' smart constructor.
data StartReadSetImportJobResponse = StartReadSetImportJobResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | When the job was created.
creationTime :: Data.ISO8601,
-- | The job\'s ID.
id :: Prelude.Text,
-- | The job\'s service role ARN.
roleArn :: Prelude.Text,
-- | The read set\'s sequence store ID.
sequenceStoreId :: Prelude.Text,
-- | The job\'s status.
status :: ReadSetImportJobStatus
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'StartReadSetImportJobResponse' 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', 'startReadSetImportJobResponse_httpStatus' - The response's http status code.
--
-- 'creationTime', 'startReadSetImportJobResponse_creationTime' - When the job was created.
--
-- 'id', 'startReadSetImportJobResponse_id' - The job\'s ID.
--
-- 'roleArn', 'startReadSetImportJobResponse_roleArn' - The job\'s service role ARN.
--
-- 'sequenceStoreId', 'startReadSetImportJobResponse_sequenceStoreId' - The read set\'s sequence store ID.
--
-- 'status', 'startReadSetImportJobResponse_status' - The job\'s status.
newStartReadSetImportJobResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'creationTime'
Prelude.UTCTime ->
-- | 'id'
Prelude.Text ->
-- | 'roleArn'
Prelude.Text ->
-- | 'sequenceStoreId'
Prelude.Text ->
-- | 'status'
ReadSetImportJobStatus ->
StartReadSetImportJobResponse
newStartReadSetImportJobResponse
pHttpStatus_
pCreationTime_
pId_
pRoleArn_
pSequenceStoreId_
pStatus_ =
StartReadSetImportJobResponse'
{ httpStatus =
pHttpStatus_,
creationTime =
Data._Time Lens.# pCreationTime_,
id = pId_,
roleArn = pRoleArn_,
sequenceStoreId = pSequenceStoreId_,
status = pStatus_
}
-- | The response's http status code.
startReadSetImportJobResponse_httpStatus :: Lens.Lens' StartReadSetImportJobResponse Prelude.Int
startReadSetImportJobResponse_httpStatus = Lens.lens (\StartReadSetImportJobResponse' {httpStatus} -> httpStatus) (\s@StartReadSetImportJobResponse' {} a -> s {httpStatus = a} :: StartReadSetImportJobResponse)
-- | When the job was created.
startReadSetImportJobResponse_creationTime :: Lens.Lens' StartReadSetImportJobResponse Prelude.UTCTime
startReadSetImportJobResponse_creationTime = Lens.lens (\StartReadSetImportJobResponse' {creationTime} -> creationTime) (\s@StartReadSetImportJobResponse' {} a -> s {creationTime = a} :: StartReadSetImportJobResponse) Prelude.. Data._Time
-- | The job\'s ID.
startReadSetImportJobResponse_id :: Lens.Lens' StartReadSetImportJobResponse Prelude.Text
startReadSetImportJobResponse_id = Lens.lens (\StartReadSetImportJobResponse' {id} -> id) (\s@StartReadSetImportJobResponse' {} a -> s {id = a} :: StartReadSetImportJobResponse)
-- | The job\'s service role ARN.
startReadSetImportJobResponse_roleArn :: Lens.Lens' StartReadSetImportJobResponse Prelude.Text
startReadSetImportJobResponse_roleArn = Lens.lens (\StartReadSetImportJobResponse' {roleArn} -> roleArn) (\s@StartReadSetImportJobResponse' {} a -> s {roleArn = a} :: StartReadSetImportJobResponse)
-- | The read set\'s sequence store ID.
startReadSetImportJobResponse_sequenceStoreId :: Lens.Lens' StartReadSetImportJobResponse Prelude.Text
startReadSetImportJobResponse_sequenceStoreId = Lens.lens (\StartReadSetImportJobResponse' {sequenceStoreId} -> sequenceStoreId) (\s@StartReadSetImportJobResponse' {} a -> s {sequenceStoreId = a} :: StartReadSetImportJobResponse)
-- | The job\'s status.
startReadSetImportJobResponse_status :: Lens.Lens' StartReadSetImportJobResponse ReadSetImportJobStatus
startReadSetImportJobResponse_status = Lens.lens (\StartReadSetImportJobResponse' {status} -> status) (\s@StartReadSetImportJobResponse' {} a -> s {status = a} :: StartReadSetImportJobResponse)
instance Prelude.NFData StartReadSetImportJobResponse where
rnf StartReadSetImportJobResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf creationTime
`Prelude.seq` Prelude.rnf id
`Prelude.seq` Prelude.rnf roleArn
`Prelude.seq` Prelude.rnf sequenceStoreId
`Prelude.seq` Prelude.rnf status