packages feed

amazonka-lookoutequipment-2.0: gen/Amazonka/LookoutEquipment/UpdateInferenceScheduler.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.LookoutEquipment.UpdateInferenceScheduler
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates an inference scheduler.
module Amazonka.LookoutEquipment.UpdateInferenceScheduler
  ( -- * Creating a Request
    UpdateInferenceScheduler (..),
    newUpdateInferenceScheduler,

    -- * Request Lenses
    updateInferenceScheduler_dataDelayOffsetInMinutes,
    updateInferenceScheduler_dataInputConfiguration,
    updateInferenceScheduler_dataOutputConfiguration,
    updateInferenceScheduler_dataUploadFrequency,
    updateInferenceScheduler_roleArn,
    updateInferenceScheduler_inferenceSchedulerName,

    -- * Destructuring the Response
    UpdateInferenceSchedulerResponse (..),
    newUpdateInferenceSchedulerResponse,
  )
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:/ 'newUpdateInferenceScheduler' smart constructor.
data UpdateInferenceScheduler = UpdateInferenceScheduler'
  { -- | A period of time (in minutes) by which inference on the data is delayed
    -- after the data starts. For instance, if you select an offset delay time
    -- of five minutes, inference will not begin on the data until the first
    -- data measurement after the five minute mark. For example, if five
    -- minutes is selected, the inference scheduler will wake up at the
    -- configured frequency with the additional five minute delay time to check
    -- the customer S3 bucket. The customer can upload data at the same
    -- frequency and they don\'t need to stop and restart the scheduler when
    -- uploading new data.
    dataDelayOffsetInMinutes :: Prelude.Maybe Prelude.Natural,
    -- | Specifies information for the input data for the inference scheduler,
    -- including delimiter, format, and dataset location.
    dataInputConfiguration :: Prelude.Maybe InferenceInputConfiguration,
    -- | Specifies information for the output results from the inference
    -- scheduler, including the output S3 location.
    dataOutputConfiguration :: Prelude.Maybe InferenceOutputConfiguration,
    -- | How often data is uploaded to the source S3 bucket for the input data.
    -- The value chosen is the length of time between data uploads. For
    -- instance, if you select 5 minutes, Amazon Lookout for Equipment will
    -- upload the real-time data to the source bucket once every 5 minutes.
    -- This frequency also determines how often Amazon Lookout for Equipment
    -- starts a scheduled inference on your data. In this example, it starts
    -- once every 5 minutes.
    dataUploadFrequency :: Prelude.Maybe DataUploadFrequency,
    -- | The Amazon Resource Name (ARN) of a role with permission to access the
    -- data source for the inference scheduler.
    roleArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the inference scheduler to be updated.
    inferenceSchedulerName :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'UpdateInferenceScheduler' 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:
--
-- 'dataDelayOffsetInMinutes', 'updateInferenceScheduler_dataDelayOffsetInMinutes' - A period of time (in minutes) by which inference on the data is delayed
-- after the data starts. For instance, if you select an offset delay time
-- of five minutes, inference will not begin on the data until the first
-- data measurement after the five minute mark. For example, if five
-- minutes is selected, the inference scheduler will wake up at the
-- configured frequency with the additional five minute delay time to check
-- the customer S3 bucket. The customer can upload data at the same
-- frequency and they don\'t need to stop and restart the scheduler when
-- uploading new data.
--
-- 'dataInputConfiguration', 'updateInferenceScheduler_dataInputConfiguration' - Specifies information for the input data for the inference scheduler,
-- including delimiter, format, and dataset location.
--
-- 'dataOutputConfiguration', 'updateInferenceScheduler_dataOutputConfiguration' - Specifies information for the output results from the inference
-- scheduler, including the output S3 location.
--
-- 'dataUploadFrequency', 'updateInferenceScheduler_dataUploadFrequency' - How often data is uploaded to the source S3 bucket for the input data.
-- The value chosen is the length of time between data uploads. For
-- instance, if you select 5 minutes, Amazon Lookout for Equipment will
-- upload the real-time data to the source bucket once every 5 minutes.
-- This frequency also determines how often Amazon Lookout for Equipment
-- starts a scheduled inference on your data. In this example, it starts
-- once every 5 minutes.
--
-- 'roleArn', 'updateInferenceScheduler_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the
-- data source for the inference scheduler.
--
-- 'inferenceSchedulerName', 'updateInferenceScheduler_inferenceSchedulerName' - The name of the inference scheduler to be updated.
newUpdateInferenceScheduler ::
  -- | 'inferenceSchedulerName'
  Prelude.Text ->
  UpdateInferenceScheduler
newUpdateInferenceScheduler pInferenceSchedulerName_ =
  UpdateInferenceScheduler'
    { dataDelayOffsetInMinutes =
        Prelude.Nothing,
      dataInputConfiguration = Prelude.Nothing,
      dataOutputConfiguration = Prelude.Nothing,
      dataUploadFrequency = Prelude.Nothing,
      roleArn = Prelude.Nothing,
      inferenceSchedulerName = pInferenceSchedulerName_
    }

-- | A period of time (in minutes) by which inference on the data is delayed
-- after the data starts. For instance, if you select an offset delay time
-- of five minutes, inference will not begin on the data until the first
-- data measurement after the five minute mark. For example, if five
-- minutes is selected, the inference scheduler will wake up at the
-- configured frequency with the additional five minute delay time to check
-- the customer S3 bucket. The customer can upload data at the same
-- frequency and they don\'t need to stop and restart the scheduler when
-- uploading new data.
updateInferenceScheduler_dataDelayOffsetInMinutes :: Lens.Lens' UpdateInferenceScheduler (Prelude.Maybe Prelude.Natural)
updateInferenceScheduler_dataDelayOffsetInMinutes = Lens.lens (\UpdateInferenceScheduler' {dataDelayOffsetInMinutes} -> dataDelayOffsetInMinutes) (\s@UpdateInferenceScheduler' {} a -> s {dataDelayOffsetInMinutes = a} :: UpdateInferenceScheduler)

-- | Specifies information for the input data for the inference scheduler,
-- including delimiter, format, and dataset location.
updateInferenceScheduler_dataInputConfiguration :: Lens.Lens' UpdateInferenceScheduler (Prelude.Maybe InferenceInputConfiguration)
updateInferenceScheduler_dataInputConfiguration = Lens.lens (\UpdateInferenceScheduler' {dataInputConfiguration} -> dataInputConfiguration) (\s@UpdateInferenceScheduler' {} a -> s {dataInputConfiguration = a} :: UpdateInferenceScheduler)

-- | Specifies information for the output results from the inference
-- scheduler, including the output S3 location.
updateInferenceScheduler_dataOutputConfiguration :: Lens.Lens' UpdateInferenceScheduler (Prelude.Maybe InferenceOutputConfiguration)
updateInferenceScheduler_dataOutputConfiguration = Lens.lens (\UpdateInferenceScheduler' {dataOutputConfiguration} -> dataOutputConfiguration) (\s@UpdateInferenceScheduler' {} a -> s {dataOutputConfiguration = a} :: UpdateInferenceScheduler)

-- | How often data is uploaded to the source S3 bucket for the input data.
-- The value chosen is the length of time between data uploads. For
-- instance, if you select 5 minutes, Amazon Lookout for Equipment will
-- upload the real-time data to the source bucket once every 5 minutes.
-- This frequency also determines how often Amazon Lookout for Equipment
-- starts a scheduled inference on your data. In this example, it starts
-- once every 5 minutes.
updateInferenceScheduler_dataUploadFrequency :: Lens.Lens' UpdateInferenceScheduler (Prelude.Maybe DataUploadFrequency)
updateInferenceScheduler_dataUploadFrequency = Lens.lens (\UpdateInferenceScheduler' {dataUploadFrequency} -> dataUploadFrequency) (\s@UpdateInferenceScheduler' {} a -> s {dataUploadFrequency = a} :: UpdateInferenceScheduler)

-- | The Amazon Resource Name (ARN) of a role with permission to access the
-- data source for the inference scheduler.
updateInferenceScheduler_roleArn :: Lens.Lens' UpdateInferenceScheduler (Prelude.Maybe Prelude.Text)
updateInferenceScheduler_roleArn = Lens.lens (\UpdateInferenceScheduler' {roleArn} -> roleArn) (\s@UpdateInferenceScheduler' {} a -> s {roleArn = a} :: UpdateInferenceScheduler)

-- | The name of the inference scheduler to be updated.
updateInferenceScheduler_inferenceSchedulerName :: Lens.Lens' UpdateInferenceScheduler Prelude.Text
updateInferenceScheduler_inferenceSchedulerName = Lens.lens (\UpdateInferenceScheduler' {inferenceSchedulerName} -> inferenceSchedulerName) (\s@UpdateInferenceScheduler' {} a -> s {inferenceSchedulerName = a} :: UpdateInferenceScheduler)

instance Core.AWSRequest UpdateInferenceScheduler where
  type
    AWSResponse UpdateInferenceScheduler =
      UpdateInferenceSchedulerResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveNull
      UpdateInferenceSchedulerResponse'

instance Prelude.Hashable UpdateInferenceScheduler where
  hashWithSalt _salt UpdateInferenceScheduler' {..} =
    _salt
      `Prelude.hashWithSalt` dataDelayOffsetInMinutes
      `Prelude.hashWithSalt` dataInputConfiguration
      `Prelude.hashWithSalt` dataOutputConfiguration
      `Prelude.hashWithSalt` dataUploadFrequency
      `Prelude.hashWithSalt` roleArn
      `Prelude.hashWithSalt` inferenceSchedulerName

instance Prelude.NFData UpdateInferenceScheduler where
  rnf UpdateInferenceScheduler' {..} =
    Prelude.rnf dataDelayOffsetInMinutes
      `Prelude.seq` Prelude.rnf dataInputConfiguration
      `Prelude.seq` Prelude.rnf dataOutputConfiguration
      `Prelude.seq` Prelude.rnf dataUploadFrequency
      `Prelude.seq` Prelude.rnf roleArn
      `Prelude.seq` Prelude.rnf inferenceSchedulerName

instance Data.ToHeaders UpdateInferenceScheduler where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "X-Amz-Target"
              Data.=# ( "AWSLookoutEquipmentFrontendService.UpdateInferenceScheduler" ::
                          Prelude.ByteString
                      ),
            "Content-Type"
              Data.=# ( "application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateInferenceScheduler where
  toJSON UpdateInferenceScheduler' {..} =
    Data.object
      ( Prelude.catMaybes
          [ ("DataDelayOffsetInMinutes" Data..=)
              Prelude.<$> dataDelayOffsetInMinutes,
            ("DataInputConfiguration" Data..=)
              Prelude.<$> dataInputConfiguration,
            ("DataOutputConfiguration" Data..=)
              Prelude.<$> dataOutputConfiguration,
            ("DataUploadFrequency" Data..=)
              Prelude.<$> dataUploadFrequency,
            ("RoleArn" Data..=) Prelude.<$> roleArn,
            Prelude.Just
              ( "InferenceSchedulerName"
                  Data..= inferenceSchedulerName
              )
          ]
      )

instance Data.ToPath UpdateInferenceScheduler where
  toPath = Prelude.const "/"

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

-- | /See:/ 'newUpdateInferenceSchedulerResponse' smart constructor.
data UpdateInferenceSchedulerResponse = UpdateInferenceSchedulerResponse'
  {
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'UpdateInferenceSchedulerResponse' 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.
newUpdateInferenceSchedulerResponse ::
  UpdateInferenceSchedulerResponse
newUpdateInferenceSchedulerResponse =
  UpdateInferenceSchedulerResponse'

instance
  Prelude.NFData
    UpdateInferenceSchedulerResponse
  where
  rnf _ = ()