{-# 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.Firehose.Types.SplunkDestinationDescription
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Firehose.Types.SplunkDestinationDescription where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Firehose.Types.CloudWatchLoggingOptions
import Amazonka.Firehose.Types.HECEndpointType
import Amazonka.Firehose.Types.ProcessingConfiguration
import Amazonka.Firehose.Types.S3DestinationDescription
import Amazonka.Firehose.Types.SplunkRetryOptions
import Amazonka.Firehose.Types.SplunkS3BackupMode
import qualified Amazonka.Prelude as Prelude

-- | Describes a destination in Splunk.
--
-- /See:/ 'newSplunkDestinationDescription' smart constructor.
data SplunkDestinationDescription = SplunkDestinationDescription'
  { -- | The Amazon CloudWatch logging options for your delivery stream.
    SplunkDestinationDescription -> Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions :: Prelude.Maybe CloudWatchLoggingOptions,
    -- | The amount of time that Kinesis Data Firehose waits to receive an
    -- acknowledgment from Splunk after it sends it data. At the end of the
    -- timeout period, Kinesis Data Firehose either tries to send the data
    -- again or considers it an error, based on your retry settings.
    SplunkDestinationDescription -> Maybe Natural
hECAcknowledgmentTimeoutInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose
    -- sends your data.
    SplunkDestinationDescription -> Maybe Text
hECEndpoint :: Prelude.Maybe Prelude.Text,
    -- | This type can be either \"Raw\" or \"Event.\"
    SplunkDestinationDescription -> Maybe HECEndpointType
hECEndpointType :: Prelude.Maybe HECEndpointType,
    -- | A GUID you obtain from your Splunk cluster when you create a new HEC
    -- endpoint.
    SplunkDestinationDescription -> Maybe Text
hECToken :: Prelude.Maybe Prelude.Text,
    -- | The data processing configuration.
    SplunkDestinationDescription -> Maybe ProcessingConfiguration
processingConfiguration :: Prelude.Maybe ProcessingConfiguration,
    -- | The retry behavior in case Kinesis Data Firehose is unable to deliver
    -- data to Splunk or if it doesn\'t receive an acknowledgment of receipt
    -- from Splunk.
    SplunkDestinationDescription -> Maybe SplunkRetryOptions
retryOptions :: Prelude.Maybe SplunkRetryOptions,
    -- | Defines how documents should be delivered to Amazon S3. When set to
    -- @FailedDocumentsOnly@, Kinesis Data Firehose writes any data that could
    -- not be indexed to the configured Amazon S3 destination. When set to
    -- @AllDocuments@, Kinesis Data Firehose delivers all incoming records to
    -- Amazon S3, and also writes failed documents to Amazon S3. Default value
    -- is @FailedDocumentsOnly@.
    SplunkDestinationDescription -> Maybe SplunkS3BackupMode
s3BackupMode :: Prelude.Maybe SplunkS3BackupMode,
    -- | The Amazon S3 destination.>
    SplunkDestinationDescription -> Maybe S3DestinationDescription
s3DestinationDescription :: Prelude.Maybe S3DestinationDescription
  }
  deriving (SplunkDestinationDescription
-> SplunkDestinationDescription -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SplunkDestinationDescription
-> SplunkDestinationDescription -> Bool
$c/= :: SplunkDestinationDescription
-> SplunkDestinationDescription -> Bool
== :: SplunkDestinationDescription
-> SplunkDestinationDescription -> Bool
$c== :: SplunkDestinationDescription
-> SplunkDestinationDescription -> Bool
Prelude.Eq, ReadPrec [SplunkDestinationDescription]
ReadPrec SplunkDestinationDescription
Int -> ReadS SplunkDestinationDescription
ReadS [SplunkDestinationDescription]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SplunkDestinationDescription]
$creadListPrec :: ReadPrec [SplunkDestinationDescription]
readPrec :: ReadPrec SplunkDestinationDescription
$creadPrec :: ReadPrec SplunkDestinationDescription
readList :: ReadS [SplunkDestinationDescription]
$creadList :: ReadS [SplunkDestinationDescription]
readsPrec :: Int -> ReadS SplunkDestinationDescription
$creadsPrec :: Int -> ReadS SplunkDestinationDescription
Prelude.Read, Int -> SplunkDestinationDescription -> ShowS
[SplunkDestinationDescription] -> ShowS
SplunkDestinationDescription -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SplunkDestinationDescription] -> ShowS
$cshowList :: [SplunkDestinationDescription] -> ShowS
show :: SplunkDestinationDescription -> String
$cshow :: SplunkDestinationDescription -> String
showsPrec :: Int -> SplunkDestinationDescription -> ShowS
$cshowsPrec :: Int -> SplunkDestinationDescription -> ShowS
Prelude.Show, forall x.
Rep SplunkDestinationDescription x -> SplunkDestinationDescription
forall x.
SplunkDestinationDescription -> Rep SplunkDestinationDescription x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SplunkDestinationDescription x -> SplunkDestinationDescription
$cfrom :: forall x.
SplunkDestinationDescription -> Rep SplunkDestinationDescription x
Prelude.Generic)

