packages feed

amazonka-omics-2.0: gen/Amazonka/Omics/BatchDeleteReadSet.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.BatchDeleteReadSet
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deletes one or more read sets.
module Amazonka.Omics.BatchDeleteReadSet
  ( -- * Creating a Request
    BatchDeleteReadSet (..),
    newBatchDeleteReadSet,

    -- * Request Lenses
    batchDeleteReadSet_ids,
    batchDeleteReadSet_sequenceStoreId,

    -- * Destructuring the Response
    BatchDeleteReadSetResponse (..),
    newBatchDeleteReadSetResponse,

    -- * Response Lenses
    batchDeleteReadSetResponse_errors,
    batchDeleteReadSetResponse_httpStatus,
  )
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:/ 'newBatchDeleteReadSet' smart constructor.
data BatchDeleteReadSet = BatchDeleteReadSet'
  { -- | The read sets\' IDs.
    ids :: Prelude.NonEmpty Prelude.Text,
    -- | The read sets\' sequence store ID.
    sequenceStoreId :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteReadSet' 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:
--
-- 'ids', 'batchDeleteReadSet_ids' - The read sets\' IDs.
--
-- 'sequenceStoreId', 'batchDeleteReadSet_sequenceStoreId' - The read sets\' sequence store ID.
newBatchDeleteReadSet ::
  -- | 'ids'
  Prelude.NonEmpty Prelude.Text ->
  -- | 'sequenceStoreId'
  Prelude.Text ->
  BatchDeleteReadSet
newBatchDeleteReadSet pIds_ pSequenceStoreId_ =
  BatchDeleteReadSet'
    { ids =
        Lens.coerced Lens.# pIds_,
      sequenceStoreId = pSequenceStoreId_
    }

-- | The read sets\' IDs.
batchDeleteReadSet_ids :: Lens.Lens' BatchDeleteReadSet (Prelude.NonEmpty Prelude.Text)
batchDeleteReadSet_ids = Lens.lens (\BatchDeleteReadSet' {ids} -> ids) (\s@BatchDeleteReadSet' {} a -> s {ids = a} :: BatchDeleteReadSet) Prelude.. Lens.coerced

-- | The read sets\' sequence store ID.
batchDeleteReadSet_sequenceStoreId :: Lens.Lens' BatchDeleteReadSet Prelude.Text
batchDeleteReadSet_sequenceStoreId = Lens.lens (\BatchDeleteReadSet' {sequenceStoreId} -> sequenceStoreId) (\s@BatchDeleteReadSet' {} a -> s {sequenceStoreId = a} :: BatchDeleteReadSet)

instance Core.AWSRequest BatchDeleteReadSet where
  type
    AWSResponse BatchDeleteReadSet =
      BatchDeleteReadSetResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveJSON
      ( \s h x ->
          BatchDeleteReadSetResponse'
            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)
            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
      )

instance Prelude.Hashable BatchDeleteReadSet where
  hashWithSalt _salt BatchDeleteReadSet' {..} =
    _salt
      `Prelude.hashWithSalt` ids
      `Prelude.hashWithSalt` sequenceStoreId

instance Prelude.NFData BatchDeleteReadSet where
  rnf BatchDeleteReadSet' {..} =
    Prelude.rnf ids
      `Prelude.seq` Prelude.rnf sequenceStoreId

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

instance Data.ToJSON BatchDeleteReadSet where
  toJSON BatchDeleteReadSet' {..} =
    Data.object
      ( Prelude.catMaybes
          [Prelude.Just ("ids" Data..= ids)]
      )

instance Data.ToPath BatchDeleteReadSet where
  toPath BatchDeleteReadSet' {..} =
    Prelude.mconcat
      [ "/sequencestore/",
        Data.toBS sequenceStoreId,
        "/readset/batch/delete"
      ]

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

-- | /See:/ 'newBatchDeleteReadSetResponse' smart constructor.
data BatchDeleteReadSetResponse = BatchDeleteReadSetResponse'
  { -- | Errors returned by individual delete operations.
    errors :: Prelude.Maybe [ReadSetBatchError],
    -- | The response's http status code.
    httpStatus :: Prelude.Int
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'BatchDeleteReadSetResponse' 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:
--
-- 'errors', 'batchDeleteReadSetResponse_errors' - Errors returned by individual delete operations.
--
-- 'httpStatus', 'batchDeleteReadSetResponse_httpStatus' - The response's http status code.
newBatchDeleteReadSetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  BatchDeleteReadSetResponse
newBatchDeleteReadSetResponse pHttpStatus_ =
  BatchDeleteReadSetResponse'
    { errors =
        Prelude.Nothing,
      httpStatus = pHttpStatus_
    }

-- | Errors returned by individual delete operations.
batchDeleteReadSetResponse_errors :: Lens.Lens' BatchDeleteReadSetResponse (Prelude.Maybe [ReadSetBatchError])
batchDeleteReadSetResponse_errors = Lens.lens (\BatchDeleteReadSetResponse' {errors} -> errors) (\s@BatchDeleteReadSetResponse' {} a -> s {errors = a} :: BatchDeleteReadSetResponse) Prelude.. Lens.mapping Lens.coerced

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

instance Prelude.NFData BatchDeleteReadSetResponse where
  rnf BatchDeleteReadSetResponse' {..} =
    Prelude.rnf errors
      `Prelude.seq` Prelude.rnf httpStatus