{-# 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.ConnectorProfile
-- 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.ConnectorProfile where

import Amazonka.AppFlow.Types.ConnectionMode
import Amazonka.AppFlow.Types.ConnectorProfileProperties
import Amazonka.AppFlow.Types.ConnectorType
import Amazonka.AppFlow.Types.PrivateConnectionProvisioningState
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Describes an instance of a connector. This includes the provided name,
-- credentials ARN, connection-mode, and so on. To keep the API intuitive
-- and extensible, the fields that are common to all types of connector
-- profiles are explicitly specified at the top level. The rest of the
-- connector-specific properties are available via the
-- @connectorProfileProperties@ field.
--
-- /See:/ 'newConnectorProfile' smart constructor.
data ConnectorProfile = ConnectorProfile'
  { -- | The name of the connector profile. The name is unique for each
    -- @ConnectorProfile@ in the Amazon Web Services account.
    ConnectorProfile -> Maybe Text
connectorProfileName :: Prelude.Maybe Prelude.Text,
    -- | Specifies when the connector profile was last updated.
    ConnectorProfile -> Maybe POSIX
lastUpdatedAt :: Prelude.Maybe Core.POSIX,
    -- | Specifies when the connector profile was created.
    ConnectorProfile -> Maybe POSIX
createdAt :: Prelude.Maybe Core.POSIX,
    -- | The Amazon Resource Name (ARN) of the connector profile credentials.
    ConnectorProfile -> Maybe Text
credentialsArn :: Prelude.Maybe Prelude.Text,
    -- | The connector-specific properties of the profile configuration.
    ConnectorProfile -> Maybe ConnectorProfileProperties
connectorProfileProperties :: Prelude.Maybe ConnectorProfileProperties,
    -- | Indicates the connection mode and if it is public or private.
    ConnectorProfile -> Maybe ConnectionMode
connectionMode :: Prelude.Maybe ConnectionMode,
    -- | The Amazon Resource Name (ARN) of the connector profile.
    ConnectorProfile -> Maybe Text
connectorProfileArn :: Prelude.Maybe Prelude.Text,
    -- | Specifies the private connection provisioning state.
    ConnectorProfile -> Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState :: Prelude.Maybe PrivateConnectionProvisioningState,
    -- | The type of connector, such as Salesforce, Amplitude, and so on.
    ConnectorProfile -> Maybe ConnectorType
connectorType :: Prelude.Maybe ConnectorType
  }
  deriving (ConnectorProfile -> ConnectorProfile -> Bool
(ConnectorProfile -> ConnectorProfile -> Bool)
-> (ConnectorProfile -> ConnectorProfile -> Bool)
-> Eq ConnectorProfile
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConnectorProfile -> ConnectorProfile -> Bool
$c/= :: ConnectorProfile -> ConnectorProfile -> Bool
== :: ConnectorProfile -> ConnectorProfile -> Bool
$c== :: ConnectorProfile -> ConnectorProfile -> Bool
Prelude.Eq, ReadPrec [ConnectorProfile]
ReadPrec ConnectorProfile
Int -> ReadS ConnectorProfile
ReadS [ConnectorProfile]
(Int -> ReadS ConnectorProfile)
-> ReadS [ConnectorProfile]
-> ReadPrec ConnectorProfile
-> ReadPrec [ConnectorProfile]
-> Read ConnectorProfile
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ConnectorProfile]
$creadListPrec :: ReadPrec [ConnectorProfile]
readPrec :: ReadPrec ConnectorProfile
$creadPrec :: ReadPrec ConnectorProfile
readList :: ReadS [ConnectorProfile]
$creadList :: ReadS [ConnectorProfile]
readsPrec :: Int -> ReadS ConnectorProfile
$creadsPrec :: Int -> ReadS ConnectorProfile
Prelude.Read, Int -> ConnectorProfile -> ShowS
[ConnectorProfile] -> ShowS
ConnectorProfile -> String
(Int -> ConnectorProfile -> ShowS)
-> (ConnectorProfile -> String)
-> ([ConnectorProfile] -> ShowS)
-> Show ConnectorProfile
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ConnectorProfile] -> ShowS
$cshowList :: [ConnectorProfile] -> ShowS
show :: ConnectorProfile -> String
$cshow :: ConnectorProfile -> String
showsPrec :: Int -> ConnectorProfile -> ShowS
$cshowsPrec :: Int -> ConnectorProfile -> ShowS
Prelude.Show, (forall x. ConnectorProfile -> Rep ConnectorProfile x)
-> (forall x. Rep ConnectorProfile x -> ConnectorProfile)
-> Generic ConnectorProfile
forall x. Rep ConnectorProfile x -> ConnectorProfile
forall x. ConnectorProfile -> Rep ConnectorProfile x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ConnectorProfile x -> ConnectorProfile
$cfrom :: forall x. ConnectorProfile -> Rep ConnectorProfile x
Prelude.Generic)