-- |
-- Create a value of 'SplunkDestinationDescription' 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:
--
-- 'cloudWatchLoggingOptions', 'splunkDestinationDescription_cloudWatchLoggingOptions' - The Amazon CloudWatch logging options for your delivery stream.
--
-- 'hECAcknowledgmentTimeoutInSeconds', 'splunkDestinationDescription_hECAcknowledgmentTimeoutInSeconds' - The amount of time that Kinesis Data Firehose waits to receive an
-- acknowledgment from Splunk after it sends it data. At the end of the
-- timeout period, Kinesis Data Firehose either tries to send the data
-- again or considers it an error, based on your retry settings.
--
-- 'hECEndpoint', 'splunkDestinationDescription_hECEndpoint' - The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose
-- sends your data.
--
-- 'hECEndpointType', 'splunkDestinationDescription_hECEndpointType' - This type can be either \"Raw\" or \"Event.\"
--
-- 'hECToken', 'splunkDestinationDescription_hECToken' - A GUID you obtain from your Splunk cluster when you create a new HEC
-- endpoint.
--
-- 'processingConfiguration', 'splunkDestinationDescription_processingConfiguration' - The data processing configuration.
--
-- 'retryOptions', 'splunkDestinationDescription_retryOptions' - The retry behavior in case Kinesis Data Firehose is unable to deliver
-- data to Splunk or if it doesn\'t receive an acknowledgment of receipt
-- from Splunk.
--
-- 's3BackupMode', 'splunkDestinationDescription_s3BackupMode' - Defines how documents should be delivered to Amazon S3. When set to
-- @FailedDocumentsOnly@, Kinesis Data Firehose writes any data that could
-- not be indexed to the configured Amazon S3 destination. When set to
-- @AllDocuments@, Kinesis Data Firehose delivers all incoming records to
-- Amazon S3, and also writes failed documents to Amazon S3. Default value
-- is @FailedDocumentsOnly@.
--
-- 's3DestinationDescription', 'splunkDestinationDescription_s3DestinationDescription' - The Amazon S3 destination.>
newSplunkDestinationDescription ::
  SplunkDestinationDescription
newSplunkDestinationDescription :: SplunkDestinationDescription
newSplunkDestinationDescription =
  SplunkDestinationDescription'
    { $sel:cloudWatchLoggingOptions:SplunkDestinationDescription' :: Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions =
        forall a. Maybe a
Prelude.Nothing,
      $sel:hECAcknowledgmentTimeoutInSeconds:SplunkDestinationDescription' :: Maybe Natural
hECAcknowledgmentTimeoutInSeconds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:hECEndpoint:SplunkDestinationDescription' :: Maybe Text
hECEndpoint = forall a. Maybe a
Prelude.Nothing,
      $sel:hECEndpointType:SplunkDestinationDescription' :: Maybe HECEndpointType
hECEndpointType = forall a. Maybe a
Prelude.Nothing,
      $sel:hECToken:SplunkDestinationDescription' :: Maybe Text
hECToken = forall a. Maybe a
Prelude.Nothing,
      $sel:processingConfiguration:SplunkDestinationDescription' :: Maybe ProcessingConfiguration
processingConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:retryOptions:SplunkDestinationDescription' :: Maybe SplunkRetryOptions
retryOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:s3BackupMode:SplunkDestinationDescription' :: Maybe SplunkS3BackupMode
s3BackupMode = forall a. Maybe a
Prelude.Nothing,
      $sel:s3DestinationDescription:SplunkDestinationDescription' :: Maybe S3DestinationDescription
s3DestinationDescription = forall a. Maybe a
Prelude.Nothing
    }

-- | The Amazon CloudWatch logging options for your delivery stream.
splunkDestinationDescription_cloudWatchLoggingOptions :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe CloudWatchLoggingOptions)
splunkDestinationDescription_cloudWatchLoggingOptions :: Lens' SplunkDestinationDescription (Maybe CloudWatchLoggingOptions)
splunkDestinationDescription_cloudWatchLoggingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions :: Maybe CloudWatchLoggingOptions
$sel:cloudWatchLoggingOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions} -> Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe CloudWatchLoggingOptions
a -> SplunkDestinationDescription
s {$sel:cloudWatchLoggingOptions:SplunkDestinationDescription' :: Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions = Maybe CloudWatchLoggingOptions
a} :: SplunkDestinationDescription)

-- | The amount of time that Kinesis Data Firehose waits to receive an
-- acknowledgment from Splunk after it sends it data. At the end of the
-- timeout period, Kinesis Data Firehose either tries to send the data
-- again or considers it an error, based on your retry settings.
splunkDestinationDescription_hECAcknowledgmentTimeoutInSeconds :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe Prelude.Natural)
splunkDestinationDescription_hECAcknowledgmentTimeoutInSeconds :: Lens' SplunkDestinationDescription (Maybe Natural)
splunkDestinationDescription_hECAcknowledgmentTimeoutInSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe Natural
hECAcknowledgmentTimeoutInSeconds :: Maybe Natural
$sel:hECAcknowledgmentTimeoutInSeconds:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Natural
hECAcknowledgmentTimeoutInSeconds} -> Maybe Natural
hECAcknowledgmentTimeoutInSeconds) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe Natural
a -> SplunkDestinationDescription
s {$sel:hECAcknowledgmentTimeoutInSeconds:SplunkDestinationDescription' :: Maybe Natural
hECAcknowledgmentTimeoutInSeconds = Maybe Natural
a} :: SplunkDestinationDescription)

-- | The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose
-- sends your data.
splunkDestinationDescription_hECEndpoint :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe Prelude.Text)
splunkDestinationDescription_hECEndpoint :: Lens' SplunkDestinationDescription (Maybe Text)
splunkDestinationDescription_hECEndpoint = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe Text
hECEndpoint :: Maybe Text
$sel:hECEndpoint:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
hECEndpoint} -> Maybe Text
hECEndpoint) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe Text
a -> SplunkDestinationDescription
s {$sel:hECEndpoint:SplunkDestinationDescription' :: Maybe Text
hECEndpoint = Maybe Text
a} :: SplunkDestinationDescription)

-- | This type can be either \"Raw\" or \"Event.\"
splunkDestinationDescription_hECEndpointType :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe HECEndpointType)
splunkDestinationDescription_hECEndpointType :: Lens' SplunkDestinationDescription (Maybe HECEndpointType)
splunkDestinationDescription_hECEndpointType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe HECEndpointType
hECEndpointType :: Maybe HECEndpointType
$sel:hECEndpointType:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe HECEndpointType
hECEndpointType} -> Maybe HECEndpointType
hECEndpointType) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe HECEndpointType
a -> SplunkDestinationDescription
s {$sel:hECEndpointType:SplunkDestinationDescription' :: Maybe HECEndpointType
hECEndpointType = Maybe HECEndpointType
a} :: SplunkDestinationDescription)

-- | A GUID you obtain from your Splunk cluster when you create a new HEC
-- endpoint.
splunkDestinationDescription_hECToken :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe Prelude.Text)
splunkDestinationDescription_hECToken :: Lens' SplunkDestinationDescription (Maybe Text)
splunkDestinationDescription_hECToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe Text
hECToken :: Maybe Text
$sel:hECToken:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
hECToken} -> Maybe Text
hECToken) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe Text
a -> SplunkDestinationDescription
s {$sel:hECToken:SplunkDestinationDescription' :: Maybe Text
hECToken = Maybe Text
a} :: SplunkDestinationDescription)

