/*
 * Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*
 * Do not modify this file. This file is generated from the firehose-2015-08-04.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.KinesisFirehose.Model
{
    /// 
    /// Describes an update for a destination in Splunk.
    /// 
    public partial class SplunkDestinationUpdate
    {
        private CloudWatchLoggingOptions _cloudWatchLoggingOptions;
        private int? _hecAcknowledgmentTimeoutInSeconds;
        private string _hecEndpoint;
        private HECEndpointType _hecEndpointType;
        private string _hecToken;
        private ProcessingConfiguration _processingConfiguration;
        private SplunkRetryOptions _retryOptions;
        private SplunkS3BackupMode _s3BackupMode;
        private S3DestinationUpdate _s3Update;
        /// 
        /// Gets and sets the property CloudWatchLoggingOptions. 
        /// 
        /// The Amazon CloudWatch logging options for your delivery stream.
        /// 
        /// 
        public CloudWatchLoggingOptions CloudWatchLoggingOptions
        {
            get { return this._cloudWatchLoggingOptions; }
            set { this._cloudWatchLoggingOptions = value; }
        }
        // Check to see if CloudWatchLoggingOptions property is set
        internal bool IsSetCloudWatchLoggingOptions()
        {
            return this._cloudWatchLoggingOptions != null;
        }
        /// 
        /// Gets and sets the property HECAcknowledgmentTimeoutInSeconds. 
        /// 
        /// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment from
        /// Splunk after it sends 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.
        /// 
        /// 
        [AWSProperty(Min=180, Max=600)]
        public int HECAcknowledgmentTimeoutInSeconds
        {
            get { return this._hecAcknowledgmentTimeoutInSeconds.GetValueOrDefault(); }
            set { this._hecAcknowledgmentTimeoutInSeconds = value; }
        }
        // Check to see if HECAcknowledgmentTimeoutInSeconds property is set
        internal bool IsSetHECAcknowledgmentTimeoutInSeconds()
        {
            return this._hecAcknowledgmentTimeoutInSeconds.HasValue; 
        }
        /// 
        /// Gets and sets the property HECEndpoint. 
        /// 
        /// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends your
        /// data.
        /// 
        /// 
        public string HECEndpoint
        {
            get { return this._hecEndpoint; }
            set { this._hecEndpoint = value; }
        }
        // Check to see if HECEndpoint property is set
        internal bool IsSetHECEndpoint()
        {
            return this._hecEndpoint != null;
        }
        /// 
        /// Gets and sets the property HECEndpointType. 
        /// 
        /// This type can be either "Raw" or "Event."
        /// 
        /// 
        public HECEndpointType HECEndpointType
        {
            get { return this._hecEndpointType; }
            set { this._hecEndpointType = value; }
        }
        // Check to see if HECEndpointType property is set
        internal bool IsSetHECEndpointType()
        {
            return this._hecEndpointType != null;
        }
        /// 
        /// Gets and sets the property HECToken. 
        /// 
        /// A GUID that you obtain from your Splunk cluster when you create a new HEC endpoint.
        /// 
        /// 
        public string HECToken
        {
            get { return this._hecToken; }
            set { this._hecToken = value; }
        }
        // Check to see if HECToken property is set
        internal bool IsSetHECToken()
        {
            return this._hecToken != null;
        }
        /// 
        /// Gets and sets the property ProcessingConfiguration. 
        /// 
        /// The data processing configuration.
        /// 
        /// 
        public ProcessingConfiguration ProcessingConfiguration
        {
            get { return this._processingConfiguration; }
            set { this._processingConfiguration = value; }
        }
        // Check to see if ProcessingConfiguration property is set
        internal bool IsSetProcessingConfiguration()
        {
            return this._processingConfiguration != null;
        }
        /// 
        /// Gets and sets the property 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.
        /// 
        /// 
        public SplunkRetryOptions RetryOptions
        {
            get { return this._retryOptions; }
            set { this._retryOptions = value; }
        }
        // Check to see if RetryOptions property is set
        internal bool IsSetRetryOptions()
        {
            return this._retryOptions != null;
        }
        /// 
        /// Gets and sets the property 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. 
        /// 
        /// 
        public SplunkS3BackupMode S3BackupMode
        {
            get { return this._s3BackupMode; }
            set { this._s3BackupMode = value; }
        }
        // Check to see if S3BackupMode property is set
        internal bool IsSetS3BackupMode()
        {
            return this._s3BackupMode != null;
        }
        /// 
        /// Gets and sets the property S3Update. 
        /// 
        /// Your update to the configuration of the backup Amazon S3 location.
        /// 
        /// 
        public S3DestinationUpdate S3Update
        {
            get { return this._s3Update; }
            set { this._s3Update = value; }
        }
        // Check to see if S3Update property is set
        internal bool IsSetS3Update()
        {
            return this._s3Update != null;
        }
    }
}