-- |
-- Create a value of 'ConnectorProfile' 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:
--
-- 'connectorProfileName', 'connectorProfile_connectorProfileName' - The name of the connector profile. The name is unique for each
-- @ConnectorProfile@ in the Amazon Web Services account.
--
-- 'lastUpdatedAt', 'connectorProfile_lastUpdatedAt' - Specifies when the connector profile was last updated.
--
-- 'createdAt', 'connectorProfile_createdAt' - Specifies when the connector profile was created.
--
-- 'credentialsArn', 'connectorProfile_credentialsArn' - The Amazon Resource Name (ARN) of the connector profile credentials.
--
-- 'connectorProfileProperties', 'connectorProfile_connectorProfileProperties' - The connector-specific properties of the profile configuration.
--
-- 'connectionMode', 'connectorProfile_connectionMode' - Indicates the connection mode and if it is public or private.
--
-- 'connectorProfileArn', 'connectorProfile_connectorProfileArn' - The Amazon Resource Name (ARN) of the connector profile.
--
-- 'privateConnectionProvisioningState', 'connectorProfile_privateConnectionProvisioningState' - Specifies the private connection provisioning state.
--
-- 'connectorType', 'connectorProfile_connectorType' - The type of connector, such as Salesforce, Amplitude, and so on.
newConnectorProfile ::
  ConnectorProfile
newConnectorProfile :: ConnectorProfile
newConnectorProfile =
  ConnectorProfile' :: Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe ConnectorProfileProperties
-> Maybe ConnectionMode
-> Maybe Text
-> Maybe PrivateConnectionProvisioningState
-> Maybe ConnectorType
-> ConnectorProfile
ConnectorProfile'
    { $sel:connectorProfileName:ConnectorProfile' :: Maybe Text
connectorProfileName =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedAt:ConnectorProfile' :: Maybe POSIX
lastUpdatedAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:ConnectorProfile' :: Maybe POSIX
createdAt = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:credentialsArn:ConnectorProfile' :: Maybe Text
credentialsArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:connectorProfileProperties:ConnectorProfile' :: Maybe ConnectorProfileProperties
connectorProfileProperties = Maybe ConnectorProfileProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:connectionMode:ConnectorProfile' :: Maybe ConnectionMode
connectionMode = Maybe ConnectionMode
forall a. Maybe a
Prelude.Nothing,
      $sel:connectorProfileArn:ConnectorProfile' :: Maybe Text
connectorProfileArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:privateConnectionProvisioningState:ConnectorProfile' :: Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState = Maybe PrivateConnectionProvisioningState
forall a. Maybe a
Prelude.Nothing,
      $sel:connectorType:ConnectorProfile' :: Maybe ConnectorType
connectorType = Maybe ConnectorType
forall a. Maybe a
Prelude.Nothing
    }