-- | The data processing configuration.
splunkDestinationDescription_processingConfiguration :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe ProcessingConfiguration)
splunkDestinationDescription_processingConfiguration :: Lens' SplunkDestinationDescription (Maybe ProcessingConfiguration)
splunkDestinationDescription_processingConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe ProcessingConfiguration
processingConfiguration :: Maybe ProcessingConfiguration
$sel:processingConfiguration:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe ProcessingConfiguration
processingConfiguration} -> Maybe ProcessingConfiguration
processingConfiguration) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe ProcessingConfiguration
a -> SplunkDestinationDescription
s {$sel:processingConfiguration:SplunkDestinationDescription' :: Maybe ProcessingConfiguration
processingConfiguration = Maybe ProcessingConfiguration
a} :: SplunkDestinationDescription)

-- | The retry behavior in case Kinesis Data Firehose is unable to deliver
-- data to Splunk or if it doesn\'t receive an acknowledgment of receipt
-- from Splunk.
splunkDestinationDescription_retryOptions :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe SplunkRetryOptions)
splunkDestinationDescription_retryOptions :: Lens' SplunkDestinationDescription (Maybe SplunkRetryOptions)
splunkDestinationDescription_retryOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe SplunkRetryOptions
retryOptions :: Maybe SplunkRetryOptions
$sel:retryOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkRetryOptions
retryOptions} -> Maybe SplunkRetryOptions
retryOptions) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe SplunkRetryOptions
a -> SplunkDestinationDescription
s {$sel:retryOptions:SplunkDestinationDescription' :: Maybe SplunkRetryOptions
retryOptions = Maybe SplunkRetryOptions
a} :: SplunkDestinationDescription)

-- | Defines how documents should be delivered to Amazon S3. When set to
-- @FailedDocumentsOnly@, Kinesis Data Firehose writes any data that could
-- not be indexed to the configured Amazon S3 destination. When set to
-- @AllDocuments@, Kinesis Data Firehose delivers all incoming records to
-- Amazon S3, and also writes failed documents to Amazon S3. Default value
-- is @FailedDocumentsOnly@.
splunkDestinationDescription_s3BackupMode :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe SplunkS3BackupMode)
splunkDestinationDescription_s3BackupMode :: Lens' SplunkDestinationDescription (Maybe SplunkS3BackupMode)
splunkDestinationDescription_s3BackupMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe SplunkS3BackupMode
s3BackupMode :: Maybe SplunkS3BackupMode
$sel:s3BackupMode:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkS3BackupMode
s3BackupMode} -> Maybe SplunkS3BackupMode
s3BackupMode) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe SplunkS3BackupMode
a -> SplunkDestinationDescription
s {$sel:s3BackupMode:SplunkDestinationDescription' :: Maybe SplunkS3BackupMode
s3BackupMode = Maybe SplunkS3BackupMode
a} :: SplunkDestinationDescription)

-- | The Amazon S3 destination.>
splunkDestinationDescription_s3DestinationDescription :: Lens.Lens' SplunkDestinationDescription (Prelude.Maybe S3DestinationDescription)
splunkDestinationDescription_s3DestinationDescription :: Lens' SplunkDestinationDescription (Maybe S3DestinationDescription)
splunkDestinationDescription_s3DestinationDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SplunkDestinationDescription' {Maybe S3DestinationDescription
s3DestinationDescription :: Maybe S3DestinationDescription
$sel:s3DestinationDescription:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe S3DestinationDescription
s3DestinationDescription} -> Maybe S3DestinationDescription
s3DestinationDescription) (\s :: SplunkDestinationDescription
s@SplunkDestinationDescription' {} Maybe S3DestinationDescription
a -> SplunkDestinationDescription
s {$sel:s3DestinationDescription:SplunkDestinationDescription' :: Maybe S3DestinationDescription
s3DestinationDescription = Maybe S3DestinationDescription
a} :: SplunkDestinationDescription)

instance Data.FromJSON SplunkDestinationDescription where
  parseJSON :: Value -> Parser SplunkDestinationDescription
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"SplunkDestinationDescription"
      ( \Object
x ->
          Maybe CloudWatchLoggingOptions
-> Maybe Natural
-> Maybe Text
-> Maybe HECEndpointType
-> Maybe Text
-> Maybe ProcessingConfiguration
-> Maybe SplunkRetryOptions
-> Maybe SplunkS3BackupMode
-> Maybe S3DestinationDescription
-> SplunkDestinationDescription
SplunkDestinationDescription'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchLoggingOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HECAcknowledgmentTimeoutInSeconds")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HECEndpoint")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HECEndpointType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HECToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ProcessingConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RetryOptions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3BackupMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3DestinationDescription")
      )

instance
  Prelude.Hashable
    SplunkDestinationDescription
  where
  hashWithSalt :: Int -> SplunkDestinationDescription -> Int
hashWithSalt Int
_salt SplunkDestinationDescription' {Maybe Natural
Maybe Text
Maybe CloudWatchLoggingOptions
Maybe HECEndpointType
Maybe ProcessingConfiguration
Maybe S3DestinationDescription
Maybe SplunkRetryOptions
Maybe SplunkS3BackupMode
s3DestinationDescription :: Maybe S3DestinationDescription
s3BackupMode :: Maybe SplunkS3BackupMode
retryOptions :: Maybe SplunkRetryOptions
processingConfiguration :: Maybe ProcessingConfiguration
hECToken :: Maybe Text
hECEndpointType :: Maybe HECEndpointType
hECEndpoint :: Maybe Text
hECAcknowledgmentTimeoutInSeconds :: Maybe Natural
cloudWatchLoggingOptions :: Maybe CloudWatchLoggingOptions
$sel:s3DestinationDescription:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe S3DestinationDescription
$sel:s3BackupMode:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkS3BackupMode
$sel:retryOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkRetryOptions
$sel:processingConfiguration:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe ProcessingConfiguration
$sel:hECToken:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
$sel:hECEndpointType:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe HECEndpointType
$sel:hECEndpoint:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
$sel:hECAcknowledgmentTimeoutInSeconds:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Natural
$sel:cloudWatchLoggingOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe CloudWatchLoggingOptions
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
hECAcknowledgmentTimeoutInSeconds
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
hECEndpoint
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HECEndpointType
hECEndpointType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
hECToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ProcessingConfiguration
processingConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SplunkRetryOptions
retryOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SplunkS3BackupMode
s3BackupMode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3DestinationDescription
s3DestinationDescription

instance Prelude.NFData SplunkDestinationDescription where
  rnf :: SplunkDestinationDescription -> ()
rnf SplunkDestinationDescription' {Maybe Natural
Maybe Text
Maybe CloudWatchLoggingOptions
Maybe HECEndpointType
Maybe ProcessingConfiguration
Maybe S3DestinationDescription
Maybe SplunkRetryOptions
Maybe SplunkS3BackupMode
s3DestinationDescription :: Maybe S3DestinationDescription
s3BackupMode :: Maybe SplunkS3BackupMode
retryOptions :: Maybe SplunkRetryOptions
processingConfiguration :: Maybe ProcessingConfiguration
hECToken :: Maybe Text
hECEndpointType :: Maybe HECEndpointType
hECEndpoint :: Maybe Text
hECAcknowledgmentTimeoutInSeconds :: Maybe Natural
cloudWatchLoggingOptions :: Maybe CloudWatchLoggingOptions
$sel:s3DestinationDescription:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe S3DestinationDescription
$sel:s3BackupMode:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkS3BackupMode
$sel:retryOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe SplunkRetryOptions
$sel:processingConfiguration:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe ProcessingConfiguration
$sel:hECToken:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
$sel:hECEndpointType:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe HECEndpointType
$sel:hECEndpoint:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Text
$sel:hECAcknowledgmentTimeoutInSeconds:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe Natural
$sel:cloudWatchLoggingOptions:SplunkDestinationDescription' :: SplunkDestinationDescription -> Maybe CloudWatchLoggingOptions
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe CloudWatchLoggingOptions
cloudWatchLoggingOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
hECAcknowledgmentTimeoutInSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hECEndpoint
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HECEndpointType
hECEndpointType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
hECToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ProcessingConfiguration
processingConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SplunkRetryOptions
retryOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SplunkS3BackupMode
s3BackupMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3DestinationDescription
s3DestinationDescription