packages feed

amazonka-lookoutequipment-2.0: gen/Amazonka/LookoutEquipment/Types/InferenceSchedulerSummary.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.InferenceSchedulerSummary
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.LookoutEquipment.Types.InferenceSchedulerSummary 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.DataUploadFrequency
import Amazonka.LookoutEquipment.Types.InferenceSchedulerStatus
import Amazonka.LookoutEquipment.Types.LatestInferenceResult
import qualified Amazonka.Prelude as Prelude

-- | Contains information about the specific inference scheduler, including
-- data delay offset, model name and ARN, status, and so on.
--
-- /See:/ 'newInferenceSchedulerSummary' smart constructor.
data InferenceSchedulerSummary = InferenceSchedulerSummary'
  { -- | A period of time (in minutes) by which inference on the data is delayed
    -- after the data starts. For instance, if an offset delay time of five
    -- minutes was selected, 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,
    -- | How often data is uploaded to the source S3 bucket for the input data.
    -- This value 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 the inference scheduler.
    inferenceSchedulerArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the inference scheduler.
    inferenceSchedulerName :: Prelude.Maybe Prelude.Text,
    -- | Indicates whether the latest execution for the inference scheduler was
    -- Anomalous (anomalous events found) or Normal (no anomalous events
    -- found).
    latestInferenceResult :: Prelude.Maybe LatestInferenceResult,
    -- | The Amazon Resource Name (ARN) of the ML model used by the inference
    -- scheduler.
    modelArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the ML model used for the inference scheduler.
    modelName :: Prelude.Maybe Prelude.Text,
    -- | Indicates the status of the inference scheduler.
    status :: Prelude.Maybe InferenceSchedulerStatus
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'InferenceSchedulerSummary' 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', 'inferenceSchedulerSummary_dataDelayOffsetInMinutes' - A period of time (in minutes) by which inference on the data is delayed
-- after the data starts. For instance, if an offset delay time of five
-- minutes was selected, 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.
--
-- 'dataUploadFrequency', 'inferenceSchedulerSummary_dataUploadFrequency' - How often data is uploaded to the source S3 bucket for the input data.
-- This value 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.
--
-- 'inferenceSchedulerArn', 'inferenceSchedulerSummary_inferenceSchedulerArn' - The Amazon Resource Name (ARN) of the inference scheduler.
--
-- 'inferenceSchedulerName', 'inferenceSchedulerSummary_inferenceSchedulerName' - The name of the inference scheduler.
--
-- 'latestInferenceResult', 'inferenceSchedulerSummary_latestInferenceResult' - Indicates whether the latest execution for the inference scheduler was
-- Anomalous (anomalous events found) or Normal (no anomalous events
-- found).
--
-- 'modelArn', 'inferenceSchedulerSummary_modelArn' - The Amazon Resource Name (ARN) of the ML model used by the inference
-- scheduler.
--
-- 'modelName', 'inferenceSchedulerSummary_modelName' - The name of the ML model used for the inference scheduler.
--
-- 'status', 'inferenceSchedulerSummary_status' - Indicates the status of the inference scheduler.
newInferenceSchedulerSummary ::
  InferenceSchedulerSummary
newInferenceSchedulerSummary =
  InferenceSchedulerSummary'
    { dataDelayOffsetInMinutes =
        Prelude.Nothing,
      dataUploadFrequency = Prelude.Nothing,
      inferenceSchedulerArn = Prelude.Nothing,
      inferenceSchedulerName = Prelude.Nothing,
      latestInferenceResult = Prelude.Nothing,
      modelArn = Prelude.Nothing,
      modelName = Prelude.Nothing,
      status = Prelude.Nothing
    }

-- | A period of time (in minutes) by which inference on the data is delayed
-- after the data starts. For instance, if an offset delay time of five
-- minutes was selected, 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.
inferenceSchedulerSummary_dataDelayOffsetInMinutes :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe Prelude.Natural)
inferenceSchedulerSummary_dataDelayOffsetInMinutes = Lens.lens (\InferenceSchedulerSummary' {dataDelayOffsetInMinutes} -> dataDelayOffsetInMinutes) (\s@InferenceSchedulerSummary' {} a -> s {dataDelayOffsetInMinutes = a} :: InferenceSchedulerSummary)

-- | How often data is uploaded to the source S3 bucket for the input data.
-- This value 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.
inferenceSchedulerSummary_dataUploadFrequency :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe DataUploadFrequency)
inferenceSchedulerSummary_dataUploadFrequency = Lens.lens (\InferenceSchedulerSummary' {dataUploadFrequency} -> dataUploadFrequency) (\s@InferenceSchedulerSummary' {} a -> s {dataUploadFrequency = a} :: InferenceSchedulerSummary)

