/* * Copyright 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 System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.KinesisFirehose.Model { /// /// Container for the parameters to the CreateDeliveryStream operation. /// Creates a Kinesis Data Firehose delivery stream. /// /// /// /// By default, you can create up to 50 delivery streams per Amazon Web Services Region. /// /// /// /// This is an asynchronous operation that immediately returns. The initial status of /// the delivery stream is CREATING. After the delivery stream is created, /// its status is ACTIVE and it now accepts data. If the delivery stream /// creation fails, the status transitions to CREATING_FAILED. Attempts to /// send data to a delivery stream that is not in the ACTIVE state cause /// an exception. To check the state of a delivery stream, use DescribeDeliveryStream. /// /// /// /// If the status of a delivery stream is CREATING_FAILED, this status doesn't /// change, and you can't invoke CreateDeliveryStream again on it. However, /// you can invoke the DeleteDeliveryStream operation to delete it. /// /// /// /// A Kinesis Data Firehose delivery stream can be configured to receive records directly /// from providers using PutRecord or PutRecordBatch, or it can be configured /// to use an existing Kinesis stream as its source. To specify a Kinesis data stream /// as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, /// and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration /// parameter. /// /// /// /// To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput /// in your request. This is optional. You can also invoke StartDeliveryStreamEncryption /// to turn on SSE for an existing delivery stream that doesn't have SSE enabled. /// /// /// /// A delivery stream is configured with a single destination: Amazon S3, Amazon ES, Amazon /// Redshift, or Splunk. You must specify only one of the following destination configuration /// parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, /// ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration, /// or SplunkDestinationConfiguration. /// /// /// /// When you specify S3DestinationConfiguration, you can also provide the /// following optional values: BufferingHints, EncryptionConfiguration, and /// CompressionFormat. By default, if no BufferingHints value /// is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever /// condition is satisfied first. BufferingHints is a hint, so there are /// some cases where the service cannot adhere to these conditions strictly. For example, /// record boundaries might be such that the size is a little over or under the configured /// buffering size. By default, no encryption is performed. We strongly recommend that /// you enable encryption to ensure secure data storage in Amazon S3. /// /// /// /// A few notes about Amazon Redshift as a destination: /// /// /// /// Kinesis Data Firehose assumes the IAM role that is configured as part of the destination. /// The role should allow the Kinesis Data Firehose principal to assume the role, and /// the role should have permissions that allow the service to deliver the data. For more /// information, see Grant /// Kinesis Data Firehose Access to an Amazon S3 Destination in the Amazon Kinesis /// Data Firehose Developer Guide. /// /// public partial class CreateDeliveryStreamRequest : AmazonKinesisFirehoseRequest { private AmazonOpenSearchServerlessDestinationConfiguration _amazonOpenSearchServerlessDestinationConfiguration; private AmazonopensearchserviceDestinationConfiguration _amazonopensearchserviceDestinationConfiguration; private DeliveryStreamEncryptionConfigurationInput _deliveryStreamEncryptionConfigurationInput; private string _deliveryStreamName; private DeliveryStreamType _deliveryStreamType; private ElasticsearchDestinationConfiguration _elasticsearchDestinationConfiguration; private ExtendedS3DestinationConfiguration _extendedS3DestinationConfiguration; private HttpEndpointDestinationConfiguration _httpEndpointDestinationConfiguration; private KinesisStreamSourceConfiguration _kinesisStreamSourceConfiguration; private RedshiftDestinationConfiguration _redshiftDestinationConfiguration; private S3DestinationConfiguration _s3DestinationConfiguration; private SplunkDestinationConfiguration _splunkDestinationConfiguration; private List _tags = new List(); /// /// Gets and sets the property AmazonOpenSearchServerlessDestinationConfiguration. /// /// The destination in the Serverless offering for Amazon OpenSearch Service. You can /// specify only one destination. /// /// public AmazonOpenSearchServerlessDestinationConfiguration AmazonOpenSearchServerlessDestinationConfiguration { get { return this._amazonOpenSearchServerlessDestinationConfiguration; } set { this._amazonOpenSearchServerlessDestinationConfiguration = value; } } // Check to see if AmazonOpenSearchServerlessDestinationConfiguration property is set internal bool IsSetAmazonOpenSearchServerlessDestinationConfiguration() { return this._amazonOpenSearchServerlessDestinationConfiguration != null; } /// /// Gets and sets the property AmazonopensearchserviceDestinationConfiguration. /// /// The destination in Amazon OpenSearch Service. You can specify only one destination. /// /// public AmazonopensearchserviceDestinationConfiguration AmazonopensearchserviceDestinationConfiguration { get { return this._amazonopensearchserviceDestinationConfiguration; } set { this._amazonopensearchserviceDestinationConfiguration = value; } } // Check to see if AmazonopensearchserviceDestinationConfiguration property is set internal bool IsSetAmazonopensearchserviceDestinationConfiguration() { return this._amazonopensearchserviceDestinationConfiguration != null; } /// /// Gets and sets the property DeliveryStreamEncryptionConfigurationInput. /// /// Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed for /// Server-Side Encryption (SSE). /// /// public DeliveryStreamEncryptionConfigurationInput DeliveryStreamEncryptionConfigurationInput { get { return this._deliveryStreamEncryptionConfigurationInput; } set { this._deliveryStreamEncryptionConfigurationInput = value; } } // Check to see if DeliveryStreamEncryptionConfigurationInput property is set internal bool IsSetDeliveryStreamEncryptionConfigurationInput() { return this._deliveryStreamEncryptionConfigurationInput != null; } /// /// Gets and sets the property DeliveryStreamName. /// /// The name of the delivery stream. This name must be unique per Amazon Web Services /// account in the same Amazon Web Services Region. If the delivery streams are in different /// accounts or different Regions, you can have multiple delivery streams with the same /// name. /// /// [AWSProperty(Required=true, Min=1, Max=64)] public string DeliveryStreamName { get { return this._deliveryStreamName; } set { this._deliveryStreamName = value; } } // Check to see if DeliveryStreamName property is set internal bool IsSetDeliveryStreamName() { return this._deliveryStreamName != null; } /// /// Gets and sets the property DeliveryStreamType. /// /// The delivery stream type. This parameter can be one of the following values: /// ///
  • /// /// DirectPut: Provider applications access the delivery stream directly. /// ///
  • /// /// KinesisStreamAsSource: The delivery stream uses a Kinesis data stream /// as a source. /// ///
///
public DeliveryStreamType DeliveryStreamType { get { return this._deliveryStreamType; } set { this._deliveryStreamType = value; } } // Check to see if DeliveryStreamType property is set internal bool IsSetDeliveryStreamType() { return this._deliveryStreamType != null; } /// /// Gets and sets the property ElasticsearchDestinationConfiguration. /// /// The destination in Amazon ES. You can specify only one destination. /// /// public ElasticsearchDestinationConfiguration ElasticsearchDestinationConfiguration { get { return this._elasticsearchDestinationConfiguration; } set { this._elasticsearchDestinationConfiguration = value; } } // Check to see if ElasticsearchDestinationConfiguration property is set internal bool IsSetElasticsearchDestinationConfiguration() { return this._elasticsearchDestinationConfiguration != null; } /// /// Gets and sets the property ExtendedS3DestinationConfiguration. /// /// The destination in Amazon S3. You can specify only one destination. /// /// public ExtendedS3DestinationConfiguration ExtendedS3DestinationConfiguration { get { return this._extendedS3DestinationConfiguration; } set { this._extendedS3DestinationConfiguration = value; } } // Check to see if ExtendedS3DestinationConfiguration property is set internal bool IsSetExtendedS3DestinationConfiguration() { return this._extendedS3DestinationConfiguration != null; } /// /// Gets and sets the property HttpEndpointDestinationConfiguration. /// /// Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. /// You can specify only one destination. /// /// public HttpEndpointDestinationConfiguration HttpEndpointDestinationConfiguration { get { return this._httpEndpointDestinationConfiguration; } set { this._httpEndpointDestinationConfiguration = value; } } // Check to see if HttpEndpointDestinationConfiguration property is set internal bool IsSetHttpEndpointDestinationConfiguration() { return this._httpEndpointDestinationConfiguration != null; } /// /// Gets and sets the property KinesisStreamSourceConfiguration. /// /// When a Kinesis data stream is used as the source for the delivery stream, a KinesisStreamSourceConfiguration /// containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN for /// the source stream. /// /// public KinesisStreamSourceConfiguration KinesisStreamSourceConfiguration { get { return this._kinesisStreamSourceConfiguration; } set { this._kinesisStreamSourceConfiguration = value; } } // Check to see if KinesisStreamSourceConfiguration property is set internal bool IsSetKinesisStreamSourceConfiguration() { return this._kinesisStreamSourceConfiguration != null; } /// /// Gets and sets the property RedshiftDestinationConfiguration. /// /// The destination in Amazon Redshift. You can specify only one destination. /// /// public RedshiftDestinationConfiguration RedshiftDestinationConfiguration { get { return this._redshiftDestinationConfiguration; } set { this._redshiftDestinationConfiguration = value; } } // Check to see if RedshiftDestinationConfiguration property is set internal bool IsSetRedshiftDestinationConfiguration() { return this._redshiftDestinationConfiguration != null; } /// /// Gets and sets the property S3DestinationConfiguration. /// /// [Deprecated] The destination in Amazon S3. You can specify only one destination. /// /// [Obsolete("This property is deprecated. Use ExtendedS3DestinationConfiguration instead.")] public S3DestinationConfiguration S3DestinationConfiguration { get { return this._s3DestinationConfiguration; } set { this._s3DestinationConfiguration = value; } } // Check to see if S3DestinationConfiguration property is set internal bool IsSetS3DestinationConfiguration() { return this._s3DestinationConfiguration != null; } /// /// Gets and sets the property SplunkDestinationConfiguration. /// /// The destination in Splunk. You can specify only one destination. /// /// public SplunkDestinationConfiguration SplunkDestinationConfiguration { get { return this._splunkDestinationConfiguration; } set { this._splunkDestinationConfiguration = value; } } // Check to see if SplunkDestinationConfiguration property is set internal bool IsSetSplunkDestinationConfiguration() { return this._splunkDestinationConfiguration != null; } /// /// Gets and sets the property Tags. /// /// A set of tags to assign to the delivery stream. A tag is a key-value pair that you /// can define and assign to Amazon Web Services resources. Tags are metadata. For example, /// you can add friendly names and descriptions or other types of information that can /// help you distinguish the delivery stream. For more information about tags, see Using /// Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User /// Guide. /// /// /// /// You can specify up to 50 tags when creating a delivery stream. /// /// [AWSProperty(Min=1, Max=50)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } } }