{-# 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.DeviceFarm.Types.ScheduleRunConfiguration
-- 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.DeviceFarm.Types.ScheduleRunConfiguration where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DeviceFarm.Types.BillingMethod
import Amazonka.DeviceFarm.Types.CustomerArtifactPaths
import Amazonka.DeviceFarm.Types.Location
import Amazonka.DeviceFarm.Types.Radios
import qualified Amazonka.Prelude as Prelude

-- | Represents the settings for a run. Includes things like location, radio
-- states, auxiliary apps, and network profiles.
--
-- /See:/ 'newScheduleRunConfiguration' smart constructor.
data ScheduleRunConfiguration = ScheduleRunConfiguration'
  { -- | A list of upload ARNs for app packages to be installed with your app.
    ScheduleRunConfiguration -> Maybe [Text]
auxiliaryApps :: Prelude.Maybe [Prelude.Text],
    -- | Specifies the billing method for a test run: @metered@ or @unmetered@.
    -- If the parameter is not specified, the default value is @metered@.
    --
    -- If you have purchased unmetered device slots, you must set this
    -- parameter to @unmetered@ to make use of them. Otherwise, your run counts
    -- against your metered time.
    ScheduleRunConfiguration -> Maybe BillingMethod
billingMethod :: Prelude.Maybe BillingMethod,
    -- | Input @CustomerArtifactPaths@ object for the scheduled run
    -- configuration.
    ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
customerArtifactPaths :: Prelude.Maybe CustomerArtifactPaths,
    -- | The ARN of the extra data for the run. The extra data is a .zip file
    -- that AWS Device Farm extracts to external data for Android or the app\'s
    -- sandbox for iOS.
    ScheduleRunConfiguration -> Maybe Text
extraDataPackageArn :: Prelude.Maybe Prelude.Text,
    -- | Information about the locale that is used for the run.
    ScheduleRunConfiguration -> Maybe Text
locale :: Prelude.Maybe Prelude.Text,
    -- | Information about the location that is used for the run.
    ScheduleRunConfiguration -> Maybe Location
location :: Prelude.Maybe Location,
    -- | Reserved for internal use.
    ScheduleRunConfiguration -> Maybe Text
networkProfileArn :: Prelude.Maybe Prelude.Text,
    -- | Information about the radio states for the run.
    ScheduleRunConfiguration -> Maybe Radios
radios :: Prelude.Maybe Radios,
    -- | An array of ARNs for your VPC endpoint configurations.
    ScheduleRunConfiguration -> Maybe [Text]
vpceConfigurationArns :: Prelude.Maybe [Prelude.Text]
  }
  deriving (ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
$c/= :: ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
== :: ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
$c== :: ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
Prelude.Eq, ReadPrec [ScheduleRunConfiguration]
ReadPrec ScheduleRunConfiguration
Int -> ReadS ScheduleRunConfiguration
ReadS [ScheduleRunConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ScheduleRunConfiguration]
$creadListPrec :: ReadPrec [ScheduleRunConfiguration]
readPrec :: ReadPrec ScheduleRunConfiguration
$creadPrec :: ReadPrec ScheduleRunConfiguration
readList :: ReadS [ScheduleRunConfiguration]
$creadList :: ReadS [ScheduleRunConfiguration]
readsPrec :: Int -> ReadS ScheduleRunConfiguration
$creadsPrec :: Int -> ReadS ScheduleRunConfiguration
Prelude.Read, Int -> ScheduleRunConfiguration -> ShowS
[ScheduleRunConfiguration] -> ShowS
ScheduleRunConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ScheduleRunConfiguration] -> ShowS
$cshowList :: [ScheduleRunConfiguration] -> ShowS
show :: ScheduleRunConfiguration -> String
$cshow :: ScheduleRunConfiguration -> String
showsPrec :: Int -> ScheduleRunConfiguration -> ShowS
$cshowsPrec :: Int -> ScheduleRunConfiguration -> ShowS
Prelude.Show, forall x.
Rep ScheduleRunConfiguration x -> ScheduleRunConfiguration
forall x.
ScheduleRunConfiguration -> Rep ScheduleRunConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ScheduleRunConfiguration x -> ScheduleRunConfiguration
$cfrom :: forall x.
ScheduleRunConfiguration -> Rep ScheduleRunConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'ScheduleRunConfiguration' 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:
--
-- 'auxiliaryApps', 'scheduleRunConfiguration_auxiliaryApps' - A list of upload ARNs for app packages to be installed with your app.
--
-- 'billingMethod', 'scheduleRunConfiguration_billingMethod' - Specifies the billing method for a test run: @metered@ or @unmetered@.
-- If the parameter is not specified, the default value is @metered@.
--
-- If you have purchased unmetered device slots, you must set this
-- parameter to @unmetered@ to make use of them. Otherwise, your run counts
-- against your metered time.
--
-- 'customerArtifactPaths', 'scheduleRunConfiguration_customerArtifactPaths' - Input @CustomerArtifactPaths@ object for the scheduled run
-- configuration.
--
-- 'extraDataPackageArn', 'scheduleRunConfiguration_extraDataPackageArn' - The ARN of the extra data for the run. The extra data is a .zip file
-- that AWS Device Farm extracts to external data for Android or the app\'s
-- sandbox for iOS.
--
-- 'locale', 'scheduleRunConfiguration_locale' - Information about the locale that is used for the run.
--
-- 'location', 'scheduleRunConfiguration_location' - Information about the location that is used for the run.
--
-- 'networkProfileArn', 'scheduleRunConfiguration_networkProfileArn' - Reserved for internal use.
--
-- 'radios', 'scheduleRunConfiguration_radios' - Information about the radio states for the run.
--
-- 'vpceConfigurationArns', 'scheduleRunConfiguration_vpceConfigurationArns' - An array of ARNs for your VPC endpoint configurations.
newScheduleRunConfiguration ::
  ScheduleRunConfiguration
newScheduleRunConfiguration :: ScheduleRunConfiguration
newScheduleRunConfiguration =
  ScheduleRunConfiguration'
    { $sel:auxiliaryApps:ScheduleRunConfiguration' :: Maybe [Text]
auxiliaryApps =
        forall a. Maybe a
Prelude.Nothing,
      $sel:billingMethod:ScheduleRunConfiguration' :: Maybe BillingMethod
billingMethod = forall a. Maybe a
Prelude.Nothing,
      $sel:customerArtifactPaths:ScheduleRunConfiguration' :: Maybe CustomerArtifactPaths
customerArtifactPaths = forall a. Maybe a
Prelude.Nothing,
      $sel:extraDataPackageArn:ScheduleRunConfiguration' :: Maybe Text
extraDataPackageArn = forall a. Maybe a
Prelude.Nothing,
      $sel:locale:ScheduleRunConfiguration' :: Maybe Text
locale = forall a. Maybe a
Prelude.Nothing,
      $sel:location:ScheduleRunConfiguration' :: Maybe Location
location = forall a. Maybe a
Prelude.Nothing,
      $sel:networkProfileArn:ScheduleRunConfiguration' :: Maybe Text
networkProfileArn = forall a. Maybe a
Prelude.Nothing,
      $sel:radios:ScheduleRunConfiguration' :: Maybe Radios
radios = forall a. Maybe a
Prelude.Nothing,
      $sel:vpceConfigurationArns:ScheduleRunConfiguration' :: Maybe [Text]
vpceConfigurationArns = forall a. Maybe a
Prelude.Nothing
    }

-- | A list of upload ARNs for app packages to be installed with your app.
scheduleRunConfiguration_auxiliaryApps :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe [Prelude.Text])
scheduleRunConfiguration_auxiliaryApps :: Lens' ScheduleRunConfiguration (Maybe [Text])
scheduleRunConfiguration_auxiliaryApps = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe [Text]
auxiliaryApps :: Maybe [Text]
$sel:auxiliaryApps:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
auxiliaryApps} -> Maybe [Text]
auxiliaryApps) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe [Text]
a -> ScheduleRunConfiguration
s {$sel:auxiliaryApps:ScheduleRunConfiguration' :: Maybe [Text]
auxiliaryApps = Maybe [Text]
a} :: ScheduleRunConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the billing method for a test run: @metered@ or @unmetered@.
-- If the parameter is not specified, the default value is @metered@.
--
-- If you have purchased unmetered device slots, you must set this
-- parameter to @unmetered@ to make use of them. Otherwise, your run counts
-- against your metered time.
scheduleRunConfiguration_billingMethod :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe BillingMethod)
scheduleRunConfiguration_billingMethod :: Lens' ScheduleRunConfiguration (Maybe BillingMethod)
scheduleRunConfiguration_billingMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe BillingMethod
billingMethod :: Maybe BillingMethod
$sel:billingMethod:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe BillingMethod
billingMethod} -> Maybe BillingMethod
billingMethod) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe BillingMethod
a -> ScheduleRunConfiguration
s {$sel:billingMethod:ScheduleRunConfiguration' :: Maybe BillingMethod
billingMethod = Maybe BillingMethod
a} :: ScheduleRunConfiguration)

