{-# 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.
    UpdateInferenceScheduler -> Maybe Natural
dataDelayOffsetInMinutes :: Prelude.Maybe Prelude.Natural,
    -- | Specifies information for the input data for the inference scheduler,
    -- including delimiter, format, and dataset location.
    UpdateInferenceScheduler -> Maybe InferenceInputConfiguration
dataInputConfiguration :: Prelude.Maybe InferenceInputConfiguration,
    -- | Specifies information for the output results from the inference
    -- scheduler, including the output S3 location.
    UpdateInferenceScheduler -> Maybe InferenceOutputConfiguration
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.
    UpdateInferenceScheduler -> Maybe DataUploadFrequency
dataUploadFrequency :: Prelude.Maybe DataUploadFrequency,
    -- | The Amazon Resource Name (ARN) of a role with permission to access the
    -- data source for the inference scheduler.
    UpdateInferenceScheduler -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the inference scheduler to be updated.
    UpdateInferenceScheduler -> Text
inferenceSchedulerName :: Prelude.Text
  }
  deriving (UpdateInferenceScheduler -> UpdateInferenceScheduler -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateInferenceScheduler -> UpdateInferenceScheduler -> Bool
$c/= :: UpdateInferenceScheduler -> UpdateInferenceScheduler -> Bool
== :: UpdateInferenceScheduler -> UpdateInferenceScheduler -> Bool
$c== :: UpdateInferenceScheduler -> UpdateInferenceScheduler -> Bool
Prelude.Eq, ReadPrec [UpdateInferenceScheduler]
ReadPrec UpdateInferenceScheduler
Int -> ReadS UpdateInferenceScheduler
ReadS [UpdateInferenceScheduler]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateInferenceScheduler]
$creadListPrec :: ReadPrec [UpdateInferenceScheduler]
readPrec :: ReadPrec UpdateInferenceScheduler
$creadPrec :: ReadPrec UpdateInferenceScheduler
readList :: ReadS [UpdateInferenceScheduler]
$creadList :: ReadS [UpdateInferenceScheduler]
readsPrec :: Int -> ReadS UpdateInferenceScheduler
$creadsPrec :: Int -> ReadS UpdateInferenceScheduler
Prelude.Read, Int -> UpdateInferenceScheduler -> ShowS
[UpdateInferenceScheduler] -> ShowS
UpdateInferenceScheduler -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateInferenceScheduler] -> ShowS
$cshowList :: [UpdateInferenceScheduler] -> ShowS
show :: UpdateInferenceScheduler -> String
$cshow :: UpdateInferenceScheduler -> String
showsPrec :: Int -> UpdateInferenceScheduler -> ShowS
$cshowsPrec :: Int -> UpdateInferenceScheduler -> ShowS
Prelude.Show, forall x.
Rep UpdateInferenceScheduler x -> UpdateInferenceScheduler
forall x.
UpdateInferenceScheduler -> Rep UpdateInferenceScheduler x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateInferenceScheduler x -> UpdateInferenceScheduler
$cfrom :: forall x.
UpdateInferenceScheduler -> Rep UpdateInferenceScheduler x
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 :: Text -> UpdateInferenceScheduler
newUpdateInferenceScheduler Text
pInferenceSchedulerName_ =
  UpdateInferenceScheduler'
    { $sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: Maybe Natural
dataDelayOffsetInMinutes =
        forall a. Maybe a
Prelude.Nothing,
      $sel:dataInputConfiguration:UpdateInferenceScheduler' :: Maybe InferenceInputConfiguration
dataInputConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:dataOutputConfiguration:UpdateInferenceScheduler' :: Maybe InferenceOutputConfiguration
dataOutputConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:dataUploadFrequency:UpdateInferenceScheduler' :: Maybe DataUploadFrequency
dataUploadFrequency = forall a. Maybe a
Prelude.Nothing,
      $sel:roleArn:UpdateInferenceScheduler' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:inferenceSchedulerName:UpdateInferenceScheduler' :: Text
inferenceSchedulerName = Text
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' UpdateInferenceScheduler (Maybe Natural)
updateInferenceScheduler_dataDelayOffsetInMinutes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateInferenceScheduler' {Maybe Natural
dataDelayOffsetInMinutes :: Maybe Natural
$sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Natural
dataDelayOffsetInMinutes} -> Maybe Natural
dataDelayOffsetInMinutes) (\s :: UpdateInferenceScheduler
s@UpdateInferenceScheduler' {} Maybe Natural
a -> UpdateInferenceScheduler
s {$sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: Maybe Natural
dataDelayOffsetInMinutes = Maybe Natural
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' UpdateInferenceScheduler (Maybe InferenceInputConfiguration)
updateInferenceScheduler_dataInputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateInferenceScheduler' {Maybe InferenceInputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
$sel:dataInputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceInputConfiguration
dataInputConfiguration} -> Maybe InferenceInputConfiguration
dataInputConfiguration) (\s :: UpdateInferenceScheduler
s@UpdateInferenceScheduler' {} Maybe InferenceInputConfiguration
a -> UpdateInferenceScheduler
s {$sel:dataInputConfiguration:UpdateInferenceScheduler' :: Maybe InferenceInputConfiguration
dataInputConfiguration = Maybe InferenceInputConfiguration
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' UpdateInferenceScheduler (Maybe InferenceOutputConfiguration)
updateInferenceScheduler_dataOutputConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateInferenceScheduler' {Maybe InferenceOutputConfiguration
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
$sel:dataOutputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceOutputConfiguration
dataOutputConfiguration} -> Maybe InferenceOutputConfiguration
dataOutputConfiguration) (\s :: UpdateInferenceScheduler
s@UpdateInferenceScheduler' {} Maybe InferenceOutputConfiguration
a -> UpdateInferenceScheduler
s {$sel:dataOutputConfiguration:UpdateInferenceScheduler' :: Maybe InferenceOutputConfiguration
dataOutputConfiguration = Maybe InferenceOutputConfiguration
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' UpdateInferenceScheduler (Maybe DataUploadFrequency)
updateInferenceScheduler_dataUploadFrequency = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateInferenceScheduler' {Maybe DataUploadFrequency
dataUploadFrequency :: Maybe DataUploadFrequency
$sel:dataUploadFrequency:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe DataUploadFrequency
dataUploadFrequency} -> Maybe DataUploadFrequency
dataUploadFrequency) (\s :: UpdateInferenceScheduler
s@UpdateInferenceScheduler' {} Maybe DataUploadFrequency
a -> UpdateInferenceScheduler
s {$sel:dataUploadFrequency:UpdateInferenceScheduler' :: Maybe DataUploadFrequency
dataUploadFrequency = Maybe 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' UpdateInferenceScheduler (Maybe Text)
updateInferenceScheduler_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateInferenceScheduler' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: UpdateInferenceScheduler
s@UpdateInferenceScheduler' {} Maybe Text
a -> UpdateInferenceScheduler
s {$sel:roleArn:UpdateInferenceScheduler' :: Maybe Text
roleArn = Maybe Text
a} :: UpdateInferenceScheduler)

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

instance Core.AWSRequest UpdateInferenceScheduler where
  type
    AWSResponse UpdateInferenceScheduler =
      UpdateInferenceSchedulerResponse
  request :: (Service -> Service)
-> UpdateInferenceScheduler -> Request UpdateInferenceScheduler
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 UpdateInferenceScheduler
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateInferenceScheduler)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
      UpdateInferenceSchedulerResponse
UpdateInferenceSchedulerResponse'

instance Prelude.Hashable UpdateInferenceScheduler where
  hashWithSalt :: Int -> UpdateInferenceScheduler -> Int
hashWithSalt Int
_salt UpdateInferenceScheduler' {Maybe Natural
Maybe Text
Maybe DataUploadFrequency
Maybe InferenceInputConfiguration
Maybe InferenceOutputConfiguration
Text
inferenceSchedulerName :: Text
roleArn :: Maybe Text
dataUploadFrequency :: Maybe DataUploadFrequency
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
dataDelayOffsetInMinutes :: Maybe Natural
$sel:inferenceSchedulerName:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Text
$sel:roleArn:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Text
$sel:dataUploadFrequency:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe DataUploadFrequency
$sel:dataOutputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceOutputConfiguration
$sel:dataInputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceInputConfiguration
$sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Natural
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
dataDelayOffsetInMinutes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceInputConfiguration
dataInputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InferenceOutputConfiguration
dataOutputConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataUploadFrequency
dataUploadFrequency
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
inferenceSchedulerName

instance Prelude.NFData UpdateInferenceScheduler where
  rnf :: UpdateInferenceScheduler -> ()
rnf UpdateInferenceScheduler' {Maybe Natural
Maybe Text
Maybe DataUploadFrequency
Maybe InferenceInputConfiguration
Maybe InferenceOutputConfiguration
Text
inferenceSchedulerName :: Text
roleArn :: Maybe Text
dataUploadFrequency :: Maybe DataUploadFrequency
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
dataDelayOffsetInMinutes :: Maybe Natural
$sel:inferenceSchedulerName:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Text
$sel:roleArn:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Text
$sel:dataUploadFrequency:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe DataUploadFrequency
$sel:dataOutputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceOutputConfiguration
$sel:dataInputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceInputConfiguration
$sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
dataDelayOffsetInMinutes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceInputConfiguration
dataInputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InferenceOutputConfiguration
dataOutputConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataUploadFrequency
dataUploadFrequency
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
inferenceSchedulerName