-- | The name of the connector profile. The name is unique for each
-- @ConnectorProfile@ in the Amazon Web Services account.
connectorProfile_connectorProfileName :: Lens.Lens' ConnectorProfile (Prelude.Maybe Prelude.Text)
connectorProfile_connectorProfileName :: (Maybe Text -> f (Maybe Text))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_connectorProfileName = (ConnectorProfile -> Maybe Text)
-> (ConnectorProfile -> Maybe Text -> ConnectorProfile)
-> Lens ConnectorProfile ConnectorProfile (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe Text
connectorProfileName :: Maybe Text
$sel:connectorProfileName:ConnectorProfile' :: ConnectorProfile -> Maybe Text
connectorProfileName} -> Maybe Text
connectorProfileName) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe Text
a -> ConnectorProfile
s {$sel:connectorProfileName:ConnectorProfile' :: Maybe Text
connectorProfileName = Maybe Text
a} :: ConnectorProfile)

-- | Specifies when the connector profile was last updated.
connectorProfile_lastUpdatedAt :: Lens.Lens' ConnectorProfile (Prelude.Maybe Prelude.UTCTime)
connectorProfile_lastUpdatedAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_lastUpdatedAt = (ConnectorProfile -> Maybe POSIX)
-> (ConnectorProfile -> Maybe POSIX -> ConnectorProfile)
-> Lens
     ConnectorProfile ConnectorProfile (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe POSIX
lastUpdatedAt :: Maybe POSIX
$sel:lastUpdatedAt:ConnectorProfile' :: ConnectorProfile -> Maybe POSIX
lastUpdatedAt} -> Maybe POSIX
lastUpdatedAt) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe POSIX
a -> ConnectorProfile
s {$sel:lastUpdatedAt:ConnectorProfile' :: Maybe POSIX
lastUpdatedAt = Maybe POSIX
a} :: ConnectorProfile) ((Maybe POSIX -> f (Maybe POSIX))
 -> ConnectorProfile -> f ConnectorProfile)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ConnectorProfile
-> f ConnectorProfile
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Specifies when the connector profile was created.
connectorProfile_createdAt :: Lens.Lens' ConnectorProfile (Prelude.Maybe Prelude.UTCTime)
connectorProfile_createdAt :: (Maybe UTCTime -> f (Maybe UTCTime))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_createdAt = (ConnectorProfile -> Maybe POSIX)
-> (ConnectorProfile -> Maybe POSIX -> ConnectorProfile)
-> Lens
     ConnectorProfile ConnectorProfile (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:ConnectorProfile' :: ConnectorProfile -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe POSIX
a -> ConnectorProfile
s {$sel:createdAt:ConnectorProfile' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: ConnectorProfile) ((Maybe POSIX -> f (Maybe POSIX))
 -> ConnectorProfile -> f ConnectorProfile)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> ConnectorProfile
-> f ConnectorProfile
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The Amazon Resource Name (ARN) of the connector profile credentials.
connectorProfile_credentialsArn :: Lens.Lens' ConnectorProfile (Prelude.Maybe Prelude.Text)
connectorProfile_credentialsArn :: (Maybe Text -> f (Maybe Text))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_credentialsArn = (ConnectorProfile -> Maybe Text)
-> (ConnectorProfile -> Maybe Text -> ConnectorProfile)
-> Lens ConnectorProfile ConnectorProfile (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe Text
credentialsArn :: Maybe Text
$sel:credentialsArn:ConnectorProfile' :: ConnectorProfile -> Maybe Text
credentialsArn} -> Maybe Text
credentialsArn) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe Text
a -> ConnectorProfile
s {$sel:credentialsArn:ConnectorProfile' :: Maybe Text
credentialsArn = Maybe Text
a} :: ConnectorProfile)

-- | The connector-specific properties of the profile configuration.
connectorProfile_connectorProfileProperties :: Lens.Lens' ConnectorProfile (Prelude.Maybe ConnectorProfileProperties)
connectorProfile_connectorProfileProperties :: (Maybe ConnectorProfileProperties
 -> f (Maybe ConnectorProfileProperties))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_connectorProfileProperties = (ConnectorProfile -> Maybe ConnectorProfileProperties)
-> (ConnectorProfile
    -> Maybe ConnectorProfileProperties -> ConnectorProfile)
