{-# 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.LookoutEquipment.StartDataIngestionJob
-- 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 data ingestion job. Amazon Lookout for Equipment returns the
-- job status.
module Amazonka.LookoutEquipment.StartDataIngestionJob
  ( -- * Creating a Request
    StartDataIngestionJob (..),
    newStartDataIngestionJob,

    -- * Request Lenses
    startDataIngestionJob_datasetName,
    startDataIngestionJob_ingestionInputConfiguration,
    startDataIngestionJob_roleArn,
    startDataIngestionJob_clientToken,

    -- * Destructuring the Response
    StartDataIngestionJobResponse (..),
    newStartDataIngestionJobResponse,

    -- * Response Lenses
    startDataIngestionJobResponse_jobId,
    startDataIngestionJobResponse_status,
    startDataIngestionJobResponse_httpStatus,
  )
where

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

-- | /See:/ 'newStartDataIngestionJob' smart constructor.
data StartDataIngestionJob = StartDataIngestionJob'
  { -- | The name of the dataset being used by the data ingestion job.
    StartDataIngestionJob -> Text
datasetName :: Prelude.Text,
    -- | Specifies information for the input data for the data ingestion job,
    -- including dataset S3 location.
    StartDataIngestionJob -> IngestionInputConfiguration
ingestionInputConfiguration :: IngestionInputConfiguration,
    -- | The Amazon Resource Name (ARN) of a role with permission to access the
    -- data source for the data ingestion job.
    StartDataIngestionJob -> Text
roleArn :: Prelude.Text,
    -- | A unique identifier for the request. If you do not set the client
    -- request token, Amazon Lookout for Equipment generates one.
    StartDataIngestionJob -> Text
clientToken :: Prelude.Text
  }
  deriving (StartDataIngestionJob -> StartDataIngestionJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartDataIngestionJob -> StartDataIngestionJob -> Bool
$c/= :: StartDataIngestionJob -> StartDataIngestionJob -> Bool
== :: StartDataIngestionJob -> StartDataIngestionJob -> Bool
$c== :: StartDataIngestionJob -> StartDataIngestionJob -> Bool
Prelude.Eq, ReadPrec [StartDataIngestionJob]
ReadPrec StartDataIngestionJob
Int -> ReadS StartDataIngestionJob
ReadS [StartDataIngestionJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartDataIngestionJob]
$creadListPrec :: ReadPrec [StartDataIngestionJob]
readPrec :: ReadPrec StartDataIngestionJob
$creadPrec :: ReadPrec StartDataIngestionJob
readList :: ReadS [StartDataIngestionJob]
$creadList :: ReadS [StartDataIngestionJob]
readsPrec :: Int -> ReadS StartDataIngestionJob
$creadsPrec :: Int -> ReadS StartDataIngestionJob
Prelude.Read, Int -> StartDataIngestionJob -> ShowS
[StartDataIngestionJob] -> ShowS
StartDataIngestionJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartDataIngestionJob] -> ShowS
$cshowList :: [StartDataIngestionJob] -> ShowS
show :: StartDataIngestionJob -> String
$cshow :: StartDataIngestionJob -> String
showsPrec :: Int -> StartDataIngestionJob -> ShowS
$cshowsPrec :: Int -> StartDataIngestionJob -> ShowS
Prelude.Show, forall x. Rep StartDataIngestionJob x -> StartDataIngestionJob
forall x. StartDataIngestionJob -> Rep StartDataIngestionJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartDataIngestionJob x -> StartDataIngestionJob
$cfrom :: forall x. StartDataIngestionJob -> Rep StartDataIngestionJob x
Prelude.Generic)

-- |
-- Create a value of 'StartDataIngestionJob' 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:
--
-- 'datasetName', 'startDataIngestionJob_datasetName' - The name of the dataset being used by the data ingestion job.
--
-- 'ingestionInputConfiguration', 'startDataIngestionJob_ingestionInputConfiguration' - Specifies information for the input data for the data ingestion job,
-- including dataset S3 location.
--
-- 'roleArn', 'startDataIngestionJob_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the
-- data source for the data ingestion job.
--
-- 'clientToken', 'startDataIngestionJob_clientToken' - A unique identifier for the request. If you do not set the client
-- request token, Amazon Lookout for Equipment generates one.
newStartDataIngestionJob ::
  -- | 'datasetName'
  Prelude.Text ->
  -- | 'ingestionInputConfiguration'
  IngestionInputConfiguration ->
  -- | 'roleArn'
  Prelude.Text ->
  -- | 'clientToken'
  Prelude.Text ->
  StartDataIngestionJob
