{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.DeviceFarm.Types.ScheduleRunConfiguration where

import qualified Amazonka.Core as Core
import Amazonka.DeviceFarm.Types.BillingMethod
import Amazonka.DeviceFarm.Types.CustomerArtifactPaths
import Amazonka.DeviceFarm.Types.Location
import Amazonka.DeviceFarm.Types.Radios
import qualified Amazonka.Lens as Lens
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'
  { -- | 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,
    -- | Information about the radio states for the run.
    ScheduleRunConfiguration -> Maybe Radios
radios :: Prelude.Maybe Radios,
    -- | Information about the location that is used for the run.
    ScheduleRunConfiguration -> Maybe Location
location :: Prelude.Maybe Location,
    -- | Information about the locale that is used for the run.
    ScheduleRunConfiguration -> Maybe Text
locale :: Prelude.Maybe Prelude.Text,
    -- | Reserved for internal use.
    ScheduleRunConfiguration -> Maybe Text
networkProfileArn :: Prelude.Maybe Prelude.Text,
    -- | 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,
    -- | A list of upload ARNs for app packages to be installed with your app.
    ScheduleRunConfiguration -> Maybe [Text]
auxiliaryApps :: Prelude.Maybe [Prelude.Text],
    -- | An array of ARNs for your VPC endpoint configurations.
    ScheduleRunConfiguration -> Maybe [Text]
vpceConfigurationArns :: Prelude.Maybe [Prelude.Text]
  }
  deriving (ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool
(ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool)
-> (ScheduleRunConfiguration -> ScheduleRunConfiguration -> Bool)
-> Eq ScheduleRunConfiguration
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]
(Int -> ReadS ScheduleRunConfiguration)
-> ReadS [ScheduleRunConfiguration]
-> ReadPrec ScheduleRunConfiguration
-> ReadPrec [ScheduleRunConfiguration]
-> Read 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
(Int -> ScheduleRunConfiguration -> ShowS)
-> (ScheduleRunConfiguration -> String)
-> ([ScheduleRunConfiguration] -> ShowS)
-> Show ScheduleRunConfiguration
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.
 ScheduleRunConfiguration -> Rep ScheduleRunConfiguration x)
-> (forall x.
    Rep ScheduleRunConfiguration x -> ScheduleRunConfiguration)
-> Generic ScheduleRunConfiguration
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:
--
-- '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.
--
-- 'radios', 'scheduleRunConfiguration_radios' - Information about the radio states for the run.
--
-- 'location', 'scheduleRunConfiguration_location' - Information about the location that is used for the run.
--
-- 'locale', 'scheduleRunConfiguration_locale' - Information about the locale that is used for the run.
--
-- 'networkProfileArn', 'scheduleRunConfiguration_networkProfileArn' - Reserved for internal use.
--
-- '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.
--
-- 'auxiliaryApps', 'scheduleRunConfiguration_auxiliaryApps' - A list of upload ARNs for app packages to be installed with your app.
--
-- 'vpceConfigurationArns', 'scheduleRunConfiguration_vpceConfigurationArns' - An array of ARNs for your VPC endpoint configurations.
newScheduleRunConfiguration ::
  ScheduleRunConfiguration
newScheduleRunConfiguration :: ScheduleRunConfiguration
newScheduleRunConfiguration =
  ScheduleRunConfiguration' :: Maybe BillingMethod
-> Maybe CustomerArtifactPaths
-> Maybe Radios
-> Maybe Location
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe [Text]
-> ScheduleRunConfiguration
ScheduleRunConfiguration'
    { $sel:billingMethod:ScheduleRunConfiguration' :: Maybe BillingMethod
billingMethod =
        Maybe BillingMethod
forall a. Maybe a
Prelude.Nothing,
      $sel:customerArtifactPaths:ScheduleRunConfiguration' :: Maybe CustomerArtifactPaths
customerArtifactPaths = Maybe CustomerArtifactPaths
forall a. Maybe a
Prelude.Nothing,
      $sel:radios:ScheduleRunConfiguration' :: Maybe Radios
radios = Maybe Radios
forall a. Maybe a
Prelude.Nothing,
      $sel:location:ScheduleRunConfiguration' :: Maybe Location
location = Maybe Location
forall a. Maybe a
Prelude.Nothing,
      $sel:locale:ScheduleRunConfiguration' :: Maybe Text
locale = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:networkProfileArn:ScheduleRunConfiguration' :: Maybe Text
networkProfileArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:extraDataPackageArn:ScheduleRunConfiguration' :: Maybe Text
extraDataPackageArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:auxiliaryApps:ScheduleRunConfiguration' :: Maybe [Text]
auxiliaryApps = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:vpceConfigurationArns:ScheduleRunConfiguration' :: Maybe [Text]
vpceConfigurationArns = Maybe [Text]
forall a. Maybe a
Prelude.Nothing
    }

-- | 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 :: (Maybe BillingMethod -> f (Maybe BillingMethod))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_billingMethod = (ScheduleRunConfiguration -> Maybe BillingMethod)
-> (ScheduleRunConfiguration
    -> Maybe BillingMethod -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe BillingMethod)
     (Maybe 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 :: (Maybe CustomerArtifactPaths -> f (Maybe CustomerArtifactPaths))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_customerArtifactPaths = (ScheduleRunConfiguration -> Maybe CustomerArtifactPaths)
-> (ScheduleRunConfiguration
    -> Maybe CustomerArtifactPaths -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe CustomerArtifactPaths)
     (Maybe 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)

-- | Information about the radio states for the run.
scheduleRunConfiguration_radios :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Radios)
scheduleRunConfiguration_radios :: (Maybe Radios -> f (Maybe Radios))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_radios = (ScheduleRunConfiguration -> Maybe Radios)
-> (ScheduleRunConfiguration
    -> Maybe Radios -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe Radios)
     (Maybe 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)

-- | Information about the location that is used for the run.
scheduleRunConfiguration_location :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Location)
scheduleRunConfiguration_location :: (Maybe Location -> f (Maybe Location))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_location = (ScheduleRunConfiguration -> Maybe Location)
-> (ScheduleRunConfiguration
    -> Maybe Location -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe Location)
     (Maybe 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)

-- | Information about the locale that is used for the run.
scheduleRunConfiguration_locale :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Prelude.Text)
scheduleRunConfiguration_locale :: (Maybe Text -> f (Maybe Text))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_locale = (ScheduleRunConfiguration -> Maybe Text)
-> (ScheduleRunConfiguration
    -> Maybe Text -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe Text)
     (Maybe Text)
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)

-- | Reserved for internal use.
scheduleRunConfiguration_networkProfileArn :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe Prelude.Text)
scheduleRunConfiguration_networkProfileArn :: (Maybe Text -> f (Maybe Text))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_networkProfileArn = (ScheduleRunConfiguration -> Maybe Text)
-> (ScheduleRunConfiguration
    -> Maybe Text -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe Text)
     (Maybe Text)
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)

-- | 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 :: (Maybe Text -> f (Maybe Text))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_extraDataPackageArn = (ScheduleRunConfiguration -> Maybe Text)
-> (ScheduleRunConfiguration
    -> Maybe Text -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe Text)
     (Maybe Text)
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)

-- | 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 :: (Maybe [Text] -> f (Maybe [Text]))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_auxiliaryApps = (ScheduleRunConfiguration -> Maybe [Text])
-> (ScheduleRunConfiguration
    -> Maybe [Text] -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe [Text])
     (Maybe [Text])
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) ((Maybe [Text] -> f (Maybe [Text]))
 -> ScheduleRunConfiguration -> f ScheduleRunConfiguration)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> ScheduleRunConfiguration
-> f ScheduleRunConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An array of ARNs for your VPC endpoint configurations.
scheduleRunConfiguration_vpceConfigurationArns :: Lens.Lens' ScheduleRunConfiguration (Prelude.Maybe [Prelude.Text])
scheduleRunConfiguration_vpceConfigurationArns :: (Maybe [Text] -> f (Maybe [Text]))
-> ScheduleRunConfiguration -> f ScheduleRunConfiguration
scheduleRunConfiguration_vpceConfigurationArns = (ScheduleRunConfiguration -> Maybe [Text])
-> (ScheduleRunConfiguration
    -> Maybe [Text] -> ScheduleRunConfiguration)
-> Lens
     ScheduleRunConfiguration
     ScheduleRunConfiguration
     (Maybe [Text])
     (Maybe [Text])
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) ((Maybe [Text] -> f (Maybe [Text]))
 -> ScheduleRunConfiguration -> f ScheduleRunConfiguration)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> ScheduleRunConfiguration
-> f ScheduleRunConfiguration
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
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 AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Prelude.Hashable ScheduleRunConfiguration

instance Prelude.NFData ScheduleRunConfiguration

instance Core.ToJSON ScheduleRunConfiguration where
  toJSON :: ScheduleRunConfiguration -> Value
toJSON ScheduleRunConfiguration' {Maybe [Text]
Maybe Text
Maybe BillingMethod
Maybe CustomerArtifactPaths
Maybe Location
Maybe Radios
vpceConfigurationArns :: Maybe [Text]
auxiliaryApps :: Maybe [Text]
extraDataPackageArn :: Maybe Text
networkProfileArn :: Maybe Text
locale :: Maybe Text
location :: Maybe Location
radios :: Maybe Radios
customerArtifactPaths :: Maybe CustomerArtifactPaths
billingMethod :: Maybe BillingMethod
$sel:vpceConfigurationArns:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
$sel:auxiliaryApps:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe [Text]
$sel:extraDataPackageArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:networkProfileArn:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:locale:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Text
$sel:location:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Location
$sel:radios:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe Radios
$sel:customerArtifactPaths:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe CustomerArtifactPaths
$sel:billingMethod:ScheduleRunConfiguration' :: ScheduleRunConfiguration -> Maybe BillingMethod
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"billingMethod" Text -> BillingMethod -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (BillingMethod -> Pair) -> Maybe BillingMethod -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BillingMethod
billingMethod,
            (Text
"customerArtifactPaths" Text -> CustomerArtifactPaths -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (CustomerArtifactPaths -> Pair)
-> Maybe CustomerArtifactPaths -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CustomerArtifactPaths
customerArtifactPaths,
            (Text
"radios" Text -> Radios -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Radios -> Pair) -> Maybe Radios -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Radios
radios,
            (Text
"location" Text -> Location -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Location -> Pair) -> Maybe Location -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Location
location,
            (Text
"locale" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
locale,
            (Text
"networkProfileArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
networkProfileArn,
            (Text
"extraDataPackageArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
extraDataPackageArn,
            (Text
"auxiliaryApps" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
auxiliaryApps,
            (Text
"vpceConfigurationArns" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
vpceConfigurationArns
          ]
      )