instance Data.ToHeaders UpdateInferenceScheduler where
  toHeaders :: UpdateInferenceScheduler -> [Header]
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 -> [Header]
Data.=# ( ByteString
"AWSLookoutEquipmentFrontendService.UpdateInferenceScheduler" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateInferenceScheduler where
  toJSON :: UpdateInferenceScheduler -> Value
toJSON UpdateInferenceScheduler' {Maybe Natural
Maybe Text
Maybe DataUploadFrequency
Maybe InferenceInputConfiguration
Maybe InferenceOutputConfiguration
Text
inferenceSchedulerName :: Text
roleArn :: Maybe Text
dataUploadFrequency :: Maybe DataUploadFrequency
dataOutputConfiguration :: Maybe InferenceOutputConfiguration
dataInputConfiguration :: Maybe InferenceInputConfiguration
dataDelayOffsetInMinutes :: Maybe Natural
$sel:inferenceSchedulerName:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Text
$sel:roleArn:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Text
$sel:dataUploadFrequency:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe DataUploadFrequency
$sel:dataOutputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceOutputConfiguration
$sel:dataInputConfiguration:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe InferenceInputConfiguration
$sel:dataDelayOffsetInMinutes:UpdateInferenceScheduler' :: UpdateInferenceScheduler -> Maybe Natural
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"DataDelayOffsetInMinutes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
dataDelayOffsetInMinutes,
            (Key
"DataInputConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InferenceInputConfiguration
dataInputConfiguration,
            (Key
"DataOutputConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InferenceOutputConfiguration
dataOutputConfiguration,
            (Key
"DataUploadFrequency" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DataUploadFrequency
dataUploadFrequency,
            (Key
"RoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
roleArn,
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"InferenceSchedulerName"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
inferenceSchedulerName
              )
          ]
      )

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

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

-- | /See:/ 'newUpdateInferenceSchedulerResponse' smart constructor.
data UpdateInferenceSchedulerResponse = UpdateInferenceSchedulerResponse'
  {
  }
  deriving (UpdateInferenceSchedulerResponse
-> UpdateInferenceSchedulerResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateInferenceSchedulerResponse
-> UpdateInferenceSchedulerResponse -> Bool
$c/= :: UpdateInferenceSchedulerResponse
-> UpdateInferenceSchedulerResponse -> Bool
== :: UpdateInferenceSchedulerResponse
-> UpdateInferenceSchedulerResponse -> Bool
$c== :: UpdateInferenceSchedulerResponse
-> UpdateInferenceSchedulerResponse -> Bool
Prelude.Eq, ReadPrec [UpdateInferenceSchedulerResponse]
ReadPrec UpdateInferenceSchedulerResponse
Int -> ReadS UpdateInferenceSchedulerResponse
ReadS [UpdateInferenceSchedulerResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateInferenceSchedulerResponse]
$creadListPrec :: ReadPrec [UpdateInferenceSchedulerResponse]
readPrec :: ReadPrec UpdateInferenceSchedulerResponse
$creadPrec :: ReadPrec UpdateInferenceSchedulerResponse
readList :: ReadS [UpdateInferenceSchedulerResponse]
$creadList :: ReadS [UpdateInferenceSchedulerResponse]
readsPrec :: Int -> ReadS UpdateInferenceSchedulerResponse
$creadsPrec :: Int -> ReadS UpdateInferenceSchedulerResponse
Prelude.Read, Int -> UpdateInferenceSchedulerResponse -> ShowS
[UpdateInferenceSchedulerResponse] -> ShowS
UpdateInferenceSchedulerResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateInferenceSchedulerResponse] -> ShowS
$cshowList :: [UpdateInferenceSchedulerResponse] -> ShowS
show :: UpdateInferenceSchedulerResponse -> String
$cshow :: UpdateInferenceSchedulerResponse -> String
showsPrec :: Int -> UpdateInferenceSchedulerResponse -> ShowS
$cshowsPrec :: Int -> UpdateInferenceSchedulerResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateInferenceSchedulerResponse x
-> UpdateInferenceSchedulerResponse
forall x.
UpdateInferenceSchedulerResponse
-> Rep UpdateInferenceSchedulerResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateInferenceSchedulerResponse x
-> UpdateInferenceSchedulerResponse
$cfrom :: forall x.
UpdateInferenceSchedulerResponse
-> Rep UpdateInferenceSchedulerResponse x
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
newUpdateInferenceSchedulerResponse =
  UpdateInferenceSchedulerResponse
UpdateInferenceSchedulerResponse'

instance
  Prelude.NFData
    UpdateInferenceSchedulerResponse
  where
  rnf :: UpdateInferenceSchedulerResponse -> ()
rnf UpdateInferenceSchedulerResponse
_ = ()