-- | The Amazon Resource Name (ARN) of the inference scheduler.
inferenceSchedulerSummary_inferenceSchedulerArn :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe Prelude.Text)
inferenceSchedulerSummary_inferenceSchedulerArn = Lens.lens (\InferenceSchedulerSummary' {inferenceSchedulerArn} -> inferenceSchedulerArn) (\s@InferenceSchedulerSummary' {} a -> s {inferenceSchedulerArn = a} :: InferenceSchedulerSummary)

-- | The name of the inference scheduler.
inferenceSchedulerSummary_inferenceSchedulerName :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe Prelude.Text)
inferenceSchedulerSummary_inferenceSchedulerName = Lens.lens (\InferenceSchedulerSummary' {inferenceSchedulerName} -> inferenceSchedulerName) (\s@InferenceSchedulerSummary' {} a -> s {inferenceSchedulerName = a} :: InferenceSchedulerSummary)

-- | Indicates whether the latest execution for the inference scheduler was
-- Anomalous (anomalous events found) or Normal (no anomalous events
-- found).
inferenceSchedulerSummary_latestInferenceResult :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe LatestInferenceResult)
inferenceSchedulerSummary_latestInferenceResult = Lens.lens (\InferenceSchedulerSummary' {latestInferenceResult} -> latestInferenceResult) (\s@InferenceSchedulerSummary' {} a -> s {latestInferenceResult = a} :: InferenceSchedulerSummary)

-- | The Amazon Resource Name (ARN) of the ML model used by the inference
-- scheduler.
inferenceSchedulerSummary_modelArn :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe Prelude.Text)
inferenceSchedulerSummary_modelArn = Lens.lens (\InferenceSchedulerSummary' {modelArn} -> modelArn) (\s@InferenceSchedulerSummary' {} a -> s {modelArn = a} :: InferenceSchedulerSummary)

-- | The name of the ML model used for the inference scheduler.
inferenceSchedulerSummary_modelName :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe Prelude.Text)
inferenceSchedulerSummary_modelName = Lens.lens (\InferenceSchedulerSummary' {modelName} -> modelName) (\s@InferenceSchedulerSummary' {} a -> s {modelName = a} :: InferenceSchedulerSummary)

-- | Indicates the status of the inference scheduler.
inferenceSchedulerSummary_status :: Lens.Lens' InferenceSchedulerSummary (Prelude.Maybe InferenceSchedulerStatus)
inferenceSchedulerSummary_status = Lens.lens (\InferenceSchedulerSummary' {status} -> status) (\s@InferenceSchedulerSummary' {} a -> s {status = a} :: InferenceSchedulerSummary)

instance Data.FromJSON InferenceSchedulerSummary where
  parseJSON =
    Data.withObject
      "InferenceSchedulerSummary"
      ( \x ->
          InferenceSchedulerSummary'
            Prelude.<$> (x Data..:? "DataDelayOffsetInMinutes")
            Prelude.<*> (x Data..:? "DataUploadFrequency")
            Prelude.<*> (x Data..:? "InferenceSchedulerArn")
            Prelude.<*> (x Data..:? "InferenceSchedulerName")
            Prelude.<*> (x Data..:? "LatestInferenceResult")
            Prelude.<*> (x Data..:? "ModelArn")
            Prelude.<*> (x Data..:? "ModelName")
            Prelude.<*> (x Data..:? "Status")
      )

instance Prelude.Hashable InferenceSchedulerSummary where
  hashWithSalt _salt InferenceSchedulerSummary' {..} =
    _salt
      `Prelude.hashWithSalt` dataDelayOffsetInMinutes
      `Prelude.hashWithSalt` dataUploadFrequency
      `Prelude.hashWithSalt` inferenceSchedulerArn
      `Prelude.hashWithSalt` inferenceSchedulerName
      `Prelude.hashWithSalt` latestInferenceResult
      `Prelude.hashWithSalt` modelArn
      `Prelude.hashWithSalt` modelName
      `Prelude.hashWithSalt` status

instance Prelude.NFData InferenceSchedulerSummary where
  rnf InferenceSchedulerSummary' {..} =
    Prelude.rnf dataDelayOffsetInMinutes
      `Prelude.seq` Prelude.rnf dataUploadFrequency
      `Prelude.seq` Prelude.rnf inferenceSchedulerArn
      `Prelude.seq` Prelude.rnf inferenceSchedulerName
      `Prelude.seq` Prelude.rnf latestInferenceResult
      `Prelude.seq` Prelude.rnf modelArn
      `Prelude.seq` Prelude.rnf modelName
      `Prelude.seq` Prelude.rnf status