-- | Input @CustomerArtifactPaths@ object for the scheduled run
-- configuration.
scheduleRunConfiguration_customerArtifactPaths :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe CustomerArtifactPaths)
scheduleRunConfiguration_customerArtifactPaths :: Lens' ScheduleRunConfiguration (Maybe CustomerArtifactPaths)
scheduleRunConfiguration_customerArtifactPaths = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe CustomerArtifactPaths
customerArtifactPaths :: Maybe CustomerArtifactPaths
$sel:customerArtifactPaths:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
customerArtifactPaths} -> Maybe CustomerArtifactPaths
customerArtifactPaths) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe CustomerArtifactPaths
a -> ScheduleRunConfiguration
s {$sel:customerArtifactPaths:ScheduleRunConfiguration' :: Maybe CustomerArtifactPaths
customerArtifactPaths = Maybe CustomerArtifactPaths
a} :: ScheduleRunConfiguration)

-- | The ARN of the extra data for the run. The extra data is a .zip file
-- that AWS Device Farm extracts to external data for Android or the app\'s
-- sandbox for iOS.
scheduleRunConfiguration_extraDataPackageArn :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Prelude.Text)
scheduleRunConfiguration_extraDataPackageArn :: Lens' ScheduleRunConfiguration (Maybe Text)
scheduleRunConfiguration_extraDataPackageArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe Text
extraDataPackageArn :: Maybe Text
$sel:extraDataPackageArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
extraDataPackageArn} -> Maybe Text
extraDataPackageArn) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe Text
a -> ScheduleRunConfiguration
s {$sel:extraDataPackageArn:ScheduleRunConfiguration' :: Maybe Text
extraDataPackageArn = Maybe Text
a} :: ScheduleRunConfiguration)