newStartDataIngestionJob :: Text
-> IngestionInputConfiguration
-> Text
-> Text
-> StartDataIngestionJob
newStartDataIngestionJob
  Text
pDatasetName_
  IngestionInputConfiguration
pIngestionInputConfiguration_
  Text
pRoleArn_
  Text
pClientToken_ =
    StartDataIngestionJob'
      { $sel:datasetName:StartDataIngestionJob' :: Text
datasetName = Text
pDatasetName_,
        $sel:ingestionInputConfiguration:StartDataIngestionJob' :: IngestionInputConfiguration
ingestionInputConfiguration =
          IngestionInputConfiguration
pIngestionInputConfiguration_,
        $sel:roleArn:StartDataIngestionJob' :: Text
roleArn = Text
pRoleArn_,
        $sel:clientToken:StartDataIngestionJob' :: Text
clientToken = Text
pClientToken_
      }

-- | The name of the dataset being used by the data ingestion job.
startDataIngestionJob_datasetName :: Lens.Lens' StartDataIngestionJob Prelude.Text
startDataIngestionJob_datasetName :: Lens' StartDataIngestionJob Text
startDataIngestionJob_datasetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJob' {Text
datasetName :: Text
$sel:datasetName:StartDataIngestionJob' :: StartDataIngestionJob -> Text
datasetName} -> Text
datasetName) (\s :: StartDataIngestionJob
s@StartDataIngestionJob' {} Text
a -> StartDataIngestionJob
s {$sel:datasetName:StartDataIngestionJob' :: Text
datasetName = Text
a} :: StartDataIngestionJob)

-- | Specifies information for the input data for the data ingestion job,
-- including dataset S3 location.
startDataIngestionJob_ingestionInputConfiguration :: Lens.Lens' StartDataIngestionJob IngestionInputConfiguration
startDataIngestionJob_ingestionInputConfiguration :: Lens' StartDataIngestionJob IngestionInputConfiguration
startDataIngestionJob_ingestionInputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJob' {IngestionInputConfiguration
ingestionInputConfiguration :: IngestionInputConfiguration
$sel:ingestionInputConfiguration:StartDataIngestionJob' :: StartDataIngestionJob -> IngestionInputConfiguration
ingestionInputConfiguration} -> IngestionInputConfiguration
ingestionInputConfiguration) (\s :: StartDataIngestionJob
s@StartDataIngestionJob' {} IngestionInputConfiguration
a -> StartDataIngestionJob
s {$sel:ingestionInputConfiguration:StartDataIngestionJob' :: IngestionInputConfiguration
ingestionInputConfiguration = IngestionInputConfiguration
a} :: StartDataIngestionJob)

-- | The Amazon Resource Name (ARN) of a role with permission to access the
-- data source for the data ingestion job.
startDataIngestionJob_roleArn :: Lens.Lens' StartDataIngestionJob Prelude.Text
startDataIngestionJob_roleArn :: Lens' StartDataIngestionJob Text
startDataIngestionJob_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJob' {Text
roleArn :: Text
$sel:roleArn:StartDataIngestionJob' :: StartDataIngestionJob -> Text
roleArn} -> Text
roleArn) (\s :: StartDataIngestionJob
s@StartDataIngestionJob' {} Text
a -> StartDataIngestionJob
s {$sel:roleArn:StartDataIngestionJob' :: Text
roleArn = Text
a} :: StartDataIngestionJob)

-- | A unique identifier for the request. If you do not set the client
-- request token, Amazon Lookout for Equipment generates one.
startDataIngestionJob_clientToken :: Lens.Lens' StartDataIngestionJob Prelude.Text
startDataIngestionJob_clientToken :: Lens' StartDataIngestionJob Text
startDataIngestionJob_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJob' {Text
clientToken :: Text
$sel:clientToken:StartDataIngestionJob' :: StartDataIngestionJob -> Text
clientToken} -> Text
clientToken) (\s :: StartDataIngestionJob
s@StartDataIngestionJob' {} Text
a -> StartDataIngestionJob
s {$sel:clientToken:StartDataIngestionJob' :: Text
clientToken = Text
a} :: StartDataIngestionJob)

instance Core.AWSRequest StartDataIngestionJob where
  type
    AWSResponse StartDataIngestionJob =
      StartDataIngestionJobResponse
  request :: (Service -> Service)