-> Lens
     ConnectorProfile
     ConnectorProfile
     (Maybe ConnectorProfileProperties)
     (Maybe ConnectorProfileProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe ConnectorProfileProperties
connectorProfileProperties :: Maybe ConnectorProfileProperties
$sel:connectorProfileProperties:ConnectorProfile' :: ConnectorProfile -> Maybe ConnectorProfileProperties
connectorProfileProperties} -> Maybe ConnectorProfileProperties
connectorProfileProperties) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe ConnectorProfileProperties
a -> ConnectorProfile
s {$sel:connectorProfileProperties:ConnectorProfile' :: Maybe ConnectorProfileProperties
connectorProfileProperties = Maybe ConnectorProfileProperties
a} :: ConnectorProfile)

-- | Indicates the connection mode and if it is public or private.
connectorProfile_connectionMode :: Lens.Lens' ConnectorProfile (Prelude.Maybe ConnectionMode)
connectorProfile_connectionMode :: (Maybe ConnectionMode -> f (Maybe ConnectionMode))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_connectionMode = (ConnectorProfile -> Maybe ConnectionMode)
-> (ConnectorProfile -> Maybe ConnectionMode -> ConnectorProfile)
-> Lens
     ConnectorProfile
     ConnectorProfile
     (Maybe ConnectionMode)
     (Maybe ConnectionMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe ConnectionMode
connectionMode :: Maybe ConnectionMode
$sel:connectionMode:ConnectorProfile' :: ConnectorProfile -> Maybe ConnectionMode
connectionMode} -> Maybe ConnectionMode
connectionMode) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe ConnectionMode
a -> ConnectorProfile
s {$sel:connectionMode:ConnectorProfile' :: Maybe ConnectionMode
connectionMode = Maybe ConnectionMode
a} :: ConnectorProfile)

-- | The Amazon Resource Name (ARN) of the connector profile.
connectorProfile_connectorProfileArn :: Lens.Lens' ConnectorProfile (Prelude.Maybe Prelude.Text)
connectorProfile_connectorProfileArn :: (Maybe Text -> f (Maybe Text))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_connectorProfileArn = (ConnectorProfile -> Maybe Text)
-> (ConnectorProfile -> Maybe Text -> ConnectorProfile)
-> Lens ConnectorProfile ConnectorProfile (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe Text
connectorProfileArn :: Maybe Text
$sel:connectorProfileArn:ConnectorProfile' :: ConnectorProfile -> Maybe Text
connectorProfileArn} -> Maybe Text
connectorProfileArn) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe Text
a -> ConnectorProfile
s {$sel:connectorProfileArn:ConnectorProfile' :: Maybe Text
connectorProfileArn = Maybe Text
a} :: ConnectorProfile)

-- | Specifies the private connection provisioning state.
connectorProfile_privateConnectionProvisioningState :: Lens.Lens' ConnectorProfile (Prelude.Maybe PrivateConnectionProvisioningState)
connectorProfile_privateConnectionProvisioningState :: (Maybe PrivateConnectionProvisioningState
 -> f (Maybe PrivateConnectionProvisioningState))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_privateConnectionProvisioningState = (ConnectorProfile -> Maybe PrivateConnectionProvisioningState)
-> (ConnectorProfile
    -> Maybe PrivateConnectionProvisioningState -> ConnectorProfile)
-> Lens
     ConnectorProfile
     ConnectorProfile
     (Maybe PrivateConnectionProvisioningState)
     (Maybe PrivateConnectionProvisioningState)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState :: Maybe PrivateConnectionProvisioningState
$sel:privateConnectionProvisioningState:ConnectorProfile' :: ConnectorProfile -> Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState} -> Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe PrivateConnectionProvisioningState
a -> ConnectorProfile
s {$sel:privateConnectionProvisioningState:ConnectorProfile' :: Maybe PrivateConnectionProvisioningState
privateConnectionProvisioningState = Maybe PrivateConnectionProvisioningState
a} :: ConnectorProfile)

-- | The type of connector, such as Salesforce, Amplitude, and so on.
connectorProfile_connectorType :: Lens.Lens' ConnectorProfile (Prelude.Maybe ConnectorType)
connectorProfile_connectorType :: (Maybe ConnectorType -> f (Maybe ConnectorType))
-> ConnectorProfile -> f ConnectorProfile
connectorProfile_connectorType = (ConnectorProfile -> Maybe ConnectorType)
-> (ConnectorProfile -> Maybe ConnectorType -> ConnectorProfile)
-> Lens
     ConnectorProfile
     ConnectorProfile
     (Maybe ConnectorType)
     (Maybe ConnectorType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConnectorProfile' {Maybe ConnectorType
connectorType :: Maybe ConnectorType
$sel:connectorType:ConnectorProfile' :: ConnectorProfile -> Maybe ConnectorType
connectorType} -> Maybe ConnectorType
connectorType) (\s :: ConnectorProfile
s@ConnectorProfile' {} Maybe ConnectorType
a -> ConnectorProfile
s {$sel:connectorType:ConnectorProfile' :: Maybe ConnectorType
connectorType = Maybe ConnectorType
a} :: ConnectorProfile)

instance Core.FromJSON ConnectorProfile where
  parseJSON :: Value -> Parser ConnectorProfile
parseJSON =
    String
-> (Object -> Parser ConnectorProfile)
-> Value
-> Parser ConnectorProfile
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ConnectorProfile"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe ConnectorProfileProperties
-> Maybe ConnectionMode
-> Maybe Text
-> Maybe PrivateConnectionProvisioningState
-> Maybe ConnectorType
-> ConnectorProfile
ConnectorProfile'
            (Maybe Text
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe ConnectorProfileProperties
 -> Maybe ConnectionMode
 -> Maybe Text
 -> Maybe PrivateConnectionProvisioningState
 -> Maybe ConnectorType
 -> ConnectorProfile)
-> Parser (Maybe Text)
-> Parser
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe ConnectorProfileProperties
      -> Maybe ConnectionMode
      -> Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"connectorProfileName")
            Parser
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe ConnectorProfileProperties
   -> Maybe ConnectionMode
   -> Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe ConnectorProfileProperties
      -> Maybe ConnectionMode
      -> Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"lastUpdatedAt")
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe ConnectorProfileProperties
   -> Maybe ConnectionMode
   -> Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe ConnectorProfileProperties
      -> Maybe ConnectionMode
      -> Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"createdAt")
            Parser
  (Maybe Text
   -> Maybe ConnectorProfileProperties
   -> Maybe ConnectionMode
   -> Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe Text)
-> Parser
     (Maybe ConnectorProfileProperties
      -> Maybe ConnectionMode
      -> Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"credentialsArn")
            Parser
  (Maybe ConnectorProfileProperties
   -> Maybe ConnectionMode
   -> Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe ConnectorProfileProperties)
-> Parser
     (Maybe ConnectionMode
      -> Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ConnectorProfileProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"connectorProfileProperties")
            Parser
  (Maybe ConnectionMode
   -> Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe ConnectionMode)
-> Parser
     (Maybe Text
      -> Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType
      -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ConnectionMode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"connectionMode")
            Parser
  (Maybe Text
   -> Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType
   -> ConnectorProfile)
-> Parser (Maybe Text)
-> Parser
     (Maybe PrivateConnectionProvisioningState
      -> Maybe ConnectorType -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"connectorProfileArn")
            Parser
  (Maybe PrivateConnectionProvisioningState
   -> Maybe ConnectorType -> ConnectorProfile)
-> Parser (Maybe PrivateConnectionProvisioningState)
-> Parser (Maybe ConnectorType -> ConnectorProfile)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PrivateConnectionProvisioningState)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"privateConnectionProvisioningState")
            Parser (Maybe ConnectorType -> ConnectorProfile)
-> Parser (Maybe ConnectorType) -> Parser ConnectorProfile
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ConnectorType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"connectorType")
      )

instance Prelude.Hashable ConnectorProfile

instance Prelude.NFData ConnectorProfile