-- | Information about the locale that is used for the run.
scheduleRunConfiguration_locale :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Prelude.Text)
scheduleRunConfiguration_locale :: Lens' ScheduleRunConfiguration (Maybe Text)
scheduleRunConfiguration_locale = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe Text
locale :: Maybe Text
$sel:locale:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
locale} -> Maybe Text
locale) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe Text
a -> ScheduleRunConfiguration
s {$sel:locale:ScheduleRunConfiguration' :: Maybe Text
locale = Maybe Text
a} :: ScheduleRunConfiguration)

-- | Information about the location that is used for the run.
scheduleRunConfiguration_location :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Location)
scheduleRunConfiguration_location :: Lens' ScheduleRunConfiguration (Maybe Location)
scheduleRunConfiguration_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe Location
location :: Maybe Location
$sel:location:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Location
location} -> Maybe Location
location) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe Location
a -> ScheduleRunConfiguration
s {$sel:location:ScheduleRunConfiguration' :: Maybe Location
location = Maybe Location
a} :: ScheduleRunConfiguration)

-- | Reserved for internal use.
scheduleRunConfiguration_networkProfileArn :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Prelude.Text)
scheduleRunConfiguration_networkProfileArn :: Lens' ScheduleRunConfiguration (Maybe Text)
scheduleRunConfiguration_networkProfileArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe Text
networkProfileArn :: Maybe Text
$sel:networkProfileArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
networkProfileArn} -> Maybe Text
networkProfileArn) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe Text
a -> ScheduleRunConfiguration
s {$sel:networkProfileArn:ScheduleRunConfiguration' :: Maybe Text
networkProfileArn = Maybe Text
a} :: ScheduleRunConfiguration)

-- | Information about the radio states for the run.
scheduleRunConfiguration_radios :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Radios)
scheduleRunConfiguration_radios :: Lens' ScheduleRunConfiguration (Maybe Radios)
scheduleRunConfiguration_radios = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe Radios
radios :: Maybe Radios
$sel:radios:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Radios
radios} -> Maybe Radios
radios) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe Radios
a -> ScheduleRunConfiguration
s {$sel:radios:ScheduleRunConfiguration' :: Maybe Radios
radios = Maybe Radios
a} :: ScheduleRunConfiguration)