-> StartDataIngestionJob -> Request StartDataIngestionJob
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy StartDataIngestionJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse StartDataIngestionJob)))
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 Text
-> Maybe IngestionJobStatus -> Int -> StartDataIngestionJobResponse
StartDataIngestionJobResponse'
            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
"JobId")
            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
"Status")
            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))
      )

instance Prelude.Hashable StartDataIngestionJob where
  hashWithSalt :: Int -> StartDataIngestionJob -> Int
hashWithSalt Int
_salt StartDataIngestionJob' {Text
IngestionInputConfiguration
clientToken :: Text
roleArn :: Text
ingestionInputConfiguration :: IngestionInputConfiguration
datasetName :: Text
$sel:clientToken:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:roleArn:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:ingestionInputConfiguration:StartDataIngestionJob' :: StartDataIngestionJob -> IngestionInputConfiguration
$sel:datasetName:StartDataIngestionJob' :: StartDataIngestionJob -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
datasetName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` IngestionInputConfiguration
ingestionInputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
roleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
clientToken

instance Prelude.NFData StartDataIngestionJob where
  rnf :: StartDataIngestionJob -> ()
rnf StartDataIngestionJob' {Text
IngestionInputConfiguration
clientToken :: Text
roleArn :: Text
ingestionInputConfiguration :: IngestionInputConfiguration
datasetName :: Text
$sel:clientToken:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:roleArn:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:ingestionInputConfiguration:StartDataIngestionJob' :: StartDataIngestionJob -> IngestionInputConfiguration
$sel:datasetName:StartDataIngestionJob' :: StartDataIngestionJob -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
datasetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf IngestionInputConfiguration
ingestionInputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
clientToken

instance Data.ToHeaders StartDataIngestionJob where
  toHeaders :: StartDataIngestionJob -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSLookoutEquipmentFrontendService.StartDataIngestionJob" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON StartDataIngestionJob where
  toJSON :: StartDataIngestionJob -> Value
toJSON StartDataIngestionJob' {Text
IngestionInputConfiguration
clientToken :: Text
roleArn :: Text
ingestionInputConfiguration :: IngestionInputConfiguration
datasetName :: Text
$sel:clientToken:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:roleArn:StartDataIngestionJob' :: StartDataIngestionJob -> Text
$sel:ingestionInputConfiguration:StartDataIngestionJob' :: StartDataIngestionJob -> IngestionInputConfiguration
$sel:datasetName:StartDataIngestionJob' :: StartDataIngestionJob -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just (Key
"DatasetName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
datasetName),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"IngestionInputConfiguration"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= IngestionInputConfiguration
ingestionInputConfiguration
              ),
            forall a. a -> Maybe a
Prelude.Just (Key
"RoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
roleArn),
            forall a. a -> Maybe a
Prelude.Just (Key
"ClientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
clientToken)
          ]
      )

instance Data.ToPath StartDataIngestionJob where
  toPath :: StartDataIngestionJob -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newStartDataIngestionJobResponse' smart constructor.
data StartDataIngestionJobResponse = StartDataIngestionJobResponse'
  { -- | Indicates the job ID of the data ingestion job.
    StartDataIngestionJobResponse -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | Indicates the status of the @StartDataIngestionJob@ operation.
    StartDataIngestionJobResponse -> Maybe IngestionJobStatus
status :: Prelude.Maybe IngestionJobStatus,
    -- | The response's http status code.
    StartDataIngestionJobResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (StartDataIngestionJobResponse
-> StartDataIngestionJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartDataIngestionJobResponse
-> StartDataIngestionJobResponse -> Bool
$c/= :: StartDataIngestionJobResponse
-> StartDataIngestionJobResponse -> Bool
== :: StartDataIngestionJobResponse
-> StartDataIngestionJobResponse -> Bool
$c== :: StartDataIngestionJobResponse
-> StartDataIngestionJobResponse -> Bool
Prelude.Eq, ReadPrec [StartDataIngestionJobResponse]
ReadPrec StartDataIngestionJobResponse
Int -> ReadS StartDataIngestionJobResponse
ReadS [StartDataIngestionJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartDataIngestionJobResponse]
$creadListPrec :: ReadPrec [StartDataIngestionJobResponse]
readPrec :: ReadPrec StartDataIngestionJobResponse
$creadPrec :: ReadPrec StartDataIngestionJobResponse
readList :: ReadS [StartDataIngestionJobResponse]
$creadList :: ReadS [StartDataIngestionJobResponse]
readsPrec :: Int -> ReadS StartDataIngestionJobResponse
$creadsPrec :: Int -> ReadS StartDataIngestionJobResponse
Prelude.Read, Int -> StartDataIngestionJobResponse -> ShowS
[StartDataIngestionJobResponse] -> ShowS
StartDataIngestionJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartDataIngestionJobResponse] -> ShowS
$cshowList :: [StartDataIngestionJobResponse] -> ShowS
show :: StartDataIngestionJobResponse -> String
$cshow :: StartDataIngestionJobResponse -> String
showsPrec :: Int -> StartDataIngestionJobResponse -> ShowS
$cshowsPrec :: Int -> StartDataIngestionJobResponse -> ShowS
Prelude.Show, forall x.
Rep StartDataIngestionJobResponse x
-> StartDataIngestionJobResponse
forall x.
StartDataIngestionJobResponse
-> Rep StartDataIngestionJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartDataIngestionJobResponse x
-> StartDataIngestionJobResponse
$cfrom :: forall x.
StartDataIngestionJobResponse
-> Rep StartDataIngestionJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'StartDataIngestionJobResponse' 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', 'startDataIngestionJobResponse_jobId' - Indicates the job ID of the data ingestion job.
--
-- 'status', 'startDataIngestionJobResponse_status' - Indicates the status of the @StartDataIngestionJob@ operation.
--
-- 'httpStatus', 'startDataIngestionJobResponse_httpStatus' - The response's http status code.
newStartDataIngestionJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  StartDataIngestionJobResponse
newStartDataIngestionJobResponse :: Int -> StartDataIngestionJobResponse
newStartDataIngestionJobResponse Int
pHttpStatus_ =
  StartDataIngestionJobResponse'
    { $sel:jobId:StartDataIngestionJobResponse' :: Maybe Text
jobId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:status:StartDataIngestionJobResponse' :: Maybe IngestionJobStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:StartDataIngestionJobResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Indicates the job ID of the data ingestion job.
startDataIngestionJobResponse_jobId :: Lens.Lens' StartDataIngestionJobResponse (Prelude.Maybe Prelude.Text)
startDataIngestionJobResponse_jobId :: Lens' StartDataIngestionJobResponse (Maybe Text)
startDataIngestionJobResponse_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJobResponse' {Maybe Text
jobId :: Maybe Text
$sel:jobId:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: StartDataIngestionJobResponse
s@StartDataIngestionJobResponse' {} Maybe Text
a -> StartDataIngestionJobResponse
s {$sel:jobId:StartDataIngestionJobResponse' :: Maybe Text
jobId = Maybe Text
a} :: StartDataIngestionJobResponse)

-- | Indicates the status of the @StartDataIngestionJob@ operation.
startDataIngestionJobResponse_status :: Lens.Lens' StartDataIngestionJobResponse (Prelude.Maybe IngestionJobStatus)
startDataIngestionJobResponse_status :: Lens' StartDataIngestionJobResponse (Maybe IngestionJobStatus)
startDataIngestionJobResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJobResponse' {Maybe IngestionJobStatus
status :: Maybe IngestionJobStatus
$sel:status:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Maybe IngestionJobStatus
status} -> Maybe IngestionJobStatus
status) (\s :: StartDataIngestionJobResponse
s@StartDataIngestionJobResponse' {} Maybe IngestionJobStatus
a -> StartDataIngestionJobResponse
s {$sel:status:StartDataIngestionJobResponse' :: Maybe IngestionJobStatus
status = Maybe IngestionJobStatus
a} :: StartDataIngestionJobResponse)

-- | The response's http status code.
startDataIngestionJobResponse_httpStatus :: Lens.Lens' StartDataIngestionJobResponse Prelude.Int
startDataIngestionJobResponse_httpStatus :: Lens' StartDataIngestionJobResponse Int
startDataIngestionJobResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataIngestionJobResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartDataIngestionJobResponse
s@StartDataIngestionJobResponse' {} Int
a -> StartDataIngestionJobResponse
s {$sel:httpStatus:StartDataIngestionJobResponse' :: Int
httpStatus = Int
a} :: StartDataIngestionJobResponse)

instance Prelude.NFData StartDataIngestionJobResponse where
  rnf :: StartDataIngestionJobResponse -> ()
rnf StartDataIngestionJobResponse' {Int
Maybe Text
Maybe IngestionJobStatus
httpStatus :: Int
status :: Maybe IngestionJobStatus
jobId :: Maybe Text
$sel:httpStatus:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Int
$sel:status:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Maybe IngestionJobStatus
$sel:jobId:StartDataIngestionJobResponse' :: StartDataIngestionJobResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IngestionJobStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus