{-# 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.AppFlow.Types.SourceConnectorProperties
-- 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.AppFlow.Types.SourceConnectorProperties where

import Amazonka.AppFlow.Types.AmplitudeSourceProperties
import Amazonka.AppFlow.Types.DatadogSourceProperties
import Amazonka.AppFlow.Types.DynatraceSourceProperties
import Amazonka.AppFlow.Types.GoogleAnalyticsSourceProperties
import Amazonka.AppFlow.Types.InforNexusSourceProperties
import Amazonka.AppFlow.Types.MarketoSourceProperties
import Amazonka.AppFlow.Types.S3SourceProperties
import Amazonka.AppFlow.Types.SAPODataSourceProperties
import Amazonka.AppFlow.Types.SalesforceSourceProperties
import Amazonka.AppFlow.Types.ServiceNowSourceProperties
import Amazonka.AppFlow.Types.SingularSourceProperties
import Amazonka.AppFlow.Types.SlackSourceProperties
import Amazonka.AppFlow.Types.TrendmicroSourceProperties
import Amazonka.AppFlow.Types.VeevaSourceProperties
import Amazonka.AppFlow.Types.ZendeskSourceProperties
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Specifies the information that is required to query a particular
-- connector.
--
-- /See:/ 'newSourceConnectorProperties' smart constructor.
data SourceConnectorProperties = SourceConnectorProperties'
  { -- | Specifies the information that is required for querying ServiceNow.
    SourceConnectorProperties -> Maybe ServiceNowSourceProperties
serviceNow :: Prelude.Maybe ServiceNowSourceProperties,
    -- | Specifies the information that is required for querying Dynatrace.
    SourceConnectorProperties -> Maybe DynatraceSourceProperties
dynatrace :: Prelude.Maybe DynatraceSourceProperties,
    -- | Specifies the information that is required for querying Marketo.
    SourceConnectorProperties -> Maybe MarketoSourceProperties
marketo :: Prelude.Maybe MarketoSourceProperties,
    -- | Specifies the information that is required for querying Slack.
    SourceConnectorProperties -> Maybe SlackSourceProperties
slack :: Prelude.Maybe SlackSourceProperties,
    -- | Specifies the information that is required for querying Singular.
    SourceConnectorProperties -> Maybe SingularSourceProperties
singular :: Prelude.Maybe SingularSourceProperties,
    -- | Specifies the information that is required for querying Infor Nexus.
    SourceConnectorProperties -> Maybe InforNexusSourceProperties
inforNexus :: Prelude.Maybe InforNexusSourceProperties,
    -- | Specifies the information that is required for querying Amplitude.
    SourceConnectorProperties -> Maybe AmplitudeSourceProperties
amplitude :: Prelude.Maybe AmplitudeSourceProperties,
    -- | Specifies the information that is required for querying Datadog.
    SourceConnectorProperties -> Maybe DatadogSourceProperties
datadog :: Prelude.Maybe DatadogSourceProperties,
    -- | Specifies the information that is required for querying Google
    -- Analytics.
    SourceConnectorProperties -> Maybe GoogleAnalyticsSourceProperties
googleAnalytics :: Prelude.Maybe GoogleAnalyticsSourceProperties,
    SourceConnectorProperties -> Maybe SAPODataSourceProperties
sAPOData :: Prelude.Maybe SAPODataSourceProperties,
    -- | Specifies the information that is required for querying Salesforce.
    SourceConnectorProperties -> Maybe SalesforceSourceProperties
salesforce :: Prelude.Maybe SalesforceSourceProperties,
    -- | Specifies the information that is required for querying Zendesk.
    SourceConnectorProperties -> Maybe ZendeskSourceProperties
zendesk :: Prelude.Maybe ZendeskSourceProperties,
    -- | Specifies the information that is required for querying Amazon S3.
    SourceConnectorProperties -> Maybe S3SourceProperties
s3 :: Prelude.Maybe S3SourceProperties,
    -- | Specifies the information that is required for querying Trend Micro.
    SourceConnectorProperties -> Maybe TrendmicroSourceProperties
trendmicro :: Prelude.Maybe TrendmicroSourceProperties,
    -- | Specifies the information that is required for querying Veeva.
    SourceConnectorProperties -> Maybe VeevaSourceProperties
veeva :: Prelude.Maybe VeevaSourceProperties
  }
  deriving (SourceConnectorProperties -> SourceConnectorProperties -> Bool
(SourceConnectorProperties -> SourceConnectorProperties -> Bool)
-> (SourceConnectorProperties -> SourceConnectorProperties -> Bool)
-> Eq SourceConnectorProperties
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SourceConnectorProperties -> SourceConnectorProperties -> Bool
$c/= :: SourceConnectorProperties -> SourceConnectorProperties -> Bool
== :: SourceConnectorProperties -> SourceConnectorProperties -> Bool
$c== :: SourceConnectorProperties -> SourceConnectorProperties -> Bool
Prelude.Eq, ReadPrec [SourceConnectorProperties]
ReadPrec SourceConnectorProperties
Int -> ReadS SourceConnectorProperties
ReadS [SourceConnectorProperties]
(Int -> ReadS SourceConnectorProperties)
-> ReadS [SourceConnectorProperties]
-> ReadPrec SourceConnectorProperties
-> ReadPrec [SourceConnectorProperties]
-> Read SourceConnectorProperties
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SourceConnectorProperties]
$creadListPrec :: ReadPrec [SourceConnectorProperties]
readPrec :: ReadPrec SourceConnectorProperties
$creadPrec :: ReadPrec SourceConnectorProperties
readList :: ReadS [SourceConnectorProperties]
$creadList :: ReadS [SourceConnectorProperties]
readsPrec :: Int -> ReadS SourceConnectorProperties
$creadsPrec :: Int -> ReadS SourceConnectorProperties
Prelude.Read, Int -> SourceConnectorProperties -> ShowS
[SourceConnectorProperties] -> ShowS
SourceConnectorProperties -> String
(Int -> SourceConnectorProperties -> ShowS)
-> (SourceConnectorProperties -> String)
-> ([SourceConnectorProperties] -> ShowS)
-> Show SourceConnectorProperties
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SourceConnectorProperties] -> ShowS
$cshowList :: [SourceConnectorProperties] -> ShowS
show :: SourceConnectorProperties -> String
$cshow :: SourceConnectorProperties -> String
showsPrec :: Int -> SourceConnectorProperties -> ShowS
$cshowsPrec :: Int -> SourceConnectorProperties -> ShowS
Prelude.Show, (forall x.
 SourceConnectorProperties -> Rep SourceConnectorProperties x)
-> (forall x.
    Rep SourceConnectorProperties x -> SourceConnectorProperties)
-> Generic SourceConnectorProperties
forall x.
Rep SourceConnectorProperties x -> SourceConnectorProperties
forall x.
SourceConnectorProperties -> Rep SourceConnectorProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SourceConnectorProperties x -> SourceConnectorProperties
$cfrom :: forall x.
SourceConnectorProperties -> Rep SourceConnectorProperties x
Prelude.Generic)

-- |
-- Create a value of 'SourceConnectorProperties' 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:
--
-- 'serviceNow', 'sourceConnectorProperties_serviceNow' - Specifies the information that is required for querying ServiceNow.
--
-- 'dynatrace', 'sourceConnectorProperties_dynatrace' - Specifies the information that is required for querying Dynatrace.
--
-- 'marketo', 'sourceConnectorProperties_marketo' - Specifies the information that is required for querying Marketo.
--
-- 'slack', 'sourceConnectorProperties_slack' - Specifies the information that is required for querying Slack.
--
-- 'singular', 'sourceConnectorProperties_singular' - Specifies the information that is required for querying Singular.
--
-- 'inforNexus', 'sourceConnectorProperties_inforNexus' - Specifies the information that is required for querying Infor Nexus.
--
-- 'amplitude', 'sourceConnectorProperties_amplitude' - Specifies the information that is required for querying Amplitude.
--
-- 'datadog', 'sourceConnectorProperties_datadog' - Specifies the information that is required for querying Datadog.
--
-- 'googleAnalytics', 'sourceConnectorProperties_googleAnalytics' - Specifies the information that is required for querying Google
-- Analytics.
--
-- 'sAPOData', 'sourceConnectorProperties_sAPOData' - Undocumented member.
--
-- 'salesforce', 'sourceConnectorProperties_salesforce' - Specifies the information that is required for querying Salesforce.
--
-- 'zendesk', 'sourceConnectorProperties_zendesk' - Specifies the information that is required for querying Zendesk.
--
-- 's3', 'sourceConnectorProperties_s3' - Specifies the information that is required for querying Amazon S3.
--
-- 'trendmicro', 'sourceConnectorProperties_trendmicro' - Specifies the information that is required for querying Trend Micro.
--
-- 'veeva', 'sourceConnectorProperties_veeva' - Specifies the information that is required for querying Veeva.
newSourceConnectorProperties ::
  SourceConnectorProperties
newSourceConnectorProperties :: SourceConnectorProperties
newSourceConnectorProperties =
  SourceConnectorProperties' :: Maybe ServiceNowSourceProperties
-> Maybe DynatraceSourceProperties
-> Maybe MarketoSourceProperties
-> Maybe SlackSourceProperties
-> Maybe SingularSourceProperties
-> Maybe InforNexusSourceProperties
-> Maybe AmplitudeSourceProperties
-> Maybe DatadogSourceProperties
-> Maybe GoogleAnalyticsSourceProperties
-> Maybe SAPODataSourceProperties
-> Maybe SalesforceSourceProperties
-> Maybe ZendeskSourceProperties
-> Maybe S3SourceProperties
-> Maybe TrendmicroSourceProperties
-> Maybe VeevaSourceProperties
-> SourceConnectorProperties
SourceConnectorProperties'
    { $sel:serviceNow:SourceConnectorProperties' :: Maybe ServiceNowSourceProperties
serviceNow =
        Maybe ServiceNowSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:dynatrace:SourceConnectorProperties' :: Maybe DynatraceSourceProperties
dynatrace = Maybe DynatraceSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:marketo:SourceConnectorProperties' :: Maybe MarketoSourceProperties
marketo = Maybe MarketoSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:slack:SourceConnectorProperties' :: Maybe SlackSourceProperties
slack = Maybe SlackSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:singular:SourceConnectorProperties' :: Maybe SingularSourceProperties
singular = Maybe SingularSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:inforNexus:SourceConnectorProperties' :: Maybe InforNexusSourceProperties
inforNexus = Maybe InforNexusSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:amplitude:SourceConnectorProperties' :: Maybe AmplitudeSourceProperties
amplitude = Maybe AmplitudeSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:datadog:SourceConnectorProperties' :: Maybe DatadogSourceProperties
datadog = Maybe DatadogSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:googleAnalytics:SourceConnectorProperties' :: Maybe GoogleAnalyticsSourceProperties
googleAnalytics = Maybe GoogleAnalyticsSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:sAPOData:SourceConnectorProperties' :: Maybe SAPODataSourceProperties
sAPOData = Maybe SAPODataSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:salesforce:SourceConnectorProperties' :: Maybe SalesforceSourceProperties
salesforce = Maybe SalesforceSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:zendesk:SourceConnectorProperties' :: Maybe ZendeskSourceProperties
zendesk = Maybe ZendeskSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:s3:SourceConnectorProperties' :: Maybe S3SourceProperties
s3 = Maybe S3SourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:trendmicro:SourceConnectorProperties' :: Maybe TrendmicroSourceProperties
trendmicro = Maybe TrendmicroSourceProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:veeva:SourceConnectorProperties' :: Maybe VeevaSourceProperties
veeva = Maybe VeevaSourceProperties
forall a. Maybe a
Prelude.Nothing
    }

-- | Specifies the information that is required for querying ServiceNow.
sourceConnectorProperties_serviceNow :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe ServiceNowSourceProperties)
sourceConnectorProperties_serviceNow :: (Maybe ServiceNowSourceProperties
 -> f (Maybe ServiceNowSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_serviceNow = (SourceConnectorProperties -> Maybe ServiceNowSourceProperties)
-> (SourceConnectorProperties
    -> Maybe ServiceNowSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe ServiceNowSourceProperties)
     (Maybe ServiceNowSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe ServiceNowSourceProperties
serviceNow :: Maybe ServiceNowSourceProperties
$sel:serviceNow:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe ServiceNowSourceProperties
serviceNow} -> Maybe ServiceNowSourceProperties
serviceNow) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe ServiceNowSourceProperties
a -> SourceConnectorProperties
s {$sel:serviceNow:SourceConnectorProperties' :: Maybe ServiceNowSourceProperties
serviceNow = Maybe ServiceNowSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Dynatrace.
sourceConnectorProperties_dynatrace :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe DynatraceSourceProperties)
sourceConnectorProperties_dynatrace :: (Maybe DynatraceSourceProperties
 -> f (Maybe DynatraceSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_dynatrace = (SourceConnectorProperties -> Maybe DynatraceSourceProperties)
-> (SourceConnectorProperties
    -> Maybe DynatraceSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe DynatraceSourceProperties)
     (Maybe DynatraceSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe DynatraceSourceProperties
dynatrace :: Maybe DynatraceSourceProperties
$sel:dynatrace:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe DynatraceSourceProperties
dynatrace} -> Maybe DynatraceSourceProperties
dynatrace) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe DynatraceSourceProperties
a -> SourceConnectorProperties
s {$sel:dynatrace:SourceConnectorProperties' :: Maybe DynatraceSourceProperties
dynatrace = Maybe DynatraceSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Marketo.
sourceConnectorProperties_marketo :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe MarketoSourceProperties)
sourceConnectorProperties_marketo :: (Maybe MarketoSourceProperties
 -> f (Maybe MarketoSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_marketo = (SourceConnectorProperties -> Maybe MarketoSourceProperties)
-> (SourceConnectorProperties
    -> Maybe MarketoSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe MarketoSourceProperties)
     (Maybe MarketoSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe MarketoSourceProperties
marketo :: Maybe MarketoSourceProperties
$sel:marketo:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe MarketoSourceProperties
marketo} -> Maybe MarketoSourceProperties
marketo) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe MarketoSourceProperties
a -> SourceConnectorProperties
s {$sel:marketo:SourceConnectorProperties' :: Maybe MarketoSourceProperties
marketo = Maybe MarketoSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Slack.
sourceConnectorProperties_slack :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe SlackSourceProperties)
sourceConnectorProperties_slack :: (Maybe SlackSourceProperties -> f (Maybe SlackSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_slack = (SourceConnectorProperties -> Maybe SlackSourceProperties)
-> (SourceConnectorProperties
    -> Maybe SlackSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe SlackSourceProperties)
     (Maybe SlackSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe SlackSourceProperties
slack :: Maybe SlackSourceProperties
$sel:slack:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SlackSourceProperties
slack} -> Maybe SlackSourceProperties
slack) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe SlackSourceProperties
a -> SourceConnectorProperties
s {$sel:slack:SourceConnectorProperties' :: Maybe SlackSourceProperties
slack = Maybe SlackSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Singular.
sourceConnectorProperties_singular :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe SingularSourceProperties)
sourceConnectorProperties_singular :: (Maybe SingularSourceProperties
 -> f (Maybe SingularSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_singular = (SourceConnectorProperties -> Maybe SingularSourceProperties)
-> (SourceConnectorProperties
    -> Maybe SingularSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe SingularSourceProperties)
     (Maybe SingularSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe SingularSourceProperties
singular :: Maybe SingularSourceProperties
$sel:singular:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SingularSourceProperties
singular} -> Maybe SingularSourceProperties
singular) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe SingularSourceProperties
a -> SourceConnectorProperties
s {$sel:singular:SourceConnectorProperties' :: Maybe SingularSourceProperties
singular = Maybe SingularSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Infor Nexus.
sourceConnectorProperties_inforNexus :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe InforNexusSourceProperties)
sourceConnectorProperties_inforNexus :: (Maybe InforNexusSourceProperties
 -> f (Maybe InforNexusSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_inforNexus = (SourceConnectorProperties -> Maybe InforNexusSourceProperties)
-> (SourceConnectorProperties
    -> Maybe InforNexusSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe InforNexusSourceProperties)
     (Maybe InforNexusSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe InforNexusSourceProperties
inforNexus :: Maybe InforNexusSourceProperties
$sel:inforNexus:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe InforNexusSourceProperties
inforNexus} -> Maybe InforNexusSourceProperties
inforNexus) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe InforNexusSourceProperties
a -> SourceConnectorProperties
s {$sel:inforNexus:SourceConnectorProperties' :: Maybe InforNexusSourceProperties
inforNexus = Maybe InforNexusSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Amplitude.
sourceConnectorProperties_amplitude :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe AmplitudeSourceProperties)
sourceConnectorProperties_amplitude :: (Maybe AmplitudeSourceProperties
 -> f (Maybe AmplitudeSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_amplitude = (SourceConnectorProperties -> Maybe AmplitudeSourceProperties)
-> (SourceConnectorProperties
    -> Maybe AmplitudeSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe AmplitudeSourceProperties)
     (Maybe AmplitudeSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe AmplitudeSourceProperties
amplitude :: Maybe AmplitudeSourceProperties
$sel:amplitude:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe AmplitudeSourceProperties
amplitude} -> Maybe AmplitudeSourceProperties
amplitude) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe AmplitudeSourceProperties
a -> SourceConnectorProperties
s {$sel:amplitude:SourceConnectorProperties' :: Maybe AmplitudeSourceProperties
amplitude = Maybe AmplitudeSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Datadog.
sourceConnectorProperties_datadog :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe DatadogSourceProperties)
sourceConnectorProperties_datadog :: (Maybe DatadogSourceProperties
 -> f (Maybe DatadogSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_datadog = (SourceConnectorProperties -> Maybe DatadogSourceProperties)
-> (SourceConnectorProperties
    -> Maybe DatadogSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe DatadogSourceProperties)
     (Maybe DatadogSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe DatadogSourceProperties
datadog :: Maybe DatadogSourceProperties
$sel:datadog:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe DatadogSourceProperties
datadog} -> Maybe DatadogSourceProperties
datadog) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe DatadogSourceProperties
a -> SourceConnectorProperties
s {$sel:datadog:SourceConnectorProperties' :: Maybe DatadogSourceProperties
datadog = Maybe DatadogSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Google
-- Analytics.
sourceConnectorProperties_googleAnalytics :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe GoogleAnalyticsSourceProperties)
sourceConnectorProperties_googleAnalytics :: (Maybe GoogleAnalyticsSourceProperties
 -> f (Maybe GoogleAnalyticsSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_googleAnalytics = (SourceConnectorProperties
 -> Maybe GoogleAnalyticsSourceProperties)
-> (SourceConnectorProperties
    -> Maybe GoogleAnalyticsSourceProperties
    -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe GoogleAnalyticsSourceProperties)
     (Maybe GoogleAnalyticsSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe GoogleAnalyticsSourceProperties
googleAnalytics :: Maybe GoogleAnalyticsSourceProperties
$sel:googleAnalytics:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe GoogleAnalyticsSourceProperties
googleAnalytics} -> Maybe GoogleAnalyticsSourceProperties
googleAnalytics) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe GoogleAnalyticsSourceProperties
a -> SourceConnectorProperties
s {$sel:googleAnalytics:SourceConnectorProperties' :: Maybe GoogleAnalyticsSourceProperties
googleAnalytics = Maybe GoogleAnalyticsSourceProperties
a} :: SourceConnectorProperties)

-- | Undocumented member.
sourceConnectorProperties_sAPOData :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe SAPODataSourceProperties)
sourceConnectorProperties_sAPOData :: (Maybe SAPODataSourceProperties
 -> f (Maybe SAPODataSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_sAPOData = (SourceConnectorProperties -> Maybe SAPODataSourceProperties)
-> (SourceConnectorProperties
    -> Maybe SAPODataSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe SAPODataSourceProperties)
     (Maybe SAPODataSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe SAPODataSourceProperties
sAPOData :: Maybe SAPODataSourceProperties
$sel:sAPOData:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SAPODataSourceProperties
sAPOData} -> Maybe SAPODataSourceProperties
sAPOData) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe SAPODataSourceProperties
a -> SourceConnectorProperties
s {$sel:sAPOData:SourceConnectorProperties' :: Maybe SAPODataSourceProperties
sAPOData = Maybe SAPODataSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Salesforce.
sourceConnectorProperties_salesforce :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe SalesforceSourceProperties)
sourceConnectorProperties_salesforce :: (Maybe SalesforceSourceProperties
 -> f (Maybe SalesforceSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_salesforce = (SourceConnectorProperties -> Maybe SalesforceSourceProperties)
-> (SourceConnectorProperties
    -> Maybe SalesforceSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe SalesforceSourceProperties)
     (Maybe SalesforceSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe SalesforceSourceProperties
salesforce :: Maybe SalesforceSourceProperties
$sel:salesforce:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SalesforceSourceProperties
salesforce} -> Maybe SalesforceSourceProperties
salesforce) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe SalesforceSourceProperties
a -> SourceConnectorProperties
s {$sel:salesforce:SourceConnectorProperties' :: Maybe SalesforceSourceProperties
salesforce = Maybe SalesforceSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Zendesk.
sourceConnectorProperties_zendesk :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe ZendeskSourceProperties)
sourceConnectorProperties_zendesk :: (Maybe ZendeskSourceProperties
 -> f (Maybe ZendeskSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_zendesk = (SourceConnectorProperties -> Maybe ZendeskSourceProperties)
-> (SourceConnectorProperties
    -> Maybe ZendeskSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe ZendeskSourceProperties)
     (Maybe ZendeskSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe ZendeskSourceProperties
zendesk :: Maybe ZendeskSourceProperties
$sel:zendesk:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe ZendeskSourceProperties
zendesk} -> Maybe ZendeskSourceProperties
zendesk) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe ZendeskSourceProperties
a -> SourceConnectorProperties
s {$sel:zendesk:SourceConnectorProperties' :: Maybe ZendeskSourceProperties
zendesk = Maybe ZendeskSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Amazon S3.
sourceConnectorProperties_s3 :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe S3SourceProperties)
sourceConnectorProperties_s3 :: (Maybe S3SourceProperties -> f (Maybe S3SourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_s3 = (SourceConnectorProperties -> Maybe S3SourceProperties)
-> (SourceConnectorProperties
    -> Maybe S3SourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe S3SourceProperties)
     (Maybe S3SourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe S3SourceProperties
s3 :: Maybe S3SourceProperties
$sel:s3:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe S3SourceProperties
s3} -> Maybe S3SourceProperties
s3) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe S3SourceProperties
a -> SourceConnectorProperties
s {$sel:s3:SourceConnectorProperties' :: Maybe S3SourceProperties
s3 = Maybe S3SourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Trend Micro.
sourceConnectorProperties_trendmicro :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe TrendmicroSourceProperties)
sourceConnectorProperties_trendmicro :: (Maybe TrendmicroSourceProperties
 -> f (Maybe TrendmicroSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_trendmicro = (SourceConnectorProperties -> Maybe TrendmicroSourceProperties)
-> (SourceConnectorProperties
    -> Maybe TrendmicroSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe TrendmicroSourceProperties)
     (Maybe TrendmicroSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe TrendmicroSourceProperties
trendmicro :: Maybe TrendmicroSourceProperties
$sel:trendmicro:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe TrendmicroSourceProperties
trendmicro} -> Maybe TrendmicroSourceProperties
trendmicro) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe TrendmicroSourceProperties
a -> SourceConnectorProperties
s {$sel:trendmicro:SourceConnectorProperties' :: Maybe TrendmicroSourceProperties
trendmicro = Maybe TrendmicroSourceProperties
a} :: SourceConnectorProperties)

-- | Specifies the information that is required for querying Veeva.
sourceConnectorProperties_veeva :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe VeevaSourceProperties)
sourceConnectorProperties_veeva :: (Maybe VeevaSourceProperties -> f (Maybe VeevaSourceProperties))
-> SourceConnectorProperties -> f SourceConnectorProperties
sourceConnectorProperties_veeva = (SourceConnectorProperties -> Maybe VeevaSourceProperties)
-> (SourceConnectorProperties
    -> Maybe VeevaSourceProperties -> SourceConnectorProperties)
-> Lens
     SourceConnectorProperties
     SourceConnectorProperties
     (Maybe VeevaSourceProperties)
     (Maybe VeevaSourceProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SourceConnectorProperties' {Maybe VeevaSourceProperties
veeva :: Maybe VeevaSourceProperties
$sel:veeva:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe VeevaSourceProperties
veeva} -> Maybe VeevaSourceProperties
veeva) (\s :: SourceConnectorProperties
s@SourceConnectorProperties' {} Maybe VeevaSourceProperties
a -> SourceConnectorProperties
s {$sel:veeva:SourceConnectorProperties' :: Maybe VeevaSourceProperties
veeva = Maybe VeevaSourceProperties
a} :: SourceConnectorProperties)

instance Core.FromJSON SourceConnectorProperties where
  parseJSON :: Value -> Parser SourceConnectorProperties
parseJSON =
    String
-> (Object -> Parser SourceConnectorProperties)
-> Value
-> Parser SourceConnectorProperties
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"SourceConnectorProperties"
      ( \Object
x ->
          Maybe ServiceNowSourceProperties
-> Maybe DynatraceSourceProperties
-> Maybe MarketoSourceProperties
-> Maybe SlackSourceProperties
-> Maybe SingularSourceProperties
-> Maybe InforNexusSourceProperties
-> Maybe AmplitudeSourceProperties
-> Maybe DatadogSourceProperties
-> Maybe GoogleAnalyticsSourceProperties
-> Maybe SAPODataSourceProperties
-> Maybe SalesforceSourceProperties
-> Maybe ZendeskSourceProperties
-> Maybe S3SourceProperties
-> Maybe TrendmicroSourceProperties
-> Maybe VeevaSourceProperties
-> SourceConnectorProperties
SourceConnectorProperties'
            (Maybe ServiceNowSourceProperties
 -> Maybe DynatraceSourceProperties
 -> Maybe MarketoSourceProperties
 -> Maybe SlackSourceProperties
 -> Maybe SingularSourceProperties
 -> Maybe InforNexusSourceProperties
 -> Maybe AmplitudeSourceProperties
 -> Maybe DatadogSourceProperties
 -> Maybe GoogleAnalyticsSourceProperties
 -> Maybe SAPODataSourceProperties
 -> Maybe SalesforceSourceProperties
 -> Maybe ZendeskSourceProperties
 -> Maybe S3SourceProperties
 -> Maybe TrendmicroSourceProperties
 -> Maybe VeevaSourceProperties
 -> SourceConnectorProperties)
-> Parser (Maybe ServiceNowSourceProperties)
-> Parser
     (Maybe DynatraceSourceProperties
      -> Maybe MarketoSourceProperties
      -> Maybe SlackSourceProperties
      -> Maybe SingularSourceProperties
      -> Maybe InforNexusSourceProperties
      -> Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe ServiceNowSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ServiceNow")
            Parser
  (Maybe DynatraceSourceProperties
   -> Maybe MarketoSourceProperties
   -> Maybe SlackSourceProperties
   -> Maybe SingularSourceProperties
   -> Maybe InforNexusSourceProperties
   -> Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe DynatraceSourceProperties)
-> Parser
     (Maybe MarketoSourceProperties
      -> Maybe SlackSourceProperties
      -> Maybe SingularSourceProperties
      -> Maybe InforNexusSourceProperties
      -> Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DynatraceSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Dynatrace")
            Parser
  (Maybe MarketoSourceProperties
   -> Maybe SlackSourceProperties
   -> Maybe SingularSourceProperties
   -> Maybe InforNexusSourceProperties
   -> Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe MarketoSourceProperties)
-> Parser
     (Maybe SlackSourceProperties
      -> Maybe SingularSourceProperties
      -> Maybe InforNexusSourceProperties
      -> Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe MarketoSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Marketo")
            Parser
  (Maybe SlackSourceProperties
   -> Maybe SingularSourceProperties
   -> Maybe InforNexusSourceProperties
   -> Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe SlackSourceProperties)
-> Parser
     (Maybe SingularSourceProperties
      -> Maybe InforNexusSourceProperties
      -> Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SlackSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Slack")
            Parser
  (Maybe SingularSourceProperties
   -> Maybe InforNexusSourceProperties
   -> Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe SingularSourceProperties)
-> Parser
     (Maybe InforNexusSourceProperties
      -> Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SingularSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Singular")
            Parser
  (Maybe InforNexusSourceProperties
   -> Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe InforNexusSourceProperties)
-> Parser
     (Maybe AmplitudeSourceProperties
      -> Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe InforNexusSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InforNexus")
            Parser
  (Maybe AmplitudeSourceProperties
   -> Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe AmplitudeSourceProperties)
-> Parser
     (Maybe DatadogSourceProperties
      -> Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AmplitudeSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Amplitude")
            Parser
  (Maybe DatadogSourceProperties
   -> Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe DatadogSourceProperties)
-> Parser
     (Maybe GoogleAnalyticsSourceProperties
      -> Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DatadogSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Datadog")
            Parser
  (Maybe GoogleAnalyticsSourceProperties
   -> Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe GoogleAnalyticsSourceProperties)
-> Parser
     (Maybe SAPODataSourceProperties
      -> Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe GoogleAnalyticsSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"GoogleAnalytics")
            Parser
  (Maybe SAPODataSourceProperties
   -> Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe SAPODataSourceProperties)
-> Parser
     (Maybe SalesforceSourceProperties
      -> Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SAPODataSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SAPOData")
            Parser
  (Maybe SalesforceSourceProperties
   -> Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe SalesforceSourceProperties)
-> Parser
     (Maybe ZendeskSourceProperties
      -> Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe SalesforceSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Salesforce")
            Parser
  (Maybe ZendeskSourceProperties
   -> Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe ZendeskSourceProperties)
-> Parser
     (Maybe S3SourceProperties
      -> Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties
      -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ZendeskSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Zendesk")
            Parser
  (Maybe S3SourceProperties
   -> Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties
   -> SourceConnectorProperties)
-> Parser (Maybe S3SourceProperties)
-> Parser
     (Maybe TrendmicroSourceProperties
      -> Maybe VeevaSourceProperties -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe S3SourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"S3")
            Parser
  (Maybe TrendmicroSourceProperties
   -> Maybe VeevaSourceProperties -> SourceConnectorProperties)
-> Parser (Maybe TrendmicroSourceProperties)
-> Parser
     (Maybe VeevaSourceProperties -> SourceConnectorProperties)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrendmicroSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Trendmicro")
            Parser (Maybe VeevaSourceProperties -> SourceConnectorProperties)
-> Parser (Maybe VeevaSourceProperties)
-> Parser SourceConnectorProperties
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe VeevaSourceProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Veeva")
      )

instance Prelude.Hashable SourceConnectorProperties

instance Prelude.NFData SourceConnectorProperties

instance Core.ToJSON SourceConnectorProperties where
  toJSON :: SourceConnectorProperties -> Value
toJSON SourceConnectorProperties' {Maybe AmplitudeSourceProperties
Maybe DatadogSourceProperties
Maybe DynatraceSourceProperties
Maybe GoogleAnalyticsSourceProperties
Maybe InforNexusSourceProperties
Maybe MarketoSourceProperties
Maybe S3SourceProperties
Maybe SAPODataSourceProperties
Maybe SalesforceSourceProperties
Maybe ServiceNowSourceProperties
Maybe SingularSourceProperties
Maybe SlackSourceProperties
Maybe TrendmicroSourceProperties
Maybe VeevaSourceProperties
Maybe ZendeskSourceProperties
veeva :: Maybe VeevaSourceProperties
trendmicro :: Maybe TrendmicroSourceProperties
s3 :: Maybe S3SourceProperties
zendesk :: Maybe ZendeskSourceProperties
salesforce :: Maybe SalesforceSourceProperties
sAPOData :: Maybe SAPODataSourceProperties
googleAnalytics :: Maybe GoogleAnalyticsSourceProperties
datadog :: Maybe DatadogSourceProperties
amplitude :: Maybe AmplitudeSourceProperties
inforNexus :: Maybe InforNexusSourceProperties
singular :: Maybe SingularSourceProperties
slack :: Maybe SlackSourceProperties
marketo :: Maybe MarketoSourceProperties
dynatrace :: Maybe DynatraceSourceProperties
serviceNow :: Maybe ServiceNowSourceProperties
$sel:veeva:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe VeevaSourceProperties
$sel:trendmicro:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe TrendmicroSourceProperties
$sel:s3:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe S3SourceProperties
$sel:zendesk:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe ZendeskSourceProperties
$sel:salesforce:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SalesforceSourceProperties
$sel:sAPOData:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SAPODataSourceProperties
$sel:googleAnalytics:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe GoogleAnalyticsSourceProperties
$sel:datadog:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe DatadogSourceProperties
$sel:amplitude:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe AmplitudeSourceProperties
$sel:inforNexus:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe InforNexusSourceProperties
$sel:singular:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SingularSourceProperties
$sel:slack:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe SlackSourceProperties
$sel:marketo:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe MarketoSourceProperties
$sel:dynatrace:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe DynatraceSourceProperties
$sel:serviceNow:SourceConnectorProperties' :: SourceConnectorProperties -> Maybe ServiceNowSourceProperties
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"ServiceNow" Text -> ServiceNowSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (ServiceNowSourceProperties -> Pair)
-> Maybe ServiceNowSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ServiceNowSourceProperties
serviceNow,
            (Text
"Dynatrace" Text -> DynatraceSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DynatraceSourceProperties -> Pair)
-> Maybe DynatraceSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DynatraceSourceProperties
dynatrace,
            (Text
"Marketo" Text -> MarketoSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (MarketoSourceProperties -> Pair)
-> Maybe MarketoSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MarketoSourceProperties
marketo,
            (Text
"Slack" Text -> SlackSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (SlackSourceProperties -> Pair)
-> Maybe SlackSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SlackSourceProperties
slack,
            (Text
"Singular" Text -> SingularSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (SingularSourceProperties -> Pair)
-> Maybe SingularSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SingularSourceProperties
singular,
            (Text
"InforNexus" Text -> InforNexusSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (InforNexusSourceProperties -> Pair)
-> Maybe InforNexusSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InforNexusSourceProperties
inforNexus,
            (Text
"Amplitude" Text -> AmplitudeSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (AmplitudeSourceProperties -> Pair)
-> Maybe AmplitudeSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AmplitudeSourceProperties
amplitude,
            (Text
"Datadog" Text -> DatadogSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DatadogSourceProperties -> Pair)
-> Maybe DatadogSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DatadogSourceProperties
datadog,
            (Text
"GoogleAnalytics" Text -> GoogleAnalyticsSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (GoogleAnalyticsSourceProperties -> Pair)
-> Maybe GoogleAnalyticsSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GoogleAnalyticsSourceProperties
googleAnalytics,
            (Text
"SAPOData" Text -> SAPODataSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (SAPODataSourceProperties -> Pair)
-> Maybe SAPODataSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SAPODataSourceProperties
sAPOData,
            (Text
"Salesforce" Text -> SalesforceSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (SalesforceSourceProperties -> Pair)
-> Maybe SalesforceSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SalesforceSourceProperties
salesforce,
            (Text
"Zendesk" Text -> ZendeskSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (ZendeskSourceProperties -> Pair)
-> Maybe ZendeskSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ZendeskSourceProperties
zendesk,
            (Text
"S3" Text -> S3SourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (S3SourceProperties -> Pair)
-> Maybe S3SourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3SourceProperties
s3,
            (Text
"Trendmicro" Text -> TrendmicroSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (TrendmicroSourceProperties -> Pair)
-> Maybe TrendmicroSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TrendmicroSourceProperties
trendmicro,
            (Text
"Veeva" Text -> VeevaSourceProperties -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (VeevaSourceProperties -> Pair)
-> Maybe VeevaSourceProperties -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe VeevaSourceProperties
veeva
          ]
      )