-- | An array of ARNs for your VPC endpoint configurations.
scheduleRunConfiguration_vpceConfigurationArns :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe [Prelude.Text])
scheduleRunConfiguration_vpceConfigurationArns :: Lens' ScheduleRunConfiguration (Maybe [Text])
scheduleRunConfiguration_vpceConfigurationArns = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ScheduleRunConfiguration' {Maybe [Text]
vpceConfigurationArns :: Maybe [Text]
$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
vpceConfigurationArns} -> Maybe [Text]
vpceConfigurationArns) (\s :: ScheduleRunConfiguration
s@ScheduleRunConfiguration' {} Maybe [Text]
a -> ScheduleRunConfiguration
s {$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: Maybe [Text]
vpceConfigurationArns = Maybe [Text]
a} :: ScheduleRunConfiguration) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Prelude.Hashable ScheduleRunConfiguration where
  hashWithSalt :: Int -> ScheduleRunConfiguration -> Int
hashWithSalt Int
_salt ScheduleRunConfiguration' {Maybe [Text]
Maybe Text
Maybe BillingMethod
Maybe CustomerArtifactPaths
Maybe Location
Maybe Radios
vpceConfigurationArns :: Maybe [Text]
radios :: Maybe Radios
networkProfileArn :: Maybe Text
location :: Maybe Location
locale :: Maybe Text
extraDataPackageArn :: Maybe Text
customerArtifactPaths :: Maybe CustomerArtifactPaths
billingMethod :: Maybe BillingMethod
auxiliaryApps :: Maybe [Text]
$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
$sel:radios:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Radios
$sel:networkProfileArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:location:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Location
$sel:locale:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:extraDataPackageArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:customerArtifactPaths:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
$sel:billingMethod:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe BillingMethod
$sel:auxiliaryApps:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
auxiliaryApps
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BillingMethod
billingMethod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CustomerArtifactPaths
customerArtifactPaths
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
extraDataPackageArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
locale
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Location
location
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
networkProfileArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Radios
radios
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
vpceConfigurationArns

instance Prelude.NFData ScheduleRunConfiguration where
  rnf :: ScheduleRunConfiguration -> ()
rnf ScheduleRunConfiguration' {Maybe [Text]
Maybe Text
Maybe BillingMethod
Maybe CustomerArtifactPaths
Maybe Location
Maybe Radios
vpceConfigurationArns :: Maybe [Text]
radios :: Maybe Radios
networkProfileArn :: Maybe Text
location :: Maybe Location
locale :: Maybe Text
extraDataPackageArn :: Maybe Text
customerArtifactPaths :: Maybe CustomerArtifactPaths
billingMethod :: Maybe BillingMethod
auxiliaryApps :: Maybe [Text]
$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
$sel:radios:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Radios
$sel:networkProfileArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:location:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Location
$sel:locale:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:extraDataPackageArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:customerArtifactPaths:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
$sel:billingMethod:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe BillingMethod
$sel:auxiliaryApps:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
auxiliaryApps
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BillingMethod
billingMethod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomerArtifactPaths
customerArtifactPaths
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
extraDataPackageArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
locale
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Location
location
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
networkProfileArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Radios
radios
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
vpceConfigurationArns

instance Data.ToJSON ScheduleRunConfiguration where
  toJSON :: ScheduleRunConfiguration -> Value
toJSON ScheduleRunConfiguration' {Maybe [Text]
Maybe Text
Maybe BillingMethod
Maybe CustomerArtifactPaths
Maybe Location
Maybe Radios
vpceConfigurationArns :: Maybe [Text]
radios :: Maybe Radios
networkProfileArn :: Maybe Text
location :: Maybe Location
locale :: Maybe Text
extraDataPackageArn :: Maybe Text
customerArtifactPaths :: Maybe CustomerArtifactPaths
billingMethod :: Maybe BillingMethod
auxiliaryApps :: Maybe [Text]
$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
$sel:radios:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Radios
$sel:networkProfileArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:location:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Location
$sel:locale:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:extraDataPackageArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:customerArtifactPaths:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
$sel:billingMethod:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe BillingMethod
$sel:auxiliaryApps:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"auxiliaryApps" 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]
auxiliaryApps,
            (Key
"billingMethod" 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 BillingMethod
billingMethod,
            (Key
"customerArtifactPaths" 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 CustomerArtifactPaths
customerArtifactPaths,
            (Key
"extraDataPackageArn" 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
extraDataPackageArn,
            (Key
"locale" 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
locale,
            (Key
"location" 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 Location
location,
            (Key
"networkProfileArn" 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
networkProfileArn,
            (Key
"radios" 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 Radios
radios,
            (Key
"vpceConfigurationArns" 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]
vpceConfigurationArns
          ]
      )